Per Monitor V2
VCL への移動
Per Monitor V2 サポートには、IDE プロジェクト オプションでの宣言に対するサポートが含まれており、適切な Windows マニフェストの構成が設定されるようになっています。
[プロジェクト|オプション...|アプリケーション|マニフェスト]に移動して、オプション[Per Monitor V2]を有効にします。
VCL ライブラリのコア部分では、Per Monitor V2 のサポートには、コア クラスへの変更、多くのコントロール(プラットフォームやカスタム)、その他のスタイルのためのサポートが含まれています。
高次のレベルでは、この機能をサポートするために 10.3 の VCL.Classes ユニットでは次の変更が導入されています:
- GetSystemMetricsForWindow グローバル関数は、新しい GetSystemMetricsForDPI があればそこへの、もしくは従来の GetSystemMetrics への呼び出しをラッピングしています。これには、API に渡されるハンドル パラメータがあります。Per Monitor V2 をサポートしたい場合には、従来の WinApi.GetSystemMetrics 関数の代わりに、この新しい関数を使用することを推奨します。
- TControl.GetSystemMetrics (nIndex: Integer) メソッドは、新しい GetSystemMetricsForWindow グローバル関数を呼び出すコントロールに対する、システム測定値を返します。
- TControl.GetCurrentPPI は、現行のモニターによってコントロールの DPI を返し、TControl.CurrentPPI は、この関数にマップされる読み取り専用プロパティです。
RAD Studio 10.3 には、VCL への大きな更新と、新しい GetSystemMetricsForWindow に適合するためのスタイリングのサポートを含んでおり、コンポーネント ライタには、この新しい Microsoft DPI モデルをサポートするために同様の作業をすることを推奨します。この変更ではまた、フォームのコードに影響がありますが、大きく広がる可能性は低いです。コード、または使用しているコンポーネントのコードが Per Monitor V2 で利用しない場合、プロジェクトのマニフェスト ファイルで、この機能を無効にすることを推奨します。
メモ: Per Monitor V2 サポートでは、少なくとも Windows 10 Creator のアップデート(1703)が必要です。 以前のバージョンの Windows 10 や、それより前の Windows では、新しいメソッドは標準動作および API 呼出しに戻されます(コード内に専用のランタイム チェックがあります)。