Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка по Визуальному програмированию.doc
Скачиваний:
57
Добавлен:
01.05.2015
Размер:
545.79 Кб
Скачать

5 Лабораторная работа. Создание меню. Компоненты Main Menu и Popup Menu

 

Цель работы: ознакомиться с управляющим компонентами  Main Menu и Popup Menu  и научиться использовать указанные компоненты при создании Windows–приложений, приобрести навыки создания панели инструментов и отображения  нескольких интерфейсных элементов и централизованного управления ими, создания строки состояния,  знакомство с TrackBar, ProgressBar.

 

5.1 Компоненты Main Menu и Popup Menu

 

Главным атрибутом интерфейса любого Windows–приложения является меню. Меню представляет собой набор именованных команд и других вложенных меню (подменю), которые сгруппированы в отдельные функциональные категории. В зависимости от уровня охвата функциональности различают главное меню и локальное меню. Большинство приложений имеет главное меню, содержащее перечень допустимых операций. Пункты главного меню называют иначе элементами меню нулевого (верхнего) уровня, так как с каждым из них может быть связано выпадающее подменю, содержащее элементы первого уровня.

Для создания главного меню имеется невизуальный компонент Main Menu, расположенный на странице Standard Палитры Компонентов.

Процесс создания главного меню на этапе проектирования формы осуществляется при помощи встроенного конструктора меню – Menu Designer. Чтобы вызвать конструктор меню, необходимо щелкнуть правой кнопкой мыши по компоненту и выбрать команду Menu Designer, либо воспользоваться свойством Items в Инспекторе объектов.

Main Menu является экземпляром класса ТMainMenu.

Основное свойства компонента:

Items; Содержит элементы нулевого уровня главного меню приложения.

Caption: string;  Содержит текст элемента меню. Если перед символом текста поместить символ &, то таким образом можно задать клавишу быстрого перехода (акселератор).

Если вместо текста заголовка свойству Caption присвоить значение «-», то на месте текущего пункта будет изображена разделительная линия.

Checked:Boolean; Если свойство имеет значение True, то элемент помечается галочкой.

ShortCut: TshortCut; Определяет комбинацию «горячих» клавиш (клавиш быстрого управления).

Bitmap:TBitMap; это свойство для дополнения заголовка пункта меню растровым изображением  с левой стороны. Для этого необходимо открыть редактор свойства Bitmap и загрузить графический файл с расширением  .bmp.

Для создания подменю следует выбрать элемент меню и щелкнуть правой кнопкой мыши и в контекстном меню выбрать пункт Create Submenu  и далее ввести пункты подменю.

Контекстное  меню (или локальное) отображается по щелчку правой кнопки мыши на данном элементе. Для создания контекстного меню используется компонент PopupMenu, расположенный на странице Standard Палитры Компонентов. Имеет свойства, аналогичные  свойствам Main Menu.

 

 

5.2 Задание 1 к лабораторной работе

 

5.2.1 Создать главное меню, меню должно состоять из двух пунктов: обработка массива и сервис (рисунок5.1). Пункт обработка массива состоит из команд: max, min, sum. Пункт сервис состоит из команд: clear  и close. Команда clear содержит подменю: clear stringgrid и clear memo.

В качестве реакции на выбор пункта меню вывести значения максимума, минимума и суммы элементов массива. Значения элементов массива ввести в таблицу StringGrid.

5.2.2 Создать контекстное меню для вывода значений максимума, минимума и суммы элементов массива.

5.2.3 Вывести значения максимума, минимума и суммы элементов массива, используя компонент Button, но в качестве обработчика события использовать процедуру, созданную ранее – реакцию на пункты главного меню.

План разработки программы:

1) Разместить компоненты на дизайнере форм, согласно рисунку 5.1:

MainMenu1 – со страницы Standard;

PopupMenu1 – со страницы Standard;

Memo1- со страницыStandard;

Button1-5 – со страницы Standard; присвоить значения свойству caption, согласно рис 5.1.

StringGrid1 – со страницы Additional; задать значения свойств:

colcount - 5,

rowcount – 5,           

fixed row-0,

fixed col – 0,

options – goEditing – true,

options – goTab – true.

2) Выбрать свойство Items компонента MainMenu1. Щелкнуть на кнопке с тремя точками. Появится окно конструктора меню. Пункты   меню верхнего уровня  формируются по горизонтали. Свойства caption имеют следующие значения caption:=’обработка массива’ и caption:=’сервис’.

3) Набрать пункты меню следующего уровня  в соответствии с рисунком  5.2. Для пункта обработка массива max, min, sum. Для команды max задать клавишу быстрого перехода (акселератор). В этом случае свойство caption имеет значение &max. Для команды min задать «горячую» клавишу: выбрать свойство ShortCut и в выпадающем списке выбрать нужное значение, например, Ctrl+M.

 

 

Рисунок 5.1

 

4) Для пункта меню сервис добавить команды clear и close (рисунок 5.3). Для того чтобы по команде clear открывалось подменю, необоходимо выполнить следующие действия. Выделить команду clear, щелкнуть правой кнопкой мыши и в открывшемся контекстном меню конструктора выбрать команду Create Submenu  и далее ввести пункты подменю: clear stringgrid и  clear memo.

 

 

Рисунок 5.2

 

5) Для определения реакции на выбор пунктов меню выбирается пункт меню и щелкают по нему. В результате появится окно редактора кода, в котором вводится код обработчика события OnClick. Например, для элемента меню  max обработчик события OnClick будет иметь следующий вид:

procedure TForm1.max1Click(Sender: TObject);

var max:integer;    i,j:integer;

begin

 max:=a[1,1];

    for i:=1 to 5 do

      for j:=1 to 5 do

        if a[i,j]>=max then max:=a[i,j];

        memo1.Lines.Add('max value ='+ inttostr(max));

end;

Аналогично  вводятся коды  обработчиков события для остальных команд меню обработка массива – min и sum,  и команды clear stringgrid  из меню сервис.

 

 

Рисунок 5.3

 

6) Активизировать кнопку start, предназначенную для ввода элементов массива из таблицы stringgrid1, написать код обработчика события OnClick:

procedure TForm1.Button4Click(Sender: TObject);

var i,j:integer;

begin

 for i:=1 to 5 do

 for j:=1 to 5 do

    a[i,j]:=strtoint(stringgrid1.Cells[j-1,i-1]);

end;

7) Активизировать кнопку clear memo, предназначенную для очистки memo.

8) Активизировать кнопку Close (button6), предназначенную для закрытия формы.

9) Для команды Close из меню Сервис используется процедура, созданная ранее в пункте 8 – Button6Click. Обработчик события close1Click (команда close  из меню сервис) имеет следующий вид:

procedure TForm1.close1Click(Sender: TObject);

begin;

 button6Click(button6);

end;

Аналогично из  команды clear memo из меню сервис вызывается  процедура, созданная в пункте  7).

10)   Для кнопок max (Button1) и min(Button2)  вызываются соответственно процедуры max1Click(max1) и min1Click(min1);

procedure TForm1.Button1Click(Sender: TObject);

begin;

 max1Click(max1);

еnd;

11) Сохранить проект в папке menu и запустить на выполнение.

12) Создание контекстного меню. В свойстве Items компонента PopupMenu зададим элементы контекстного меню: те же, что и в главном меню: max, min, sum, clear stringgrid, close;

13) Для элемента max контекстного меню реакция на  OnClick будет такой же, как для элемента max  главного  меню. Тогда обработчик события OnClick для элемента max  контекстного меню будет иметь следующий вид:

procedure TForm1.max2Click(Sender: TObject);

begin;

 max1Click(max1);

end;

Аналогично, из  остальных элементов контекстного меню вызываются процедуры главного меню.

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

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