Задавать определенные действия, выполняемые при выборе команд меню во время работы приложения можно двумя способами:
- задать обработчик события OnClick элемента меню;
- задать элементу меню соответствующее значение свойства Action.
Задать обработчик события OnClick какой-либо команды меню можно, выполнив двойной щелчок на команде в редакторе меню или выбрав эту команду в меню формы во время разработки приложения. При этом Delphi автоматически активизирует окно редактора кода и генерирует заголовок процедуры-обработчика события OnClick:
Для программирования реакции на выбор команды меню надо набрать соответствующий код в теле процедуры-обработчика. Например, для вызова стандартного окна диалога открытия файла при выборе команды меню FileOpen надо ввести следующий код:
procedure TForm1.Open1Click(Sender: TObject);
end;
Естественно, предварительно надо поместить на форму компонент OpenDialog1.
В частности, если на форме приложения есть компонент Memo1, то для загрузки в его окно содержимого какого-то файла по команде главного меню приложения FileOpen следует в тело процедуры-обработчика события OnClick ввести код:
procedure TForm1.Open1Click(Sender: TObject);
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
При другом способе задания реакции на выбор команды меню (с помощью свойства Action) необходимо использовать компонент ActionList, расположенный в палитре компонентов на вкладке Standart. Этот компонент представляет собой хранилище функций, являющихся реакциями на определенные действия. Для задания реакции следует воспользоваться редактором действий, который открывается двойным щелчком мыши на компоненте ActionList, помещенном на форму.
В Delphi имеется возможность связать практически любой визуальный компонент с контекстным меню. Для этого используют свойство PopupMenu элемента и специальный компонент PopupMenu вкладки панели компонентов Standart. Технология реализации контекстного меню практически не отличается от создания обычного меню. Чтобы контекстное меню отображалосьпри щелчке правой кнопки мыши на компоненте, надо его свойству PopupMenuв Инспекторе объектов присвоить в качестве значения имя требуемого контекстного меню. (Иначе: включить оператор присваивания в тело соответствующей процедуры-обработчика.)