私は、テキストエディタコンポーネントをポップアップウィンドウで開発しています。ポップアップウィンドウの幅は、自分のコンポーネントのプロパティエディタ内でデザイン時に設定する必要があります。コンポーネントのプロパティでDPI対応の値を使用する方法?
設定した幅を画面の解像度に適用するにはどうすればよいですか?
Width
の値を入力すると、Delphiは値を.dfmファイルに保存します。また、PixelsPerInch
値が格納されています。私は.DFM内で、100%のWindowsのDPI設定を使用していながら、私は= 96の幅を置く場合は保存されます。
PixelsPerInch = 96
Width = 96
私は150%に今設定私のWindowsのDPIを変更し、これを再度開く場合Delphiのプロジェクトでは、プロパティエディタが幅148を表示します。
私は自分の価値のためにあまりにもこれを持っているしたいと思います:
published
property PopupWidth: Integer read FPopupWidth write FPopupWidth;
...しかし、Delphiは、私の値について取り扱いをPixelsPerInchを適用しません。
どうしてですか?そして、私はこれをどのように実装できますか?
- *「なぜいけないのでしょうか?」* - コンパイラがあなたの心を読み取ることができませんので。 * * ".. how .." * - TCustomForm.ReadStateにコードがあるはずです。これは関連しているかもしれません:http://docwiki.embarcadero.com/RADStudio/Seattle/en/Considerations_When_Dynamically_Resizing_Forms_and_Controls –
また、ピクセルカウントではない他の整数値もスケールしません。それらをスケールする必要がありますか? –
@DavidHeffernan:はい、スケールする必要があります - それが私が望むものです。 Delphiにプロパティを拡張するように指示するにはどうすればよいですか? – Tahtu