Delphi: предлагает идеи в создании пользовательского интерфейса - PullRequest
2 голосов
/ 03 июля 2011

Я создаю пользовательский интерфейс.Моя программа будет состоять из 4 основных частей:

1) Главное меню - TMainMenu.Верхняя часть окна

2) Главное меню - TTreeView.Слева от окна.Каждый элемент TreeView = соответствует TabSheet TPageCotrol.

3) Рабочая область - TPageControl.Нет вкладок.Оставленный пробел.

Каждый TabSheet имеет свою собственную панель инструментов и другие элементы управления.Это будет 5 меню (5 элементов в TreeView) = 5 TabSheets -> 5 панелей инструментов и других элементов управления на каждом TabSheet.

Это почти точно выглядит здесь (это может быть: TreeView как главное меню; MainMenu как сверхуМеню; Рабочая область - Панель инструментов и другие элементы управления): enter image description here

Я хотел бы использовать пользовательский интерфейс, подобный следующему: enter image description here Где CoolBar представлен в верхнем меню и на панели инструментов (подходит для моегоцель использовать 5 панелей инструментов вместо 1 панели инструментов на каждой вкладке).Но после обсуждения здесь кажется невозможным скопировать этот CoolBar с MainMenu и ToolBar.

Мой вопрос: как создать эффективный пользовательский интерфейс, используя в качестве примера пользовательский интерфейс uTorrent и пользовательский интерфейс брандмауэра Windows?

Существуют ли хорошие альтернативы, идеи построения пользовательского интерфейса?Как бы вы сделали свой интерфейс, если вам нужны эти 4 части как я?

Теперь у меня есть что-то вроде этого: enter image description here

Спасибо!

Ответы [ 2 ]

1 голос
/ 03 июля 2011

У вас должно быть 5 панелей в вашей клиентской области.

Когда вы выберете узел в древовидной структуре слева, вам нужно будет позвонить

pnlInboundRules.BringToFront;

Сложнее то, как обновить одну панель инструментов элементами, которые должны появиться на ней, в зависимости от того, какую " вкладку " вы выбрали.

Вам необходимо удалить кнопки панели инструментов и добавить новые кнопки для этой «страницы».

0 голосов
/ 03 июля 2011

Я могу предложить панели, я бы использовал PageControl и установил для его вкладок TabVisible значение false во время выполнения (*). Причина в том, что во время проектирования им намного легче управлять. Когда пользователь выбирает элемент из дерева, активируйте соответствующий TabSheet ...

*) На самом деле я не делал этого со стандартным TPageControl, поэтому я не помню, будет ли он работать таким образом, то есть активировать ли он TabSheet, для которого для TabVisible установлено значение false. Возможно, вам нужно установить TabHeight на 0 или использовать другой прием, чтобы скрыть вкладки во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...