Масштабирование интерфейса

Общие вопросы программирования, алгоритмы и т.п.

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

Масштабирование интерфейса

Сообщение Sharfik » 22.05.2021 09:22:16

Не знаю какой раздел выбрать, пусть общий будет.

Вопрос два:
1. Как подружить программу и масштабирование интерфейса со стороны ОС? Есть Панель, на ней группы в которые Edit, checkbo. Кто то привязан справа и слева, кто то справа. В общем, просто штатными средствами по ширине растягивающееся содержимое группы. Как только у ОС включается масштабирование 125%(ноутбук), то вся красота превращается в свалку. Отступы становятся огромными, а то что было привязано справа и слева, в равных условиях от границы Группы оказывается посередине Группы. Не знаю есть ли что то подобное под Nix, но в Win с версии 7 это есть.
2. Как считать из системы что масштабирование активно?
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 791
Зарегистрирован: 20.07.2013 01:04:30

Re: Масштабирование интерфейса

Сообщение Снег Север » 22.05.2021 10:28:05

Ищите что-нибудь типа GetDpiForMonitor и GetDpiForWindow в MSDN
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3038
Зарегистрирован: 27.11.2007 16:14:47

Re: Масштабирование интерфейса

Сообщение Sharfik » 23.05.2021 02:09:55

Спасибо.
Интересно, можно ли отключить реакцию на масштабирование для всей программы.
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 791
Зарегистрирован: 20.07.2013 01:04:30

Re: Масштабирование интерфейса

Сообщение Снег Север » 23.05.2021 10:50:52

А вы встроенный в лазарь Anchor Editor используете? Вот тут дают советы:
https://forum.lazarus.freepascal.org/in ... ic=52060.0

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

Re: Масштабирование интерфейса

Сообщение alexs » 23.05.2021 21:28:26

1. В параметрах проекта нужно включить масштабирование
2. Не использовать абсолютное позиционирование - только через привязки
3. По возможности у всех компонент выставлять AutoSize=true (там где оно есть)
4. Для пиктограм использовать ImageList-ы в которых созданы наборы для нужных масштабов - например 16*16 24*24 32*32
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь


Вернуться в Общее

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

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

Рейтинг@Mail.ru