powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi Seattle 10 искажает контролы только в наследуемых формах при 150 dpi
8 сообщений из 8, страница 1 из 1
Delphi Seattle 10 искажает контролы только в наследуемых формах при 150 dpi
    #39193176
zladeyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

В приложениях, собранных в Delphi 10, сбивается положение контролов на форме при установленном виндовом 150 dpi. При чем это проявляется только для унаследованных форм, даже если родителем была пустая форма, без каких либо контролов и настроек. Формы, унаследованные от TForm - масштабируются без искажений.

ОС Windows 7. Выбрано масштабирование 150 dpi и установлена галочка "...в стиле Win XP..." (для того, чтобы приложения не выглядели размытими).
настройки DPI


Скриншот с Delphi 10



При сборке этого проекта в Delphi XE - такой проблемы не наблюдается.
Скриншот с Delphi XE


В свойствах проекта Delphi 10 - установлена настройка Enable High-DPI . Это нужно для того, чтобы винда не использовала DPI виртуализацию к данному приложению и оно не выглядело размытым, при 150 DPI.
Если же в свойствах проекта снять данную настройку, а также отключить в винде масштаб в стиле Win XP , то контролы не съезжают, однако приложение выглядит сильно размытым.

Сталкивался ли кто-то с такой проблемой? Или это нужно на QC сразу постить?

Используются Delphi 10 Update 1, Delphi XE, Windows 7 x64.

В аттачах тестовые проекты для XE и Delphi 10 с абсолютно одинаковыми файлами форм.
...
Рейтинг: 0 / 0
Delphi Seattle 10 искажает контролы только в наследуемых формах при 150 dpi
    #39194536
Dmitri Krizhanovski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zladeyka,

Подтверждаю. Контролы, положенные на наследываемую форму, масштабируются неправильно.
...
Рейтинг: 0 / 0
Delphi Seattle 10 искажает контролы только в наследуемых формах при 150 dpi
    #39195295
zladeyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оказывается это баг в самой Delphi 10.
Вот есть тикеты на QC:
TCustomForm.ReadState behavior in Delphi 10 Seattle Update 1 breaks High-DPI scaling in forms inherited from TForm descendants.
Inconsistent font size for TForm instance with or without designed DFM in High-DPI build
High DPI - A new Form's PixelsPerInch is always 96 due to a change in TForm.ReadState

В тикетах уже прикреплены модули с патчами TCustomForm (подменяются в рантайме методы с багами на патченные)

После подключения в проект этих патчей, наследуемые формы отрисовываются правильно при DPI > 96.
...
Рейтинг: 0 / 0
Delphi Seattle 10 искажает контролы только в наследуемых формах при 150 dpi
    #39195316
zladeyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собрал все патчи в один модуль, выкладываю в общее пользование.
Для применения необходимо явно подключить в проект модуль Vcl.Forms.DPI_Pathces.pas
...
Рейтинг: 0 / 0
Delphi Seattle 10 искажает контролы только в наследуемых формах при 150 dpi
    #39195348
Michael Longneck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Grammar nazi негодуе - path - путь, patch - заплатка. Pathces - такого слова нетЪ.
...
Рейтинг: 0 / 0
Delphi Seattle 10 искажает контролы только в наследуемых формах при 150 dpi
    #39195365
zladeyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Michael Longneck,

таки да, опечатка закралась, местами <c> и <h> переставлены.
Называется - не к чему придраться - до**бись до орфографии :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Delphi Seattle 10 искажает контролы только в наследуемых формах при 150 dpi
    #40115666
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zladeyka,

Добрый день. Меня к сожалению не пускает под учеткой в QC эмбы. Там тикеты поправлены уже и в какой версии? У меня тут версия 10.4.2, есть смысл в патчах?
...
Рейтинг: 0 / 0
Delphi Seattle 10 искажает контролы только в наследуемых формах при 150 dpi
    #40115687
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon
Там тикеты поправлены уже и в какой версии?
Первый и третий в 10.1. Второй "Won't fix"
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi Seattle 10 искажает контролы только в наследуемых формах при 150 dpi
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]