И это оказывается не баг! Причина такого поведения дизайнера форм – постоянное желание разработчиков RAD Studio улучить поддержку High DPI.
Когда дизайнер VCL-форм запускался в режиме высокого разрешения с использованием масштаба не равного 100% некоторые основанные на Windows API контролы отрисовывались неправильно. Наиболее заметные были проблемы у TRadioButton и TCheckBox. Чтобы решить проблему, дизайнер VCL-форм для рисования контролов теперь использует Windows-подобный стиль, который имитирует светлую или темную тему Windows (в зависимости от того, какая из них используется операционной системой в данный момент).
Это означает, что дизайнер VCL-форм Delphi 11.2 по умолчанию использует VCL-стили. Поддержка отображения контролов в дизайнере форм с учетом стилей была добавлена еще в версии 11.0, но по умолчанию она была отключена. Это было сделано для того, чтобы дать разработчикам библиотек время убедиться, что их контролы правильно отображаются в design-time с учетом стилей. Теперь, чтобы решить эту проблему с контролами в High DPI, разработчики Delphi были вынуждены включить использование VCL-стилей по умолчанию.
Как заставить дизайнер VCL-форм Delphi 11.2 отображать цвет контрола? Для этого можно отключить использование стилей в дизайнере форм. Открываем параметры Delphi и убираем флажок "Enable VCL Styles".
Если этот параметр включен, то VCL-контролы в design-time соответствуют их внешнему виду в run-time, так как рисуются с использованием установленного для формы или контрола VCL-стиля. Можно не отключать использование VCL-стилей совсем, а выключить только имитацию системного стиля (новый параметр "Mimic the system style").
Подобного эффекта можно добиться и без отключения использования VCL-стилей в дизайнере форм. Достаточно для формы или контрола установить стиль "Windows". Например, наше memo окрасится в красный цвет, как только мы свойству StyleName формы присвоим "Windows".
Комментариев нет:
Отправить комментарий