Я разрабатываю компонент текстового редактора со всплывающим окном. Ширина всплывающего окна должна быть установлена во время разработки в редакторе свойств моего компонента.Как использовать значение, соответствующее DPI, в свойстве компонента?
Как применить заданную ширину к разрешению экрана?
Если я ввожу значение для Width
, Delphi сохраняет значение внутри файла .dfm. Также сохраняются значение PixelsPerInch
. Если я поместить Width = 96 в то время как я использую настройку Windows, DPI 100%, внутри .dfm будет сохранено:
PixelsPerInch = 96
Width = 96
Если я изменить свой Windows, DPI настройки теперь до 150% и снова открыть это проект в Delphi, редактор свойств показывает мне ширину 148.
Я хотел бы, чтобы это тоже для моей ценности:
published
property PopupWidth: Integer read FPopupWidth write FPopupWidth;
... но Delphi не применяет обработку для моей стоимости PixelsPerInch.
Почему нет? И как я могу это реализовать?
- * «Почему нет?» * - Так как компилятор не может читать ваши мысли. - * ".. как .." * - Я думаю, вы должны увидеть код в TCustomForm.ReadState. Это также может быть актуальным: http://docwiki.embarcadero.com/RADStudio/Seattle/en/Considerations_When_Dynamically_Resizing_Forms_and_Controls –
Он также не масштабирует другие целочисленные значения, которые не являются подсчетами пикселей. Должны ли это масштабировать? –
@ Давид Хеффернан: Да, он должен масштабироваться - вот чего я хочу. Как я могу сказать Delphi о масштабировании собственности? – Tahtu