Cbuilder XE3 масштабирует (расширяет) форму при редактировании в RAD IDE
У меня есть некоторые приложения, но не все, которые "волшебным образом" увеличивают формы в 1,23 раза, когда я открываю формы в RAD IDE. Например, ширина формы 947 пикселей внезапно переходит на 1166 пикселей. Он подозрительно близок к соотношению пикселей 120/96 (отношение 1,25), но масштабирование постоянно ближе к 1,23 (судя по большим целочисленным соотношениям, полученным, например, из ширины и высоты формы).
Я могу посмотреть на файл.dfm и увидеть исходные числа, тогда как в IDE значения были изменены (например, увеличены высота и ширина, отрегулированы позиции управления и увеличены размеры шрифта).
Я знаю, что масштабирование и dpi - это минное поле, но я не (насколько мне известно) не изменил никаких связанных настроек.
Как для аффектных, так и для незатронутых проектов формы имеют Scaled
свойство установлено на "истина" и PixelsPerInch
свойство установлено на 96. Разрешение экрана моего компьютера разработки установлено на 100%. Это настройка, которая должна избежать этих проблем.
Я просмотрел проект и файлы конфигурации IDE в бесплодной попытке выяснить, что может отличаться в проекте, в котором есть эта проблема, по сравнению с проектом, в котором этого нет.
Все затронутые (и незатронутые) проекты находятся в разработке в течение многих лет, и только на последней неделе я наблюдал такое поведение. Насколько мне известно (я являюсь единственным разработчиком), я не вносил никаких изменений в код / конфигурацию, которые касаются масштабирования, dpi и т. Д.
Кто-нибудь знает, что может происходить?
Хотя я использую CBuilder XE3, я пометил этот вопрос и Delphi XE3, так как считаю, что это проблема RAD Studio.
РЕДАКТИРОВАТЬ 1: Я также заметил, что для каждого измененного элемента управления в среде IDE добавляются следующие дополнительные строки (т.е. в дополнение к изменению Top
, Left
, Width
, Height
, а также Font.Height
):
Margins.Left = 4
Margins.Top = 4
Margins.Right = 4
Margins.Bottom = 4
и для TImages, это также добавляет
ExplicitWidth = <nnn>
ExplicitHeight = <nnn>
РЕДАКТИРОВАТЬ 2: Любопытно, что когда IDE масштабирует форму, она не помечает форму как измененную - то есть форма остается неизменной до тех пор, пока не будет сделано "реальное" изменение (например, изменение положения элемента управления). Если форма открывается во второй раз после сохранения с измененной шкалой, дальнейшее масштабирование не происходит - это кажется одноразовым эффектом, но в любом случае не существует флага "незапрошенный для выполнения" конфигурационный файл:)