Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ_ЗАД_ООПТС_15_06_2012.doc
Скачиваний:
7
Добавлен:
24.09.2019
Размер:
193.54 Кб
Скачать

6. Создание меню. Компоненты MainMenu и PopupMenu

Создать главное меню, имеющее упрощенную структуру меню Windows: File, Edit, Run. В качестве реакции на выбор пункта меню выдавать сообщения о выборе соответ­ствующего пункта.

Решение

  1. Создадим новую папку, например D:\MyProject\MAINMENU.

  2. Откроем новый проект.

  3. Из страницы Standard поместим на Form1 компонент MainMenu1.

  1. В Инспекторе Объектов выберем свойство Items компонента MainMenu1, а затем щелкнем по кнопке с тремя точками. После этого на экране появится окно конст­руктора меню.

  2. С помощью конструктора меню наберем элементы меню, указанные в условии примера.

Напомним, что подчеркнутая буква в имени пункта означает клавишу быстрого пе­рехода. С помощью этой клавиши можно осуществить быстрый переход на дан­ный элемент меню. Задать клавишу быстрого перехода можно с помощью симво­ла &, помещаемого перед соответствующим символом текста. Например: &File, Cu&t.

Обратите внимание, что, вводя название элемента меню, вы задаете значение свойства Caption для этого элемента меню. Для того чтобы ввести код клавиши быстрого управления, например Ctrl+S для пункта Save, необ­ходимо для соответствующего элемента меню выбрать свойство ShortCut в Инс­пекторе Объектов и в выпадающем списке выбрать нужное значение. Для того чтобы элемент меню представлял собой разделительную линию, следует его свой­ству Caption задать значение ‘-‘. Для создания подменю, например для пункта Reopen, следует выбрать нужный элемент меню и щелкнуть правой кнопкой мыши. В появившемся контекстном меню конструктора выберите пункт Create Submenu. Далее введите пункты подменю.

6. Если вы ввели все пункты меню, то закройте окно конструктора меню. На форме Form1 осталось созданное меню. Для определения реакции на выбор пунктов меню следует по очереди выбирать все пункты меню и щелкать по ним мышкой. В ре­зультате появится окно Редактора Кода, в котором нужно ввести программный код для обработчика события OnClick. Например, для элемента меню New обработчик события OnClick будет иметь вид:

procedure TForm1.New1Click(Sender: TObject);

begin

ShowMessage(‘Выбран пункт New’);

end;

Здесь ShowMessage - это стандартная функция, выводящая на экран окно с задан­ным сообщением.

7. Сохраните проект и запустите его на выполнение.

Приведем полный текст сформированного модуля.

Текст модуля Unit1.pas

unit Unit1;

Interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus;

type

TForm1 = class(TForm)

MainMenu1 : TMainMenu;

File1 : TMenuItem;

New1 : TMenuItem;

Open1 : TMenuItem;

Save1 : TMenuItem;

Close1 : TMenuItem;

N1 : TMenuItem;

Reopen1 : TMenuItem;

Project11 : TMenuItem;

Project21 : TMenuItem;

Project31 : TMenuItem;

Edit1 : TMenuItem;

Cut1 : TMenuItem;

Copy1 : TMenuItem;

Past1 : TMenuItem;

Delete1 : TMenuItem;

Run1 : TMenuItem;

Run2 : TMenuItem;

N2 : TMenuItem;

StepOver1 : TMenuItem;

TraceInto1: TMenuItem;

procedure New1Click( Sender : TObject);

procedure Open1Click(Sender : TObject);

procedure Save1Click(Sender : TObject);

procedure Close1Click(Sender : TObject);

procedure Project11Click(Sender : TObject);

procedure Project21Click(Sender : TObject);

procedure Project31Click(Sender : TObject);

procedure Cut1Click( Sender : TObject);

procedure Copy1Click(Sender : TObject);

procedure Past1Click(Sender : TObject);

procedure Delete1Click(Sender : TObject);

procedure Run2Click(Sender : TObject);

procedure StepOver1Click(Sender : TObject);

procedure TraceInto1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.New1Click(Sender: TObject);

begin

ShowMessage(‘Выбран пункт New’);

end;

procedure TForm1.Open1Click(Sender: TObject);

begin

ShowMessage(‘Выбран пункт Open’);

end;

procedure TForm1.Save1Click(Sender: TObject);

begin

ShowMessage(‘Выбран пункт Save’);

end;

procedure TForm1.Close1Click(Sender: TObject);

begin

ShowMessage(‘Выбран пункт Close’);

end;

procedure TForm1.Project11Click(Sender: TObject);

begin

ShowMessage(‘Выбран пункт Project1’);

end;

procedure TForm1.Project21Click(Sender: TObject);

begin

ShowMessage(‘Выбран пункт Project2’);

end;

procedure TForm1.Project31Click(Sender: TObject);

begin

ShowMessage(‘Выбран пункт Project3’);

end;

procedure TForm1.Cut1Click(Sender: TObject);

begin

ShowMessage(‘Выбран пункт Cut’);

end;

procedure TForm1.Copy1Click(Sender: TObject);

begin

ShowMessage(‘Выбран пункт Copy’);

end;

procedure TForm1.Past1Click(Sender: TObject);

begin

ShowMessage(‘Выбран пункт Past’);

end;

procedure TForm1.Delete1Click(Sender: TObject);

begin

ShowMessage(‘Выбран пункт Delete’);

end;

procedure TForm1.Run2Click(Sender: TObject);

begin

ShowMessage(‘Выбран пункт Run’);

end;

procedure TForm1.StepOver1Click(Sender: TObject);

begin

ShowMessage(‘Выбран пункт Step Over’);

end;

procedure TForm1.TraceInto1Click(Sender: TObject);

begin

ShowMessage(‘Выбран пункт Trace Into’);

end;

end.

Пример 6.2

Создадим контекстное меню PopupMenu для проекта из примера 6.1.

Решение

  1. Скопируем содержимое папки D:\MyProject\StringGrid в папку D:\MyProject\PopupMenu.

  2. При помощи команды главного меню File|Open откроем Project1 из папки D:\MyProject\PopupMenu.

  3. Со страницы Standard поместим на Form1 компонент PopupMenu1.

  4. Войдем в свойство Items компонента PopupMenu1 и зададим элементы контекстного меню.

5. Не выходя из конструктора меню, двойным щелчком по каждому элементу будем вызывать Редактор Кода. Так, для элемента меню Решение 1 обработчик собы­тия OnClick будет иметь вид:

procedure TForm1.N11Click(Sender: TObject);

begin

Button1Click(Button1);

end;

где Button1Click - процедура, созданная ранее (см. пример 2.9). В качестве пара­метра процедуры можно использовать указатель на любой объект, например ком­понент Button1.

Аналогично из элементов меню Решение 2 и Очистить вызовем процедуры Buton2Click и Button3Click соответственно.

  1. Для того чтобы локальное меню было доступным в любой точке формы Form1, установим ее свойство PopupMenu равным PopupMenu1.

  2. Сохраним проект и запустим его на выполнение. Щелчок правой кнопкой мыши активизирует локальное меню.

Приведем текст модифицированного модуля Unitl.pas

unit Unit1;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]