この記事は、Delphiの最新バージョンである、Delphi 10.3ではなく、Delphi 10.2について書かれています。新しいバージョンでは状況が異なる可能性もあります。
最近4Kディスプレイを買ったのですが、これまでも4Kディスプレイ買おうかなと考えたことはありました。しかし 「Delphiの開発環境(IDE)の表示、どうなっちゃうんだろう?」 との不安があり、躊躇していました。
問題はDelphiはフォームの設計段階では、ウィンドウやコンポーネントの位置・サイズ指定をピクセル単位で行うことです。このため4Kディスプレイなどでは、「フォームデザイン」の画面が小さくなりすぎて支障をきたさない?などと考えていたわけです。うまくフォームデザインの画面を拡大表示してくれるのでしょうか?。でも、Delphiで使うコンポーネントはデザイン画面でも実際に動作するのがウリのはずです。また、拡大縮小しなければならないプロパティはLeft, Top, Width, Heightだけとは限りません。それとも、TFormクラスにある、PixelPerInchプロパティが何か関係しているでしょうか?。設計時と異なるDPI環境ではこの PixelPerInch プロパティとの比率に従い画面サイズを調整してくれるのでしょうか?。複雑なDPI変換のルールで、動作に支障をきたさないでしょうか?。
…4Kディスプレイを購入し、実際試してみたところ…そもそもDelphiのIDEは、そもそも高DPI環境に対応していませんでした。192DPI(200%のスケーリング)にしたところ、がっつり200%にスケーリングされます。全然フォントとかきれいになりません。
テキストエディタもカクカクフォントです。
ちょっと残念ですが、あえて高DPIに対応しないおかげでDelphiの開発環境は96DPI前提のまま ピクセル単位で 開発(設計)できるのですね。 上述したような画面設計をピクセル単位で行うことに由来する問題・懸念は発生しません。
ちなみに、、、高DPIに対応しないアプリケーションを無理やり高DPIに対応させて実行する方法があります。
「ダイジョウブ・ダイジョウブ」「イケル・イケル」と唱えながら、以下の設定を変えます。(Windows 10 1903の場合)
該当の実行ファイル(DelphiのIDEはbds.exe)のプロパティを開き、「高DPI設定の変更」ボタンを押します。
「高いDPIスケールの動作を上書きします。」にチェックを入れて、下のプルダウンから「アプリケーション」または、「システム(拡張)」を選択してOKを押します。
「アプリケーション」の設定では以下のようになりました。
フォントはきれいですが、開発中の画面は指定値通りに小さくなります。ただし、タイトルバーやメニュー・非ビジュアルコンポーネントのフォントは大きくなります。あまりこのまま開発してよさそうな気がしません。
「システム(拡張)」の設定では以下のようになりました。
何か微妙にところどころフォントがきれいになるのですが、基本的にカクカクフォントです。あと、デバッグ実行されたアプリケーションまで「システム(拡張)」の設定が引きずられて96DPIで実行されてしまうようです。
DelphiのIDEはやっぱり高DPIに対応させないほうがよさそうですね。
そもそも、Delphiが画面の位置やサイズ指定をピクセル単位で行ってしまっているためだと思うのですが、DelphiのIDEは高DPI化の難しいアプリケーションのようです。最新のDelphi10.3は試していませんが、仕組み上難しいのかなあとも思います。Delphiで開発するアプリケーションは高DPI対応は問題ないのですがね。