Как можно поддерживать пользовательские настройки Desktop DPI в приложениях Delphi 7? - PullRequest
8 голосов
/ 16 сентября 2009

У нас есть несколько унаследованных приложений, написанных на Delphi 7. За прошедшие годы у нас было несколько запросов на поддержку пользовательских настроек dpi для настольных компьютеров в этих приложениях, но мы смогли уклониться от этого, пока не узнаем. Ну, мы больше не можем.

Когда пользователи устанавливают на своих рабочих столах значение 120 точек на дюйм, некоторые элементы управления «отваливаются» из приложения или выходят за пределы видимого, имеют форму и, в частности, те, которые привязаны к правому краю их родителя.

Что я могу сделать, чтобы предотвратить эту проблему, БЕЗ операции на открытом сердце.

1 Ответ

1 голос
/ 16 сентября 2009

Как вы, наверное, знаете, это хорошо известная проблема с формами Delphi и взаимодействиями с размерами системных шрифтов .

Поведение формы Delphi по умолчанию заключается в попытке масштабирования с учетом среды рабочего стола пользователя (во время выполнения). Однако, как вы обнаружили, это может привести к непреднамеренным и нежелательным побочным эффектам.

Но свойство Scaled (по умолчанию TRUE) может быть установлено в FALSE, чтобы предотвратить это, но я рекомендую прочитать эту первую статью, а также рассмотреть информацию в этой статье , чтобы определить, является ли это правильное решение в вашем случае.

Если вам повезет, просто установив Scaled в FALSE на всех ваших формах, вы сможете получить хороший способ, если не весь путь (что может быть утомительно, но не совсем операция на открытом сердце).

...