Тема: Создание главного меню
1.
Поместите на форму компонент MainMenu (закладка Standart на Палитре компонентов). Вызовите Дизайнер Меню, дважды щелкнув мышкой по компоненту на форме. Затем создайте меню как показано на рисунке. Для создания подменю можно воспользоваться командой Create SubMenu в контекстном меню, которое вызывается правой кнопкой мыши. После разработки закройте Дизайнер Меню. В верхней части формы теперь можно видеть разработанное меню.
2. При нажатии на отдельный пункт меню должно появляться информационное окно, которое содержит значение соответствующей характеристики формы. Двойной щелчок по пункту меню дает заготовку обработчика. Например, нажатие пункта Ширина можно обработать следующим образом
procedure TForm1.N2Click(Sender: TObject);
var s:string;
begin
s:=format('Width %d', [width]);
ShowMessage(s);
end;
3. Аналогичным образом обработайте остальные пункты меню, создавая информационные окна с соответствующей информацией о форме.
4. Для быстрого вызова команд можно использовать так называемые быстрые клавиши. Для этого для каждого пункта меню установите свойство ShortCut, выбрав значение из списка. При этом нужно следить, чтобы быстрые клавиши не повторялись во избежание коллизий.
5.
Поместите на форму компонент ImageList (закладка Win32 на Палитре компонентов). Дважды щелкнув на компонент, можно вызвать редактор этого компонента. Используйте кнопку Add, чтобы добавить иконки (файлы с расширением ico). Можно использовать любые готовые иконки либо создать их самостоятельно. Для этого нужно вызвать редактор изображений (пункт главного меню Tools/ Image Editor). Далее создайте новое изображение File/ New/ Icon file ( .ico). Нарисуйте икону, используя различные цвета и инструменты на панели. Сохраните иконку в свою директорию. Рекомендуется добавить в ImageList 5-6 различных иконок.
6. Выделите компонент MainMenu1 и установите свойство Images равным ImageList1. После этого для каждого пункта меню установите свойство ImageIndex, выбрав из списка нужную иконку. Меню может выглядеть так.
7. Для каждого из пунктов меню Размеры установите свойство Break равным mbBarBreak. Запустите приложение, проверьте его работу.
8. Часто в окне размещают несколько управляющих компонентов, которые дублируют действия. Например, опции меню могут дублироваться быстрыми кнопками на панели инструментов и обычными кнопками в окне. Кроме того желательно, чтобы компоненты-дублеры имели одинаковые надписи и пиктограммы. Чтобы избежать коллизий при использовании дублирующих друг друга компонентов, необходимо синхронизировать их действия. Для этой цели используют компонент TActionList (закладка Standart). В этом компоненте можно описать действия, которые затем приписываются компонентам. Таким образом, различные компоненты могут выполнять одно и то же действие.
9. Поместите на форму компонент TActionList. По двойному щелчку открывается редактор действий, в котором необходимо создать действия для каждой опции главного меню. Например, для опции главного меню Ширина создайте новое действие (с помощью иконки в верхней части редактора) Затем выделите созданное действие Action1 и в Инспекторе объектов на закладке Propeties задайте свойства Caption, ImageIndex (предварительно необходимо связать компонент TActionList с хранилищем изображений, делается это так же, как для главного меню см. п. 6), ShortCut.
10. На закладке Events Инспектора Объектов выберите событие OnExecute и создайте обработчик этого события. Действия, запрограммированные в этом обработчике, будут выполняться при выборе соответствующей опции меню (ранее этот код помещался в обработчик OnClick пункта меню ).
procedure TForm1.Action1Execute(Sender: TObject);
var s:string;
begin
s:=format('Width %d', [width]);
ShowMessage(s);
end;
11. Теперь перейдите к пункту главного меню Ширина и в Инспекторе объектов на закладке Propeties задайте свойство Action, выбрав из выпадающего списка нужное действие (Action1). Запустите приложение и проверьте его работу.
12. Поместите на форму кнопку (TButton) и в Инспекторе объектов на закладке Propeties задайте свойство Action, выбрав из выпадающего списка нужное действие (Action1). Запустите приложение и проверьте его работу.
13. Поместите на форму быструю кнопку (TSpeedButton, закладка Additional) и в Инспекторе объектов на закладке Propeties задайте свойство Action, выбрав из выпадающего списка нужное действие (Action1). Запустите приложение и проверьте его работу.
14. Создайте действия для всех опций меню и разместите на форме кнопки-дублеры с подходящими действиями.


