Решено: Масштабирование компонентов

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

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

Решено: Масштабирование компонентов

Сообщение azsx » 27.11.2015 11:14:18

В делфи в режиме firemonkey есть замечательный режим scale. О самостоятельно масштабирует все компоненты на форме (кнопки, тексты, мемо и прочее) при изменении размеров формы. Есть ли что то такое в lazarus?
Последний раз редактировалось azsx 04.12.2015 07:22:29, всего редактировалось 1 раз.
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: Масштабирование компонентов

Сообщение WAYFARER » 28.11.2015 01:16:32

В Lazarus есть такая замечательная и удобная штука как привязки (Anchors).
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Масштабирование компонентов

Сообщение Лекс Айрин » 28.11.2015 10:49:48

WAYFARER, не забудьте еще и автосайз, иначе размеры текстовых надписей поедут.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Масштабирование компонентов

Сообщение qivi » 30.11.2015 19:13:49

Привязки и авторесайз это прекрасные инструменты, без них невозможно сделать полноценный интерфейс. И они обеспечивают некоторую адаптивность интерфейса при изменении DPI, однако это не имеет ни какого отношения к масштабированию интерфейса. Если при незначительном масштабировании ничего не заметно, то при масштабировании под экран высокой плотности вы получаете довольно убогую картину, отступы как внутри контролов так и заложенные между ними смотряться неадекватно, сами "шкурки" контролов отрисованны по низкому DPI и тонкие линии теряются, изображения на кнопках размером менее 32*32 становятся экранным мусором. Если интерфейс собран грамотно с привязками и авторесайзами - на функцианальном уровне вы получите сносную ситуацию, но в части читаемости, а так же и эстетики - картина печальная.

П.С.: Кстати, одной из причин убогости интерфейса самой среды Lazarus является пренебрежение этими инструментами, при использовании Lazarus на экранах высокой плотности - получаем артефакты в каждом первом, за исключением каждого 100500'го окна, а порой и полную кашу.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Масштабирование компонентов

Сообщение sign » 01.12.2015 07:53:17

У меня 1920х1080, 32 бита.
Никаких артефактов не наблюдаю от слова - совсем.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Масштабирование компонентов

Сообщение qivi » 01.12.2015 12:34:57

sign А при чём тут 32 бита?

У вас обышный Full HD экран (не знаю правда какой диогонали), на таком (с 15 диагональю) я то же не наблюдаю артефактов в виде сползания, наложения, некорректного отображения компонентов из за отсутствия у них авторесайза и т. д. Такие вещи я наблюдаю на ноутбуке с экраном высокой плотности 3200*1800 пикселей на 13,3 дюймах диагонали.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Масштабирование компонентов

Сообщение Лекс Айрин » 01.12.2015 12:44:19

qiviУ меня такое было когда не пользовался привязкой и автосайзом. Другое дело, что под линуксами зачастую приходилось перекомпилировать под каждую систему в которой работал.. но это не думаю что большая проблема для самопального проекта. О, кстати, а ведь для компонентов можно еще дать выбрать шрифт пользователю.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Масштабирование компонентов

Сообщение qivi » 01.12.2015 12:50:12

Лекс Айрин писал(а):У меня такое было когда не пользовался привязкой и автосайзом

Лекс Айрин, в моих "самопальных" проектах проблем с артифактами масштабирования интерфейса нет, потому что я с самого начала пользуюсь привязками и авторесайзом, однако привязки и авторесайз не равно масштабирование - но об этом я уже написал выше. С sign мы обсуждаем интерфейс самой среды Lazarus.

Лекс Айрин писал(а):Другое дело, что под линуксами зачастую приходилось перекомпилировать под каждую систему в которой работал..

Не сталкивался, хотя с большим количеством систем и не работаю. Только не понял как это к масштабированию относится?
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Масштабирование компонентов

Сообщение Лекс Айрин » 01.12.2015 14:14:07

qivi писал(а): Только не понял как это к масштабированию относится?

При масштабировании этих проблем не возникает. Впрочем, эту проблему можно будет решить ручным изменением шрифта.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Масштабирование компонентов

Сообщение alexs » 01.12.2015 15:32:05

qivi писал(а):Такие вещи я наблюдаю на ноутбуке с экраном высокой плотности 3200*1800 пикселей на 13,3 дюймах диагонали.

Наверное нет таких мониторов у разработчиков лазаря :-)
PS
Я в момент выбора ноута предпочел взять с большей матрицей но меньшим разрешением, чем с высоким разрешением, но маленькой матрицей.
Всё равно он в основном в машине ездит, а не на плече висит....
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Масштабирование компонентов

Сообщение qivi » 01.12.2015 17:02:16

Лекс Айрин писал(а):Впрочем, эту проблему можно будет решить ручным изменением шрифта.

Это не решение проблемы, это просто функциональный компромисс. И тут не надо ничего делать со стороны программы, всё сделано со стороны рабочего окружения ОС. Что касается полноценного масштабирования, я уже написал выше:
qivi писал(а):отступы как внутри контролов так и заложенные между ними смотряться неадекватно, сами "шкурки" контролов отрисованны по низкому DPI и тонкие линии теряются, изображения на кнопках размером менее 32*32 становятся экранным мусором.

Остаётся ждать GTK3... но там похоже при увеличении DPI ждут другие проблемы.

alexs писал(а):Я в момент выбора ноута предпочел взять с большей матрицей но меньшим разрешением

Всё правильно, нужно выбирать под свои задачи и предпочтения. Когда я выбирал мобильный ноутбук, экран высокой плотности был одним из моих критериев. У меня ещё есть "стационарный" заточен на производительность и в первую очередь графику, когда я его брал это было топовое железо, сейчас уже старичёк, но мне пока хватает.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Масштабирование компонентов

Сообщение Лекс Айрин » 01.12.2015 17:55:19

qivi писал(а):Это не решение проблемы, это просто функциональный компромисс.

Согласен... но надо как-то же выходить из положения.

qivi писал(а):отступы как внутри контролов так и заложенные между ними смотряться неадекватно,

Не было у меня такой проблемы. Может быть и потому, что я не гонюсь за разрешением на мониторе. А что оно лично у ВАС неадекватное это не проблемы программистов RAD. Это ВАШИ проблемы. При нормальном разрешении размер точки (пикселя) примерно одинаков для любого нормального монитора и, насколько я помню, не должен быть меньше 0,25мм. А для самых-самых есть настройка DPI.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Масштабирование компонентов

Сообщение qivi » 01.12.2015 18:26:50

Лекс Айрин писал(а):А что оно лично у ВАС неадекватное это не проблемы программистов RAD.

Ну это классика жанра что проблемы того кто с ними столкнулся, причём обязательно личные (это ж опен сурц) )))) Я не отрицаю что я столкнулся с этой проблемой, а значит это И моя проблема... Однако будучи моей "личной" проблемой, она происходит не от моих действий/отсутствия навыков/отсутствия знаний. Как вы заметили:
Лекс Айрин писал(а):А для самых-самых есть настройка DPI.

собственно о чём я и говорил вам на пост выше:
qivi писал(а):И тут не надо ничего делать со стороны программы, всё сделано со стороны рабочего окружения ОС.

однако GTK2 в применении DPI установленного в рабочем окружении системы ущербен и ограничивается увеличением шрифтов, так как он родом из тех времён когда никому в голову не приходило, что нужна действительная и полноценная поддержка DPI. Поэтому он не обрабатывает МАСШТАБИРОВАНИЕ ИНТЕРФЕЙСА, а всего лишь реализует функциональный компромисс, и вот как результат исключительно моя исключительно личная проблема:
qivi писал(а):отступы как внутри контролов так и заложенные между ними смотряться неадекватно, сами "шкурки" контролов отрисованны по низкому DPI и тонкие линии теряются, изображения на кнопках размером менее 32*32 становятся экранным мусором.


Это конечно не проблема программистов RAD, хотя никрофилирование на GTK2 не добавляет привлекательности RAD, однако вполне таки проблема непосредственно RAD Lazarus и задача её разработчиков:
qivi писал(а):при использовании Lazarus на экранах высокой плотности - получаем артефакты в каждом первом, за исключением каждого 100500'го окна, а порой и полную кашу.

qivi писал(а):артефактов в виде сползания, наложения, некорректного отображения компонентов из за отсутствия у них авторесайза и т. д.




Лекс Айрин писал(а):При нормальном разрешении размер точки (пикселя) примерно одинаков для любого нормального монитора и, насколько я помню, не должен быть меньше 0,25мм.

Ну это вы вообще зря... "нормальная"?... Правда? Как говорил лохматый немец: "Всё относительно". Экран высокого разрешения сегодня уже не редкость и цены хоть и выше но за облака не улетают (то биш это доступно), а смотреть на его картинку значительно приятнее, как фотография только немного подсвеченая. Так что если уж на то пошло такая точка более "нормальная".
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Масштабирование компонентов

Сообщение Лекс Айрин » 01.12.2015 19:03:45

qivi писал(а):Ну это вы вообще зря... "нормальная"?

Нормальная для глаз, конечно. При меньшем размере зерна глаз не может разглядеть точку/линию не напрягаясь и, при этом, на комфортном расстоянии от монитора. И есть довольно неплохой шанс заиметь очки, которые не при каждом ударе разбиваются. И если у тебя такое разрешение, то будь готов к перенастройкам и тюнингу операционки... ну и программ заодно. Такие экраны, как у Вас хороши для расширенной/виртуальной реальности.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Масштабирование компонентов

Сообщение sign » 02.12.2015 07:29:08

qivi писал(а):sign А при чём тут 32 бита?


1.jpg


qivi писал(а):У вас обышный Full HD экран (не знаю правда какой диогонали), на таком (с 15 диагональю) я то же не наблюдаю артефактов в виде сползания, наложения, некорректного отображения компонентов из за отсутствия у них авторесайза и т. д. Такие вещи я наблюдаю на ноутбуке с экраном высокой плотности 3200*1800 пикселей на 13,3 дюймах диагонали.

It has a 21.5-inch diagonal viewable screen.
The screen area is 197.4 square inches.

20151202_102607.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru