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