Приложения Delphi, размер формы различается на разных компьютерах - PullRequest
2 голосов
/ 25 августа 2009

У меня есть приложение Delphi 7, на машине разработки WinXP размер формы такой же, как он был спроектирован.

Однако при запуске приложения на компьютере с Vista некоторые формы были увеличены на 20-30%, оставляя большие пустые места на правом и нижнем краях форм.

На одной из машин WinXP нашего клиента формы сжимаются, в результате чего на формах появляются полосы прокрутки.

На большинстве других машин он отображается нормально.

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

Есть идеи?

Ответы [ 3 ]

11 голосов
/ 25 августа 2009

Это звучит как хорошо известная проблема с формами Delphi и взаимодействиями с размерами системного шрифта .

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

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

1 голос
/ 25 августа 2009

Большие шрифты против малых шрифтов на компьютере с Vista, может быть?

0 голосов
/ 27 августа 2009

Используйте этот код в событии OnCreate для каждой вашей формы:

если Win32Platform = VER_PLATFORM_WIN32_NT, то Font.Name: = 'MS Shell Dlg 2' еще Имя шрифта: = 'MS Shell Dlg';

...