powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Программирование события Resize у окон
7 сообщений из 7, страница 1 из 1
Программирование события Resize у окон
    #32948809
Фотография ИвановНН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пришел в PB после C++ Builder и Delphi и был неприятно удивлен отсутствием автоматического Resize у окон, т.е. изменение размеров окна необходимо обрабатывать и соответственно двигать и изменять размеры всех контролов окна так, как это необходимо исходя из интерфейса. Хотелось бы узнать, как можно это автоматизировать, может быть в pfc есть готовые шаблоны (просто я сам с pfc не работал), вообще, хотелось бы услышать ваше мнение, товарищи программисты, кто как с этой проблемой справляется.
...
Рейтинг: 0 / 0
Программирование события Resize у окон
    #32948832
_Guest_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PB больше заточен под работу с БД, а если хочешь красивый интерфейс,
то пишешь ручками САМ.
А от PFC лучше брать идею, а не сам PFC (моё мнение).
...
Рейтинг: 0 / 0
Программирование события Resize у окон
    #32948835
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИвановННЯ пришел в PB после C++ Builder и Delphi...
ИвановННХотелось бы узнать, как можно это автоматизировать, может быть в pfc есть готовые шаблоны (просто я сам с pfc не работал), вообще, хотелось бы услышать ваше мнение, товарищи программисты, кто как с этой проблемой справляется.Да, можно использовать pfc (n_cst_resize и n_cst_dwsrv_resize), там все уже придумано. А можно реализовать аналогичные вещи самостоятельно. Полагаю, что можно даже имитировать аналог свойства Align (или как он там называется)...


Дальше сплошное IMHO.
Если под программированием понимать не клепание формочек, а построение архитектуры и технологии разработки, то никакой проблемы нет - либо используешь подход, предлагаемый вендором, либо разрабатываешь этот подход самостоятельно. Разработка корректного ресайза в этом случае составит менее одного процента общей трудоемкости разработки приложения, причем делается один раз на всю жизнь :-)
...
Рейтинг: 0 / 0
Программирование события Resize у окон
    #32948837
Mykola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
use pfc
in event pfc_preopen() for window
this.of_setresize(true)
this.inv_resize.of_register(<object>,x,y,width, height)
...
Рейтинг: 0 / 0
Программирование события Resize у окон
    #32948989
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/topic/134696&hl=
...
Рейтинг: 0 / 0
Программирование события Resize у окон
    #32961090
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для PB6.5 и выше

//************ Обработка для Resize ************************
// В instance variable должна быть определена переменная
// uo_resize_window io_resize_window

// Определение первого запуска и создание управляющего элемента - UserObject-а
IF NOT(IsValid(io_resize_window)) THEN ; io_resize_window = Create uo_resize_window ; END IF

// Исключаются режимы minimize и режимы popup-окон
IF (sizetype > 2) OR sizetype = 1 THEN ; Return(0) ; END IF

// Вызов универсального resizer-а
io_resize_window.of_resize(This,newwidth,newheight,4,4,"tabpage_6 cbx_2 ")
// Эта функция при первом вызове "подбирает" все обьекты на окне , включая размещенные
// на закладках и userobject-ах со вложенностью до 6 и сохраняет в instance массиве
// все данные по их координатам и размерам (включая fontsize)
// при повторных вызовах - выполняется move&resize этих обьектов
//
// Параметры функции of_resize(window a_window,int newwidth,int newheight, &
// int One_Dim_mode, int Two_Dim_mode,{string as_exception} )
// a_window - обязательно THIS
// newwidth, newheight - новые значения ширины и высоты - параметры event resize
// Все обьекты , располагающиеся на window делятся на две категории :
// одноразмерные - те , которые располагаются в одну строку
// CASE commandbutton! , statictext! , singlelineedit!, checkbox!, editmask!,&
// dropdownlistbox!, picturebutton!, radiobutton!
// остальные - двухразмерные
//
// Режимы - отдельно для одномерных и двумерных обьектов - one_dim_mode/two_dim_mode
// 0 - do nothing
// 1 - только move - пропорциональное изменение положение верхнего левого угла обьекта
// 2 - (1) + изменение размера только по ширине
// 3 - (1) + изменение размера по обеим координатам
// 4 - (3) + изменение размера шрифта в соответсвии с изменением newheight, для обьектов
// в которых существует этот property
// для DataWidow и RTF - не относится - нужно управлять шрифтом внутри обьекта
//
// Рекомендуемые параметры по умолчанию {One_Dim_mode =2 , Two_Dim_mode = 3}
//as_exception - необязательный строчный список обьектов-исключений вида "tab_12 cb_34 " ,
// на которые Resizer не влияет ; если в список входит обьект типа tab или tabpage
// - то и все "лежащие" на нем также не видоизменяются
//
// Внимание!!! - естественно - resizer не совместим и не допустим к применению совместно с любым
// иным resizer-ом, особенно из PFC



//Debug messages
This.St_1.Text="StaticText Width/Height = " + String(This.Width)+"/"+String(This.Height)

Return(0)
// Обязательно выполнить деструктор обьекта
// Включить в event [Close] - Destroy io_resize_window

// SPb,ZhV
...
Рейтинг: 0 / 0
Программирование события Resize у окон
    #32986884
Фотография ИвановНН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Благодарю всех за советы.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Программирование события Resize у окон
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]