скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Компоненты – меню



Разработка меню.

MainMenu – главное меню. PopupMenu – всплывающее меню. Это невизуальные компоненты

MainMenu – главное меню.

Основное свойство компонента – Items. Его заполнение производится с помощью Конструктора меню, вызываемого двойным щелчком на компоненте MainMenu.

Каждый элемент свойства Items является объектом типа TMenuItem, обладающим своими свойствами, методами, событиями:

Caption – надпись раздела, если в качестве Caption вставить символ «-», то в меню появится разделитель (-----------).

Name – имя объекта, соответствующего разделу меню (вместо N6 лучше задавать осмысленные имена: Mfile, Mopen, Msave и т.п.

ShotCut – определяет клавиши быстрого доступа к разделу меню

Default – определяет, является ли данный раздел разделом по умолчанию своего подменю, т.е.разделом, выполняемым при двойном щелчке пользователя на родительском разделе; подменю может содержать только один раздел по умолчанию, выделяемый жирным шрифтом.

Checked – установленное в true указывает, что в разделе меню будет отображаться маркер флажка, показывающий, что данный раздел выбран.

RadioItem – при установки в true определяет, что данный раздел должен работать в режиме радиокнопки совместно с другими разделами, имеющими то же значение свойства GroupIndex. По умолчанию значение GroupIndex равно 0, но его можно задать большим нуля. Если для разделов, имеющих одинаковое значение GroupIndex, для одного из разделов установить Checked в true, то в остальных разделах Checked автоматически сбросится в false.

Для каждого раздела могут быть установлены во время проектировани или программно во время выполнения свойства Enabled (доступен) и Visible (видимый). Если Enabled=false раздел будет отображаться серой надписью. Эти свойства используются для изменения состава доступных пользователю разделов в зависимости от работы приложения.

Главные меню вторичных форм могут объединяться с меню главной формы, если в приложениях с несколькими формами и главная и вспомогательная формы имеют свои главные меню.

MDI приложениях меню дочерних форм всегда объединяются с меню родителькой формы.)

Наличие или отсутствие объединения определяется свойством AutoMerge компонентов TmainMenu. Для главной формы AutoMerge должно оставаться false, а в каждой вторичной форме – true.

Способ объединения меню определяется свойством разделов GroupIndex. Разделам надо задать неубывающие номера свойств GroupIndex. Тогда, если разделы встраиваемого меню имеют теже значения GroupIndex, что и какие-то разделы меню основной формы, то эти разделы заменяют соответствующие разделы основного меню. В противном случае разделы вспомогательного меню встраиваются между элементами основного меню.

Например:

Тогда в момент, когда активизируется вторая форма, в первой появляется меню со структурой:

PopupMenu – всплывающее меню

Контекстное меню привязано к конкретным компонентам. Оно всплывает, если во время, когда данный компонент в фокусе, пользователь щелкнет прваой кнопкой мыши. Обычно в контекстное меню включают те команды главного меню, которые в первую очередь могут понадобится при работе с данным компонентом. В приложении могут быть несколько контекстных меню. Оконные компоненты: панели, окна редактирования и т.п. имеют свойство PopupMenu, с которым будет связан данный компонент.

Формирование контестного меню, так же как и главного производится с помощью конструктора. Можно копировать разделы из главного меню. Для этого в режиме конструктора PopupMenu нужно в контекстном меню выбрать команду Select Menu, перейдя в главное менюможно выделить нужный раздел, выполнить их копирование в буфер обмена (Ctrl-C), через команду Select Menu вернуться в контекстное меню, указать место для вставки и вставить (Ctrl-V). Контекстные меню разных форм не объединяются.






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook