Главное меню располагается в верхней части формы под ее заголовком (рис. 7.1) и содержит наиболее общие команды приложения. В Delphi главное меню представлено компонентом MainMenu.
По внешнему виду главное меню представляет собой строку, и его также называют строчным. Если пункты меню не умещаются на форме в одну строку, то они автоматически переносятся на следующую строку (рис. 7.2). При изменении размеров формы соответствующим образом меняются размеры и размещение пунктов строчного меню. Отметим, что уменьшение ширины формы ограничено размером самого длинного заголовка, имеющегося в меню. При проектировании приложения на форме видны компонент MainMenu и соответствующая ему строка меню. Отображаемая строка меню выглядит и ведет себя так же, как и при выполнении программы. Для перехода на этапе проектирования приложения в процедуру обработки события Onclick пункта меню следует выбрать этот пункт с помощью клавиатуры или мыши.
Контекстное (всплывающее) меню появляется при нажатии правой кнопки мыши и размещении указателя на форме или в области некоторого управляющего элемента. Обычно контекстное меню содержит команды, влияющие только на тот объект, для которого вызвано это меню, поэтому такое меню также называют локальным. На рис. 7.3 показан примерный вид контекстного меню.
Контекстное меню в Delphi представляется компонентом PopupMenu. Его основными свойствами являются следующие:
AutoPopup типа Boolean — определяет, появляется ли контекстное меню при щелчке правой кнопки мыши и размещении указателя на компоненте, использующем это меню. Если свойство AutoPopup имеет значение True (по умолчанию), то контекстное меню при щелчке мыши появляется автоматически. Если свойство AutoPopup имеет значение False, то появления меню не происходит. Однако в этом случае можно активизировать меню программно, используя метод Popup. Процедура Popup (х, y: integer), где х и y — координаты меню относительно левого верхнего угла экрана монитора, выводит на экран указанное контекстное меню, например,
PopupMenul.Popup(200,200);
Alignment типа TPopupAlignment — определяет место появления контекстного меню по отношению к указателю мыши. Свойство Alignment может принимать следующие значения:
• paLeft — указатель определяет левый верхний край меню (по умолчанию);
• pacenter — указатель определяет для меню центр по горизонтали;
• paRight — указатель определяет правый верхний край меню.
Для того чтобы контекстное меню появлялось при щелчке на компоненте, необходимо его свойству Рорирmenu присвоить в качестве значения имя требуемого контекстного меню.
Пример. Задание контекстного меню для формы.
Forml.PopupMenu := PopupMenul;
Данный оператор задает для формы Forml контекстное меню PopupMenul.