|
|
|
Dockable Windows
|
|||
|---|---|---|---|
|
#18+
Привет All! А нет ли реализации dockable windows для PB, никто не в курсе ? Нужно сделать дерево, которое будет постоянно (или почти постоянно :) ) отображаться в mdi-приложении с одной из сторон окна приложения, примерно как system tree в среде разработки PB. Первая реализация (только дерева в левой части экрана) уже есть, но периодически возникают всякие неучтенные изначально вещи в виде схлопывания mdi-рамки из-за перемещения тулбара и тому подобное, с которыми приходится бороться. Собственно ищется пример или библиотека реализации dockable windows, чтобы не придумывать велосипед. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 15:51 |
|
||
|
Dockable Windows
|
|||
|---|---|---|---|
|
#18+
Вообще в MDI что-либо располагать не рекомендуется. Попробуй все то же самое в Sheet ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 16:59 |
|
||
|
Dockable Windows
|
|||
|---|---|---|---|
|
#18+
bumsyПривет All! А нет ли реализации dockable windows для PB Нет. Вот пример как сделать explorer like интерфейс. toolbarusercontrol отключён. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 18:27 |
|
||
|
Dockable Windows
|
|||
|---|---|---|---|
|
#18+
To AIZ: А почему не рекомендуется, можете подсказать? To Филипп: За основу как раз и был взят этот пример :). Но в нем есть проблемы, не отслеживается перемещения toolbar (в данном примере это происходит из пункта меню "File -> Toolbars..." выбором Left, Top и т.п.) и не учитывается нестандартное его расположение - точнее mdi-рамка краем прячется за тулбар и соответственно окна, открытые внутри mdi-рамки, тоже прячутся своим краем. Пример правда все равно полезный. Забавно, что сама среда разработки PB активно использует dockable windows... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 19:06 |
|
||
|
Dockable Windows
|
|||
|---|---|---|---|
|
#18+
bumsyTo Филипп: За основу как раз и был взят этот пример :). Но в нем есть проблемы, не отслеживается перемещения toolbar (в данном примере это происходит из пункта меню "File -> Toolbars..." выбором Left, Top и т.п.) и не учитывается нестандартное его расположение - точнее mdi-рамка краем прячется за тулбар и соответственно окна, открытые внутри mdi-рамки, тоже прячутся своим краем. Пример правда все равно полезный. Так убрать меню "File -> Toolbars..." (я просто поленился его стереть когда пример делал) и обязательно toolbarusercontrol отключить. bumsy Забавно, что сама среда разработки PB активно использует dockable windows... Ну так сама среда разработки PB на VC++ написана, хотя и использует (местами) PB window classes. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 19:34 |
|
||
|
Dockable Windows
|
|||
|---|---|---|---|
|
#18+
Дело в том, что пустое пространство внутри MDI - окна является элементом управления. Его имя всегда mdi_1. У него есть свойства и функции, но нет событий. Если в нем нет других элементов управления, PB сам управляет им, а если что-то там разместить, то PB перестает это делать и приходится писать довольно большой и сложный код, чтобы корректно им управлять. См. Брайан Дж. Смит, Гордон У. Шаад и т.д. PowerBuilder 5.0 Библия разработчика. Диалектика. Киев-Москва 1997 г. Стр. 331. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 07:19 |
|
||
|
Dockable Windows
|
|||
|---|---|---|---|
|
#18+
Не помню уже что там может быть такое большое и сложное. Там вроде размеры только выставить надо. Пять строчек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 17:07 |
|
||
|
Dockable Windows
|
|||
|---|---|---|---|
|
#18+
AIZДело в том, что пустое пространство внутри MDI - окна является элементом управления. Его имя всегда mdi_1. У него есть свойства и функции, но нет событий. Если в нем нет других элементов управления, PB сам управляет им, а если что-то там разместить, то PB перестает это делать и приходится писать довольно большой и сложный код, чтобы корректно им управлять. Да, все верно :) Только в моей книжке по PB про большой и сложный код не было сказано :) Вот и Зорин Андрей тоже слогласен. To Филлип: Отключение тулбара в том примере не спасет от всех напастей. Вернее для данного примера это не заметно, но когда приложение большое и тулбар становится очень большим, то не очень хорошо отключать возможность его двигать, может для удобной работы будет желательно перетащить его. Есть такая неприятная вещь, что если при закрытии sheet-окна уменьшится высота тулбара (то есть закроется тулбар этого sheet-окна), то не происходит ни события toolbarmoved MDI-окна, ни события resize MDI-окна. И переопределение размеров и положения MDI-окна (точнее mdi-рамки), приходиться делать в событии Close закрываемого sheet-окна. Минус в том, что нужно прописать код в каждом sheet-окне, содержащем меню с тулбаром, либо один раз прописать в предке, если все открываемые sheet-окна унаследованы от него. У меня используется второй вариант. Но для общности, может кто знает, как еще можно отловить это событие ??? Событие, когда тулбар "уменьшается" из-за закрытия sheet-окна? В общем, после некотрых мытарств удалось заставить жить постоянной жизнью дерево в MDI-окне, пока живет нормально. Окна ресайзятся и муваются, тулбар тоже делает свое дело. Переделанный упомянутый Филиппом пример должен прицепиться к этому посту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2005, 16:31 |
|
||
|
|

start [/forum/topic.php?fid=15&fpage=90&tid=1338507]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
75ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 426ms |

| 0 / 0 |
