- •1. Форма
- •1.1. Создание, состав и показ формы
- •1.2. Основные характеристики формы
- •1.3. Особенности модальных форм
- •1.4. Шаблоны форм
- •1. Меню
- •1.1. Компоненты главного и всплывающего меню
- •1.2. TMenuItem - компонент пункта меню. Подменю, команда
- •1.3. Создание меню с помощью конструктора
- •1.4. Управление меню во время выполнения приложения
1.1. Компоненты главного и всплывающего меню
Компонент MainMenu представляет главное меню формы. В нем есть механизм объединения меню активных форм приложения. Если в приложении есть несколько форм со своими меню, то для упрощения работы целесообразно объединять их в одно и управлять им из главной формы. Объединение меню необходимо при работе с интерфейсом MDI и его подокнами. Для того чтобы объединить меню, у тех форм, меню которых будут присоединены к главному, надо установить значение True для свойства автоматического объединения меню:
property AutoMerge: Boolean;
Компонент PopupMenu описывает всплывающее (контекстное) меню. В отличие от главного, всплывающее меню может быть у самой формы и у каждого визуального компонента на форме.
Всплывающее меню появляется от нажатия правой кнопки мыши на компоненте, к которому присоединено всплывающее меню. Для этого надо установить в свойство PopupMenu имя всплывающего меню из выпадающего списка свойства. Одно и то же всплывающее меню могут разделять (использовать) несколько компонентов.
1.2. TMenuItem - компонент пункта меню. Подменю, команда
Компонент TMenuItem является основой системы меню в Delphi. Его нет в Палитре компонентов: он входит в состав компонентов типа TMainMenu и TPopupMenu. Рассмотрим основные свойства этого компонента.
Текст наименования пункта меню определяется свойством:
property Caption: string;
Если текст пункта состоит из одного символа '-', то этот пункт служит в меню разделителем с помощью горизонтальной черты двух соседних пунктов подменю. Свойство Caption может содержать акселератор и горячие клавиши пункта.
Акселератор - это символ '&' со следующим за ним символом. Акселератор позволяет выбрать пункт меню нажатием клавиши Alt+символ, перед которым стоит '&'. Например, для строки «&File» нажатие клавиш Alt+F означает выбор этого пункта меню. При показе меню символ, перед которым стоит '&', подчеркивается; например: «File».
Горячие клавиши для выбора пункта меню определяются свойством: property Shortcut: TShortCut;
Значения горячих клавиш можно выбрать из выпадающего списка или написать в окне ввода значений Shortcut.
Пункт меню можно выбрать с помощью: щелчка мышью на имени пункта, нажатием Enter на сфокусированном (подсвеченном) пункте, нажатием акселератора (Alt+символ), горячих клавиш или вызовом метода пункта.
Любой из этих способов вызывает событие:
property OnClick: TNotifyEvent;
С этим событием должно быть связано действие, определенное пунктом меню. Воспринимают это событие только пункты меню, которые в данный момент активны, т. е. те, у которых установлено в True свойство:
property Enabled: Boolean;
Если Enabled = False, пункт изображается серым цветом и не может быть выбран.
Часто пункты меню используются для переключения режимов работы программы. Они могут быть отмечены «галочкой» перед именем пункта. Является ли пункт меню отмеченным, определяет свойство:
property Checked: Boolean;
Если в меню много команд, расположение их в одной строке или в одном столбце неудобно для чтения. Для размещения пунктов меню в несколько столбцов используется свойство:
property Break: TMenuBreak;
TWenuBreak = (mbNone, mbBreak, mbBarBreak);
где: mbNone - пункты размещены в одну строку или в один столбик;
bBreak - команды меню, начиная с этой, располагаются в новой строке или новом столбце, рядом с прежним;
mbBarBreak - столбцы с пунктами меню разделяются вертикальной чертой.
В Delphi компоненты меню могут быть командами или подменю, имеющими собственный список пунктов. Если пункт меню находится в фокусе, нажатие F1 вызовет систему помощи с контекстом, определенным в свойстве:
property HelpContext: THelpContext;