Меню

 

В Delphi имеется два компонента, представляющие меню: MainMenu – главное меню, и PopupMenu – всплывающее меню. Оба компонента расположены на странице Standard.

 

Меню являются иерархическими структурами, состоящими из пунктов. Каждый пункт может быть выбран щелчком кнопки мыши или из метода приложения. Пункт меню может быть в виде подменю или команды. Подменю – это пункт, выбор которого вызывает показ списка входящих в него подменю или команд. На нижнем уровне меню находятся команды – пункты, выбор которых вызывает реакцию приложения, т.е. производится вызов метода для выполнения команды.

 

Добавить к меню новые пункты можно во время разработки или во время выполнения приложения.

При выборе пункта меню инициируется событие OnClick, в обработчике которого и предусматриваются требуемые действия.

 

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

 

Обычно на форму помещается один компонент MainMenu. В этом случае его имя автоматически заносится в свойство формы Menu. Но можно поместить на форму и несколько компонентов MainMenu с разными наборами разделов, соответствующими различным режимам работы приложения. В этом случае во время проектирования свойству Menu формы присваивается ссылка на один из этих компонентов. А в процессе выполнения в нужные моменты это свойство можно изменять, меняя соответственно состав главного меню приложения.

 

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

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

 

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

 

Одно и тоже контекстное меню могут разделять (использовать) несколько компонентов.