Показать сообщение отдельно
  #2  
Старый 12.10.2025, 18:55
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,111
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Никак.
На самом деле ширина во всех случаях будет 200. Просто, в силу масштабирования текста на "маленьком" экране, размер текста и, сообтветственно, всех компонентов становится больше. Т.е. это не GroupBox становится меньше, а все компоненты становятся больше.


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

Вот что Co-Pilot советует (не проверял):
Код:
function GetScreenScaleFactor: Single;
begin
  Result := Screen.PixelsPerInch / 96; // 96 DPI is the default scale (100%)
end;
Если у тебя мультимониторная конфигурация, то там сложнее будет, надо получать этот коэф. для конкретного монитора.
Ответить с цитированием