Windows8では、TImageはStretch=trueにしないといけない?!


みぃ  2012-10-30 02:36:40  No: 43286

こんばんは、お世話になります。

TImageを使ったソフトをWindows8上で動かす際に、
少々問題がでています。

◆環境:
    開発:Delphi2010 Windows7(64)
    確認:Windows8(32),7(64),XP(32)

◆状況
  フォームにTImageを配置して縦横を200にし、
  Image1.Picture.LoadFromFile('200x200.jpg');として
  200x200pxの画像を読み込んでいます。
  
  ところがこれを実行する環境で結果が異なる状況です。
    ・Windows7(64)やXP(32)で実行した場合
        →200x200いっぱいいっぱいに表示される。
    ・Windows8で実行した場合
        →おおよそ75%くらいに小さく表示される。

◆現状
  しかたないので、Stretch属性をtrueにすることで、
  いっぱいいっぱいに表示させましたが、
  こんな対処法では、何か困る時もでてきそうです。

もし、何か根本的な解決方法がありましたら、
アドバイス頂けると助かります。

よろしくお願いいたします。


Nov  2012-10-30 06:39:31  No: 43287

Windows8のDPIスケールはディスプレイのサイズに合わせて初期値が変わるそうです(つまり100%とは限らない)。フォームのScaledプロパティをFalseにすれば、DPIスケーリングの影響は受けないようにできますが、Stretchで対応する方が、理にかなっている気がします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加