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

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

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

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


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