Читайте также:
|
|
end.
Пиктограмма: .
При создании приложения в Delphi, можно использовать меню двух основных видов:
• главное меню ( класс TMainMenu). Такое меню принадлежит форме и отображается на ней в левом верхнем углу. Если в приложении несколько форм, то для удобства можно объединять меню всех активных форм в одном.
• всплывающее (контекстное) меню (класс TPopupMenu). Такое меню предусмотрено почти у всех компонентов — элементов управления Windows. Оно возникает (всплывает) при нажатии правой кнопки мыши на этом компоненте.
Меню являются иерархическими структурами, состоящими из пунктов меню. Каждый пункт может быть выбран (активизирован). Это может произойти вследствие щелчка кнопкой мыши, нажатия соответствующих клавиш на клавиатуре или вызова процедуры в программе.
На нижнем уровне лежат команды меню — пункты, с выбором которых должна быть связана та или иная реакция приложения. Команды объединяются в подменю. Подменю — это пункты, выбор которых означает показ или свертывание списка входящих в него команд и подменю.
С активизацией элементов меню связано событие onClick. Код, расположенный в обработчике этого события, будет выполняться, когда пользователь выбирает элемент меню. Элемент можно активизировать и при помощи клавиатуры. В этом случае доступ к пунктам главного меню осуществляется с помощью клавиши F10 (стандартная клавиша Windows). При создании меню можно организовать доступ к элементам меню с помощью комбинации клавиш Alt + клавиша активизации.
Принципы создания и работы с меню в Delphi очень просты. Каждому пункту меню соответствует свой компонент класса TMenuItem. Этот класс предназначен для добавления пунктов меню. Добавлять к меню новые пункты (а к форме — новые компоненты) можно либо во время разработки (при помощи Конструктора меню), либо во время выполнения. Компонент TMenuItem в палитру компонентов не входит. Этот компонент является основой системы меню в Delphi, он входит в состав имеющихся компонентов TMainMenu и TPopupMenu.
5.13.1. Свойства компонента M ainMenu.
Caption - текст, содержащийся в пункте меню.
Правило. Если в строке имеется символ амперсант ("&"), то он вместе со следующим за ним символом является акселератором, то есть этот пункт меню можно активизировать комбинацией клавиш Alt + символ, расположенный после символа ("&").
Например, для строки '&File' нажатие <Alt> + <F> означает выбор этого пункта.
Правило. Если текст состоит из одного символа "-", то этот пункт служит разделителем – в списке пунктов меню на этом месте будет горизонтальная черта.
Enabled - если Enabled равно False, пункт изображается серым цветом и не воспринимает сообщений.
Checked - признак пометки. Часто пункты меню используются для переключения каких-либо режимов работы программы. При этом они могут быть отмечены "галочкой" перед началом текста (для пометки пункта меню это свойство должно иметь значение True.).
Break – переход к новому расположению. Это свойство может иметь одно из следующих значений: mbNone, mbBreak, mbBarBreak. Если оно установлено в mbBreak, то команды меню, начиная с текущей, располагаются в новом соседнем с прежним столбце (при этом их принадлежность не изменяется). Если оно равно mbBarBreak, столбцы при этом разделяются вертикальной чертой.
В Delphi все компоненты меню типа TMenuItem могут быть как простыми командами, так и подменю, имеющими собственный список пунктов.
Замечание. Особенность Компонента TMainMenu в том, что в нем реализован сложный механизм объединения меню. Это необходимо по следующим причинам:
• Если в приложении имеется несколько форм со своими меню, то для упрощения работы целесообразно соединить их в одно и управлять меню из главной формы.
• Объединение меню нужно при работе с интерфейсом MDI и его подокнами.
• Механизм объединения меню используется серверами OLE, запускаемыми по месту нахождения объекта OLE. Загружаясь, сервер дописывает осуществляемые им операции к меню другого приложения.
Для того чтобы реализовать объединение меню, у тех форм, меню которых будут присоединены к главному, надо установить в True свойство AutoMerge: Boolean.
При этом у главного меню оно должно оставаться равным False, иначе главное меню будет вообще невидимым. Объединение будет происходить автоматически при активизации новых форм или серверов OLE. Кроме автоматического режима, объединение меню можно выполнить при вызове метода: procedure Merge(Menu: TMainMenu);
Дата добавления: 2014-12-18; просмотров: 123 | Поможем написать вашу работу | Нарушение авторских прав |