Управление размером окна программы

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

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

Ответить
Аватара пользователя
qivi
энтузиаст
Сообщения: 703
Зарегистрирован: 19.01.2009 12:45:54
Откуда: Россия

Управление размером окна программы

Сообщение qivi »

Лазарус .......29 под Убунту.
По задумке окно программы имеет строго регламентированный размер, уменьшение и увеличение недопустимы. Если я выбираю параметр окна "BorderStyle" как "bsSingle" то после компиляции при наведении курсора на край окна и таская за него окно можно как уменьшать, так и увеличивать (чего как я понимаю быть недолжно). Пытаюсь выставить параметры "Constraints" максимум и минимум в одни и те же значения, но после компиляции окно программы становится недвижимостью, его нетолько растянуть невозможно но и сдвинуть с места. Это ошибка Лазаруса (lcl, fcl, компилятора) или я что то делаю не так?
v-t-l
энтузиаст
Сообщения: 745
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

qivi писал(а):"BorderStyle" как "bsSingle"

BorderStyle=bsDialog
Последний раз редактировалось v-t-l 23.09.2009 09:38:57, всего редактировалось 2 раза.
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

v-t-l писал(а):
qivi писал(а):"BorderStyle" как "bsSingle"

BorderStyle=bsDialog

Всёравно окно под GTK2 будет менять свои размеры :wink:
v-t-l
энтузиаст
Сообщения: 745
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

Похоже зависит от WindowManager'а/WindowDecorator'а. У меня Compiz/Emerald - окно перемещается и не растягивается и при bsSingle, и при bsDialog. А может и от версии Lazarus'а - у меня 0.9.27 SVN 20802 (GTK2)
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Последний раз под GTK2 писал ещё на 0.9.24 :oops:
Аватара пользователя
qivi
энтузиаст
Сообщения: 703
Зарегистрирован: 19.01.2009 12:45:54
Откуда: Россия

Сообщение qivi »

Люди, сжальтесь... делать то что? Может это ошибка и о ней надо писать команде разработчиков, стабильная .......28 ещё не вышла, мож поправят?
Павел Ишенин
постоялец
Сообщения: 475
Зарегистрирован: 24.03.2007 09:16:52

Сообщение Павел Ишенин »

Установить constraints надо.
Аватара пользователя
qivi
энтузиаст
Сообщения: 703
Зарегистрирован: 19.01.2009 12:45:54
Откуда: Россия

Сообщение qivi »

Установить constraints надо.

Дак я же в первом посте написал к чему приводит их установка!!!
Аватара пользователя
hinst
энтузиаст
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Сообщение hinst »

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

Сообщение alexs »

qivi писал(а):По задумке окно программы имеет строго регламентированный размер, уменьшение и увеличение недопустимы

Вот это зло. Ваш красивый и продуманный интерфейс улиетит куда нить при установке другой темы в DM. В таком случае обязательно надо делать привязки элементов и автомасштабирование окна.
Аватара пользователя
qivi
энтузиаст
Сообщения: 703
Зарегистрирован: 19.01.2009 12:45:54
Откуда: Россия

Сообщение qivi »

В onResize можно "запретить" менять размер

Но там нет такого?!!!...

Вот это зло. Ваш красивый и продуманный интерфейс улиетит куда нить при установке другой темы в DM. В таком случае обязательно надо делать привязки элементов и автомасштабирование окна.

Я в пределах разумного это предусмотрел, во первых элементы окна заложенны с некоторым запасом размера, во вторых пользуюсь редактором привязок, а в третих можно и откозаться от шрифтов стандартной темы жёстко указав свои - ни самый плохой вариант.

Может сообщить разработчикам что под гтк bsSingle не отрабатывает? Только как и куда писать, никогда ещё этого не делал?

Добавлено спустя 22 часа 33 минуты 42 секунды:
Единственным хоть сколько то приемлемым решением стало прописывать constraints таким образом, что если мне нужно окно скажем 600х350, то эти цифры я прописываю в минимум, а в максимум значения на единицу больше. Таким образом и окно не перестаёт двигаться, и существенно изменить размер окна невозможно. Но это конечно извращения, должен же отробатывать bsSingle по нормальному... разве это не баг?
Ответить