BorlanD Russian Сommunity

На этом уроке научимся менять меню. Как известно, пункты меню могут динамически меняться. Классический пример - это список последних файлов. На этом занятии мы с вами и посмотрим, как это можно делать.

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

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

 

Код:

 

procedure TForm1.Button1Click(Sender: TObject);

//Заводим переменную для нового меню

var NewItem: TMenuItem;

begin

            //Создаем пункт меню

            NewItem:=TMenuItem.Create(self);

            //Приписываем к пункту меню обработчик

            NewItem.Action:=Action1;

            //Задаем заголовок

            NewItem.Caption:='Пункт 3';

            //Добавляем новый пункт меню

            PopupMenu1.Items.Add(NewItem);

end;

 

Код ясен из комментариев. Осталось добавить только элемент ActionList. Он нужен для строки NewItem.Action:=Action1.

Добавьте элемент ActionList, добавьте в него действие. В обработчик для Action1 добавьте следующий код.

 

Код:

 

procedure TForm1.Action1Execute(Sender: TObject);

begin

            ShowMessage('Обработчик для меню');

end;

 

Все, запускайте программу. При нажатии на кнопке в контекстное меню для формулы добавится новый пункт "Пункт 3", при щелчке на котором появится messagebox с соответствующей надписью.

Теперь посмотрим, как добавлять новые пункты меню в главное меню приложения. Здесь возможны два варианта - мы можем добавить его в качестве меню самого верхнего уровня и в качестве нового подменю в уже существующее меню. Рассмотрим сначала первый случай. Возьмите в качестве основы программу, созданную в 14. Добавьте на форму кнопку, а в обработчик щелчка этой кнопки следующий код.

 

Код:

 

procedure TForm1.Button2Click(Sender: TObject);

var NewMainItem: TMenuItem;

begin

            NewMainItem:=TMenuItem.Create(self);

            NewMainItem.Action:=Action1;

            NewMainItem.Caption:='Sub menu 2';

            //Добавляем меню верхнего уровня

            MainMenu1.Items.Add(NewMainItem);

end;

 

При запуске программы и нажатии на вторую кнопку у нашей программы появится новое меню верхнего уровня.

 

Если же нам надо добавить подменю в пункт нашего главного меню, то мы должны написать:

 

            NewMainItem.Caption:='Sub menu 2';

            //Добавляем подменю

            MainMenu1.Items[0].Add(NewMainItem);

 

Здесь нолик в квадратных скобках показывает номер меню, в который мы добавляем наш новый пункт (нумерация идет с нуля).

Тогда при запуске программы и нажатии на вторую кнопку у меню Menu появится новое подменю.

Всё на этом урок закончен.

Просмотров: 4006 | Категория: Delphi 7 | Дата: 11.05.2008