Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Dockable Windows / 8 сообщений из 8, страница 1 из 1
28.02.2005, 15:51
    #32936781
bumsy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dockable Windows
Привет All!
А нет ли реализации dockable windows для PB, никто не в курсе ?
Нужно сделать дерево, которое будет постоянно (или почти постоянно :) ) отображаться в mdi-приложении с одной из сторон окна приложения, примерно как system tree в среде разработки PB.
Первая реализация (только дерева в левой части экрана) уже есть, но периодически возникают всякие неучтенные изначально вещи в виде схлопывания mdi-рамки из-за перемещения тулбара и тому подобное, с которыми приходится бороться.
Собственно ищется пример или библиотека реализации dockable windows, чтобы не придумывать велосипед.
...
Рейтинг: 0 / 0
28.02.2005, 16:59
    #32936971
AIZ
AIZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dockable Windows
Вообще в MDI что-либо располагать не рекомендуется. Попробуй все то же самое в Sheet
...
Рейтинг: 0 / 0
28.02.2005, 18:27
    #32937204
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dockable Windows
bumsyПривет All!
А нет ли реализации dockable windows для PB
Нет.
Вот пример как сделать explorer like интерфейс.
toolbarusercontrol отключён.
...
Рейтинг: 0 / 0
28.02.2005, 19:06
    #32937270
bumsy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dockable Windows
To AIZ:
А почему не рекомендуется, можете подсказать?

To Филипп:
За основу как раз и был взят этот пример :). Но в нем есть проблемы, не отслеживается перемещения toolbar (в данном примере это происходит из пункта меню "File -> Toolbars..." выбором Left, Top и т.п.) и не учитывается нестандартное его расположение - точнее mdi-рамка краем прячется за тулбар и соответственно окна, открытые внутри mdi-рамки, тоже прячутся своим краем. Пример правда все равно полезный.
Забавно, что сама среда разработки PB активно использует dockable windows...
...
Рейтинг: 0 / 0
28.02.2005, 19:34
    #32937308
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dockable Windows
bumsyTo Филипп:
За основу как раз и был взят этот пример :). Но в нем есть проблемы, не отслеживается перемещения toolbar (в данном примере это происходит из пункта меню "File -> Toolbars..." выбором Left, Top и т.п.) и не учитывается нестандартное его расположение - точнее mdi-рамка краем прячется за тулбар и соответственно окна, открытые внутри mdi-рамки, тоже прячутся своим краем. Пример правда все равно полезный.
Так убрать меню "File -> Toolbars..." (я просто поленился его стереть когда пример делал) и обязательно toolbarusercontrol отключить.
bumsy
Забавно, что сама среда разработки PB активно использует dockable windows...
Ну так сама среда разработки PB на VC++ написана, хотя и использует (местами) PB window classes.
...
Рейтинг: 0 / 0
01.03.2005, 07:19
    #32937621
AIZ
AIZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dockable Windows
Дело в том, что пустое пространство внутри MDI - окна является элементом управления. Его имя всегда mdi_1. У него есть свойства и функции, но нет событий. Если в нем нет других элементов управления, PB сам управляет им, а если что-то там разместить, то PB перестает это делать и приходится писать довольно большой и сложный код, чтобы корректно им управлять. См. Брайан Дж. Смит, Гордон У. Шаад и т.д. PowerBuilder 5.0 Библия разработчика. Диалектика. Киев-Москва 1997 г. Стр. 331.
...
Рейтинг: 0 / 0
01.03.2005, 17:07
    #32939369
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dockable Windows
Не помню уже что там может быть такое большое и сложное.
Там вроде размеры только выставить надо.
Пять строчек.
...
Рейтинг: 0 / 0
02.03.2005, 16:31
    #32941784
bumsy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dockable Windows
AIZДело в том, что пустое пространство внутри MDI - окна является элементом управления. Его имя всегда mdi_1. У него есть свойства и функции, но нет событий. Если в нем нет других элементов управления, PB сам управляет им, а если что-то там разместить, то PB перестает это делать и приходится писать довольно большой и сложный код, чтобы корректно им управлять.
Да, все верно :) Только в моей книжке по PB про большой и сложный код не было сказано :) Вот и Зорин Андрей тоже слогласен.

To Филлип:
Отключение тулбара в том примере не спасет от всех напастей. Вернее для данного примера это не заметно, но когда приложение большое и тулбар становится очень большим, то не очень хорошо отключать возможность его двигать, может для удобной работы будет желательно перетащить его.
Есть такая неприятная вещь, что если при закрытии sheet-окна уменьшится высота тулбара (то есть закроется тулбар этого sheet-окна), то не происходит ни события toolbarmoved MDI-окна, ни события resize MDI-окна. И переопределение размеров и положения MDI-окна (точнее mdi-рамки), приходиться делать в событии Close закрываемого sheet-окна. Минус в том, что нужно прописать код в каждом sheet-окне, содержащем меню с тулбаром, либо один раз прописать в предке, если все открываемые sheet-окна унаследованы от него. У меня используется второй вариант. Но для общности,
может кто знает, как еще можно отловить это событие ??? Событие, когда тулбар "уменьшается" из-за закрытия sheet-окна?

В общем, после некотрых мытарств удалось заставить жить постоянной жизнью дерево в MDI-окне, пока живет нормально. Окна ресайзятся и муваются, тулбар тоже делает свое дело. Переделанный упомянутый Филиппом пример должен прицепиться к этому посту.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Dockable Windows / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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