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

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

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

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

Сообщение nic1982 » 11.03.2020 17:42:50

Допустим есть форма на ней кнопки, поля, грид...
Эта форма была создана под разрешение 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,
развернутое на весь экран и не на весь экран;
nic1982
новенький
 
Сообщения: 48
Зарегистрирован: 17.05.2011 16:34:05

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

Сообщение alexs » 12.03.2020 14:49:51

Привязки + Использовать масштабирование LCL (крыжик в настройках проекта)
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

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

Сообщение sunjob » 27.01.2022 19:39:13

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

тут галка по умолчанию установлена.
Аватара пользователя
sunjob
постоялец
 
Сообщения: 123
Зарегистрирован: 12.01.2011 15:19:54

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

Сообщение Снег Север » 27.01.2022 20:00:13

sunjob, по правой кнопке мыши на форме выбрать "Редактор привязок" и настроить привязку всех критичных контролов
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

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

Сообщение sunjob » 28.01.2022 07:11:18

"все это" - только привязки, вопрос топика был в "автомасштабировании", а этого я не нашел.
Аватара пользователя
sunjob
постоялец
 
Сообщения: 123
Зарегистрирован: 12.01.2011 15:19:54

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

Сообщение alexs » 28.01.2022 14:17:45

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

Свойство AutoSize у компонентов?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

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

Сообщение Sharfik » 28.01.2022 20:17:26

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

Автоматически можно только масштабироваться если плотность пикселей отличается от 96DPI. Т.е. для случаев с ноутбуками. Если изменяется просто разрешение экрана, это просто больше места.
В любом случае надо делать так же как с созданием HTML кода сайтов - привязывать элементы к каким то границам, использовать отступы справа, слева, сверху и пользоваться свойствами минимальной, максимальной высоты, ширины объектов, чтобы Autosize работал. В иных случаях, если нет привязок, программа на разных ПК очень плохо выглядеть будет.
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 759
Зарегистрирован: 20.07.2013 01:04:30


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24

Рейтинг@Mail.ru