Как автомасштабировать элементы на форме ?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
nic1982
новенький
Сообщения: 48
Зарегистрирован: 17.05.2011 16:34:05

Как автомасштабировать элементы на форме ?

Сообщение nic1982 »

Допустим есть форма на ней кнопки, поля, грид...
Эта форма была создана под разрешение 1024х768, и при этом разрешении нормально выглядит.
Как при увеличении разрешения монитора до FullHD или 4K, автомаштабировать элементы на форме?
Или как при изменении размеров самой формы (если она не на весь экран),
автомаштабировать элементы на форме?
Как на все это влияет "диагональ монитора" и "количество точек на дюйм" ?
Как один раз сделать форму и чтоб она нормально выглядела на всех диагоналях и разрешениях монитора
и размера самой формы?
Как соблюдать пропорции при изменение размера формы пользователем?

Допустим сделал приложение, как сделать так чтоб его формы выглядели нормально на:
1) мониторе с соотношением сторон 4:3, диагонали 17", разрешении 1024х768,
развернутое на весь экран и не на весь экран;
2) мониторе с соотношением сторон 16:9, диагонали 22", разрешении 1920х1080,
развернутое на весь экран и не на весь экран;
3) мониторе с соотношением сторон 16:9, диагонали 27", разрешении 1920х1080,
развернутое на весь экран и не на весь экран;
4) мониторе с соотношением сторон 16:9, диагонали 24", разрешении 3840x2160,
развернутое на весь экран и не на весь экран;
5) мониторе с соотношением сторон 16:9, диагонали 27", разрешении 3840x2160,
развернутое на весь экран и не на весь экран;
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Привязки + Использовать масштабирование LCL (крыжик в настройках проекта)
Аватара пользователя
sunjob
постоялец
Сообщения: 182
Зарегистрирован: 12.01.2011 14:19:54

Сообщение sunjob »

крыжик в настройках проект, это?
menu/project/project options/Use LCL Scaling

тут галка по умолчанию установлена.
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3071
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Сообщение Снег Север »

sunjob, по правой кнопке мыши на форме выбрать "Редактор привязок" и настроить привязку всех критичных контролов
Аватара пользователя
sunjob
постоялец
Сообщения: 182
Зарегистрирован: 12.01.2011 14:19:54

Сообщение sunjob »

"все это" - только привязки, вопрос топика был в "автомасштабировании", а этого я не нашел.
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

sunjob писал(а):вопрос топика был в "автомасштабировании", а этого я не нашел.

Свойство AutoSize у компонентов?
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 839
Зарегистрирован: 20.07.2013 01:04:30

Сообщение Sharfik »

sunjob писал(а):"все это" - только привязки, вопрос топика был в "автомасштабировании", а этого я не нашел.

Автоматически можно только масштабироваться если плотность пикселей отличается от 96DPI. Т.е. для случаев с ноутбуками. Если изменяется просто разрешение экрана, это просто больше места.
В любом случае надо делать так же как с созданием HTML кода сайтов - привязывать элементы к каким то границам, использовать отступы справа, слева, сверху и пользоваться свойствами минимальной, максимальной высоты, ширины объектов, чтобы Autosize работал. В иных случаях, если нет привязок, программа на разных ПК очень плохо выглядеть будет.
Ответить