[delphi-users:5194] DPI値の取得

85 views
Skip to first unread message

kuze

unread,
Jun 4, 2019, 9:11:32 AM6/4/19
to delphi...@freeml.com

皆様

久世です。

以前、質問した課題にまだ悩んでおりますので、お力をお借り出来たらと
考え投稿いたします。
高DPI対応のWinアプリを作成に取り組んでいるのですが、
設計時、実行時のそれぞれのDPI値の取得がうまくできずに困っています。
環境:Delphi XE4
OS : Win10 32bit

1.Form.PixelsPerInch
2.Screen.PixelsPerInch
の2つの値を確認しました。

   96DPI環境 96DPI環境(DPI仮想化150%) 144DPI環境
1 96 96 144
2 96 96 144

という状況です。
希望としては、設計時は 96DPI環境なので、
実行環境によらず、96DPIと取得できる関数 ・・・
最悪こちらは無くてもいいです。
DPI仮想化含め、実行環境に応じて、96, 120,
144などと値を返す方法はないでしょうか?
他の言語では、GetDpiForMonitorという関数を使用される方がいますが
Delphiで使用する方法はありますでしょうか?

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


MLホームページ: https://www.freeml.com/delphi-users

----------------------------------------------------------------------
【重要】必ずお読みください
■freeml byGMOサービス終了のお知らせ■
2019年12月2日(月)12:00をもちまして、
サービスの提供を終了させていただきます。
詳しくはこちら
http://ck.freeml.com/rd.php?cid=11272
------------------------------------------------------[freeml byGMO]--

あなたの街のチラシがいつでも無料で見放題!
チラシをクリックしてチラシが拡大されたらポイントゲット♪
まずはかんたん登録♪ -ポイントタウン-
https://www.pointtown.com/ptu/rd.cgi?cid=8912
----------------------------------------------------------------------

とっしゃん

unread,
Jun 4, 2019, 8:17:23 PM6/4/19
to delphi...@freeml.com
とっしゃんと申します。

https://stackoverflow.com/questions/44615108/getdpiformonitor-with-delphi-7-for-per-monitor-dpi-awareness

ここは参考になりませんか?

Tue, 4 Jun 2019 22:11:29 +0900 (JST) に、
kuze <delphi...@freeml.com> さんは書きました:

>
> 皆様
>
> 久世です。
>
> 以前、質問した課題にまだ悩んでおりますので、お力をお借り出来たらと
> 考え投稿いたします。
> 高DPI対応のWinアプリを作成に取り組んでいるのですが、
> 設計時、実行時のそれぞれのDPI値の取得がうまくできずに困っています。
> 環境:Delphi XE4
> OS : Win10 32bit
>
> 1.Form.PixelsPerInch
> 2.Screen.PixelsPerInch
> の2つの値を確認しました。
>
> ? ?96DPI環境 96DPI環境(DPI仮想化150%) 144DPI環境
> 1 96 96 144
> 2 96 96 144
>
> という状況です。
> 希望としては、設計時は 96DPI環境なので、
> 実行環境によらず、96DPIと取得できる関数 ・・・ 最悪こちらは無くてもいいです。
> DPI仮想化含め、実行環境に応じて、96, 120, 144などと値を返す方法はないでしょうか?
> 他の言語では、GetDpiForMonitorという関数を使用される方がいますが
> Delphiで使用する方法はありますでしょうか?
>
> 以上よろしくお願いいたします。
>
>
> MLホームページ: https://www.freeml.com/delphi-users
>
> ----------------------------------------------------------------------
> 【重要】必ずお読みください
> ■freeml byGMOサービス終了のお知らせ■
> 2019年12月2日(月)12:00をもちまして、
> サービスの提供を終了させていただきます。
> 詳しくはこちら
> http://ck.freeml.com/rd.php?cid=11272
> ------------------------------------------------------[freeml byGMO]--
>
> あなたの街のチラシがいつでも無料で見放題!
> チラシをクリックしてチラシが拡大されたらポイントゲット♪
> まずはかんたん登録♪ -ポイントタウン-
> https://www.pointtown.com/ptu/rd.cgi?cid=8912
> ----------------------------------------------------------------------

--
もじもじ <mojim...@yahoo.co.jp>


MLホームページ: https://www.freeml.com/delphi-users

----------------------------------------------------------------------
スマホアプリ版で100万ダウンロード突破の
「キャプテン翼ZERO~決めろ!ミラクルシュート~」
HTML5ゲームプラットフォーム「ゲソてん byGMO」にて、
PCブラウザ版を好評配信中!
https://gesoten.com/games/genre/sports/tsubasa-zero

kuze

unread,
Jun 5, 2019, 8:25:27 AM6/5/19
to delphi...@freeml.com

とっしゃんさん

久世です。

有力な情報ありがとうございます。
かなり参考になりました。

kuze

unread,
Jun 5, 2019, 9:01:46 AM6/5/19
to delphi...@freeml.com

皆様

久世です。

発見したことを共有しておきます。
Delphi 10.3の、下記フォルダ
C:\Program Files (x86)\Embarcadero\Studio\20.0\source\rtl\win
には、
Winapi.ShellScaling.pas
があり、
GetDpiForMonitorが宣言されていました。

とっしゃん

unread,
Jun 5, 2019, 9:10:24 AM6/5/19
to delphi...@freeml.com
Reply all
Reply to author
Forward
0 new messages