Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как сделать удобный MDI-интерфейс?
|
|||
|---|---|---|---|
|
#18+
Уважаемые программисты и дизайнеры! Пожалуйста, помогите решить проблему неудобного интерфейса! Что имеем: MDI-приложение (АСУ Предприятия) с ОГРОМНЫМ количеством пунктов меню. Недостатки: 1. Пользователю трудно в нем ориентироваться. 2. Неудобно искать мышкой нужный пункт меню, даже если помнишь где он находится 3. Сложно сделать настройку меню под конкретного пользователя. Решение: Предствить меню в виде дерева (treeview). Т.е. сделать что-то наподобие интерфейса Sybase. Чтобы у каждого пользователя был свой "workspace", настраиваемый администратором. Всё уже реализовано, но остались две проблемы, которые я не могу решить. Проблемы: 1. Не могу сделать удобное окошко "System Tree", в котором показывается Workspace. Это окошко должно быть привязано к MDI и в то-же время легко перемещалось и "прилипало" к стенкам окна. 2. Не могу отловить изменение размера рабочей области MDI. Например, когда пользователь убирает ToolBar, размеры окна остаются прежними, а размеры рабочей области изменяются. Посоветуйте, как быть. Или может есть другие, более удобные и красивые, решения для построения интерфейса большого MDI-приложения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 14:41 |
|
||
|
Как сделать удобный MDI-интерфейс?
|
|||
|---|---|---|---|
|
#18+
Louder2. Не могу отловить изменение размера рабочей области MDI. Например, когда пользователь убирает ToolBar, размеры окна остаются прежними, а размеры рабочей области изменяются. Размеры рабочей обасти определяются WorkSpaceHeight() и WorkSpaceWidth() соответственно. По ним и нужно ресайзиться. На перемещение тулбара реагирует адекватно. --- С уважением, IKAR ikarhomecenter@narod.ru IkarHomeCenter ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 15:05 |
|
||
|
Как сделать удобный MDI-интерфейс?
|
|||
|---|---|---|---|
|
#18+
Запихать информацию о пунктах меню в БД, для каждого пользователя назначать доступность каждого пункта меню (либо на пользователя, либо на группу). Сделать один режим ведения иерархического списка меню. После этого забыть о проблемах большого меню навсегда. Best wishes. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 16:28 |
|
||
|
Как сделать удобный MDI-интерфейс?
|
|||
|---|---|---|---|
|
#18+
IkarРазмеры рабочей обасти определяются WorkSpaceHeight() и WorkSpaceWidth() соответственно. По ним и нужно ресайзиться. На перемещение тулбара реагирует адекватно. Так как же отловить изменение этих размеров? Нужно событие, которого, к сожалению, нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 16:38 |
|
||
|
Как сделать удобный MDI-интерфейс?
|
|||
|---|---|---|---|
|
#18+
gal20Сделать один режим ведения иерархического списка меню. Поясните пожалуйста. Что за режим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 16:40 |
|
||
|
Как сделать удобный MDI-интерфейс?
|
|||
|---|---|---|---|
|
#18+
LouderТак как же отловить изменение этих размеров? Нужно событие, которого, к сожалению, нет. Код на resize окна: Код: plaintext 1. 2. 3. 4. 5. --- С уважением, IKAR ikarhomecenter@narod.ru IkarHomeCenter ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 16:41 |
|
||
|
Как сделать удобный MDI-интерфейс?
|
|||
|---|---|---|---|
|
#18+
Ikarпрекрасно отрабатывает... При перетаскивании ToolBar-а событие resize не срабатывает, а рабочая область изменяется. Это логично, т.к. размеры окна-фрейма не меняются. Может есть во фрейме ещё какое-то событие на изменение рабочей области? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 16:57 |
|
||
|
Как сделать удобный MDI-интерфейс?
|
|||
|---|---|---|---|
|
#18+
ToolbarMoved ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 18:12 |
|
||
|
Как сделать удобный MDI-интерфейс?
|
|||
|---|---|---|---|
|
#18+
Louder gal20Сделать один режим ведения иерархического списка меню. Поясните пожалуйста. Что за режим? Создаете в БД таблицу, в которой в каждой записи будет храниться информация об одном пункте меню. Помимо поля первичного ключа добавляете поле, где будет храниться значение первичного ключа записи с пунктом меню вышележащего уровня (код "предка"). Назначаете соответствующий foreign key . Создаете datawindow с единственным входным параметром - кодом "предка". По нему делаете retrieve, и всегда получаете все пункты меню текущего уровня. Налаживаете навигацию по иерархическому списку. Добавляете еще одну таблицу, где будет храниться информация о доступе к этому пункту меню каждого user'а или группы. dw на основе этой таблицы ставите в подчинение основному списку. На событии create mdi-окна проходитесь по иерархическому списку меню и дополняете Ваше существующее меню нужными пунктами для текущего user'а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 18:15 |
|
||
|
Как сделать удобный MDI-интерфейс?
|
|||
|---|---|---|---|
|
#18+
gal20 Louder gal20Сделать один режим ведения иерархического списка меню. Поясните пожалуйста. Что за режим? На событии create mdi-окна проходитесь по иерархическому списку меню и дополняете Ваше существующее меню нужными пунктами для текущего user'а. А можно рассказать по подробнее как динамически добавлять пункты в меню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2005, 07:59 |
|
||
|
Как сделать удобный MDI-интерфейс?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2005, 09:18 |
|
||
|
Как сделать удобный MDI-интерфейс?
|
|||
|---|---|---|---|
|
#18+
автор Всё уже реализовано, но остались две проблемы Так как все уже реализовано, наверное мое предложение не подойдет, просто расскажу как сделал я. TreeView является частью не главного окна Frame, а частью окна "проводника", которое окрывается как Shеet, в котором и открываются все объекты при выборе пункта в дереве. То есть я в главном окне могу открыть несколько "проводников", каждый из которых может отражать разное подмножество системы, либо одно множество - в разных ветвях, либо каждый проводник может быть подключен к разным БД. Проводник реализован так, что отображает списки данных и отчеты внутри себя, а формы редактирования как немодальные окна (примерно как в PowerDesigner) Возможно это решение временное, пока в PB нет реализации dockable windows. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2005, 11:53 |
|
||
|
Как сделать удобный MDI-интерфейс?
|
|||
|---|---|---|---|
|
#18+
rcryoТак как все уже реализовано, наверное мое предложение не подойдет, просто расскажу как сделал я. TreeView является частью не главного окна Frame, а частью окна "проводника", которое окрывается как Shеet, в котором и открываются все объекты при выборе пункта в дереве. То есть я в главном окне могу открыть несколько "проводников", каждый из которых может отражать разное подмножество системы, либо одно множество - в разных ветвях, либо каждый проводник может быть подключен к разным БД. Проводник реализован так, что отображает списки данных и отчеты внутри себя, а формы редактирования как немодальные окна (примерно как в PowerDesigner) Возможно это решение временное, пока в PB нет реализации dockable windows. Спасибо. Отличный подход, мне нравится. По-моему удобно и красиво. Есть только несколько вопросов: 1. Как тулбар запихнуть в окно? Билдер позволяет это делать? И что будет, если его внутри окна таскать? 2. В окнах редактирования тоже встроен ToolBar? Какой у них WindowType? 3. Как табличная часть окна-проводника отреагирует на добавление новой записи через окно редактирования? Будет ретривится? Кстати, retrieve as needed используете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2005, 13:32 |
|
||
|
Как сделать удобный MDI-интерфейс?
|
|||
|---|---|---|---|
|
#18+
Можно тоже самое, что предложил rcryo, но во фрейме. Explorer type control from Philip Salgannik ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2005, 18:50 |
|
||
|
Как сделать удобный MDI-интерфейс?
|
|||
|---|---|---|---|
|
#18+
1. Как тулбар запихнуть в окно? Билдер позволяет это делать? И что будет, если его внутри окна таскать? На самом деле у меня toolbar не в окне, а в visual userobject, который появляется в правой части проводника, при выборе элемента в treeview. ActiveBar позволяет это делать. см. Data Dynamics только я использую старую версию 1.0.6, со второй были какие-то проблемы (может уже исправили), щас не помню. Если его (toolbar) таскать, то срабатывает событие resize объекта который его содержит, с правильными значениями newwidth, newheight 2. В окнах редактирования тоже встроен ToolBar? Какой у них WindowType? тот же ActiveBar 3. Как табличная часть окна-проводника отреагирует на добавление новой записи через окно редактирования? Будет ретривится? Кстати, retrieve as needed используете? После изменения или добавления записи в любом из объектов, посылается оповещение менеджеру объектов, который рассылает сообщение об обновлении (со значением первичного ключа добавленной/измененной записи) другим объектам, которые имеют источником данных ту же таблицу в БД. Объект, получивший сообщение об обновлении, действеут по обстоятельствам, либо полный Retrieve, либо retrieve записи в DW по значению первичного ключа, либо ничего не делает. Retrieve as Need не использую и вам не советую. Чтобы ограничить выборку есть масса способов, на форуме уже обсуждалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2005, 19:33 |
|
||
|
Как сделать удобный MDI-интерфейс?
|
|||
|---|---|---|---|
|
#18+
Всем огромное спасибо. Решение принял. Постараюсь прислать скриншот, когда все сделаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 10:57 |
|
||
|
Как сделать удобный MDI-интерфейс?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 20:10 |
|
||
|
Как сделать удобный MDI-интерфейс?
|
|||
|---|---|---|---|
|
#18+
rcryoНа самом деле у меня toolbar не в окне, а в visual userobject, который появляется в правой части проводника, при выборе элемента в treeview. ActiveBar позволяет это делать. см. Data Dynamics только я использую старую версию 1.0.6, со второй были какие-то проблемы (может уже исправили), щас не помню. Если его (toolbar) таскать, то срабатывает событие resize объекта который его содержит, с правильными значениями newwidth, newheight Пожалуйста, поделитесь опытом использования ActiveBar. Хорошо бы несколько кусочков кода и исходники userobject-а. У него есть две версии - 200$ и 1400$. Не могу понять чем отличаются. И вообще обязательно ли его покупать? Или есть бесплатный аналог? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2005, 12:39 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=32893365&tid=1338558]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 276ms |
| total: | 429ms |

| 0 / 0 |
