Работа с меню
Цель работы -
Создать программу, выполняющую следующие действия:
1. После запуска программы в окне изображается строка меню (Файл, Выход).
2. При выборе пункта меню Файл появляются пункты меню (Рисунки, Выход).
3. При выборе пункта меню Рисунки появляется вложенное меню, состоящее из двух пунктов (Облака, Лес).
4. По щелчку правой кнопки мыши появляется контекстное меню.
5. Выбрать по пункту другой рисунок
6. Для выхода из программы необходимо щелкнуть мышью на закрывающей кнопке в строке заголовка.
7. Если выбрать любой из пунктов Выход, работа программы завершается.
Описание плана разработки программы
1. Открыть новый проект.
2. Разместить на форме экземпляры компонентов: панель Panel, рисунок Image, диалоговое окно OpenDialog.
3. Выполнить следующие действия:
Таблица 7.
Выделенный объект | Вкладка окна
Object Inspector |
Имя свойства/
имя события |
Действие |
Form1 | Properties | Caption | Установка имени формы «Мое меню» |
Events | OnMouseDown | var p:TPoint;
begin p.X :=X; p.Y :=Y; p := ClientToScreen (p); PopupMenu1.Popup (p.X, p.Y); end; |
|
Запустить редактор меню (дважды щелкнуть на значке меню на форме) | |||
Form1.MainMenu1 | Properties
(в окне Object Inspector не выбран никакой объект) |
Caption | Ввести текст пункта меню – Файл, и нажать Enter. Система присвоит ему имя N1 |
Между существующими и будущими пунктами меню можно переключаться с помощью щелчка мыши или курсорных клавиш. | |||
Form1.MainMenu1 | Properties | Caption | Ввести текст пункта меню – Выход, и нажать Enter. Система присвоит ему имя N2. |
Events (щелкнуть на пункте Выход в строке меню) | N2Click | Close; | |
Щелкните на пункте Файл. Редактор меню создал еще одну заготовку под этим пунктом. Это заготовка для меню, которое откроется при выборе пункта Файл в работающей программе. Используя заготовки, создайте в этом меню два пункта: Рисунки (система присвоит ему имя N3) и Выход (N4). Выберите в редакторе меню пункт Рисунки и нажмите комбинацию клавиш Ctrl + Вправо. | |||
N4: TMenuItem | Events | OnClick | Выберем из раскрывающегося списка уже существующую процедуру-обработчик N2Click |
Form1.MainMenu1 | Properties | Caption | Ввести текст пункта меню – Облака, и нажать Enter. Система присвоит ему имя N5. |
N5: TMenuItem | Events (выбрать в строке меню на форме пункт Облака) | OnClick | Image1.Picture.LoadFromFile (‘C:\Windows\Облака.bmp’); |
Form1.MainMenu1 | Properties | Caption | Ввести текст пункта меню – Лес, и нажать Enter. Система присвоит ему имя N6. |
N6: TMenuItem | Events (выбрать в строке меню на форме пункт Лес) | OnClick | Image1.Picture.LoadFromFile (‘C:\Windows\Лес.bmp’); |
Закройте окно редактора меню и убедитесь, что теперь строка меню появилась в основной форме программы. |
Продолжение таблицы 7. | |||
Выделенный объект | Вкладка окна
Object Inspector |
Имя свойства/
имя события |
Действие |
PopupMenu (Вкладка Standard) | Properties | Caption | Ввести текст пункта меню – Облака, и нажать Enter. Система присвоит ему имя N7. |
Caption | Ввести текст пункта меню – Лес, и нажать Enter. Система присвоит ему имя N8. | ||
N7 | Events | OnClick | Выберем из раскрывающегося списка уже существующую процедуру-обработчик N5Click |
N8 | Events | OnClick | Выберем из раскрывающегося списка уже существующую процедуру-обработчик N6Click |
Image
(Вкладка Additional) |
Properties | Stretch | Присвоить значение True |
4. Сохраните проект, запустите и протестируйте его.
Листинг подпрограммы
procedure TForm1.N2Click (Sender: TObject);
begin
Close;
end;
procedure TForm1.N5Click (Sender: TObject);
begin
Image1.Picture.LoadFromFile (‘C:\Windows\Облака.bmp’);
end;
procedure TForm1.N6Click (Sender: TObject);
begin
Image1.Picture.LoadFromFile (‘C:\Windows\Лес.bmp’);
end;
procedure TForm1.FormMouseDown
(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X. Y: Integer);
var p:TPoint;
begin
p.X :=X;
p.Y :=Y;
p := ClientToScreen (p);
PopupMenu1.Popup (p.X, p.Y);
end;