Лабораторная работа №2. Работа с меню в Delphi Цель работы: Основные понятия:

advertisement
Лабораторная работа №2. Работа с меню в Delphi
Цель работы: Познакомиться с возможностями Delphi по созданию меню приложения.
Основные понятия:
Практически все Windows-приложения имеют меню. Меню представляет
собой список объединённых по функциональному признаку пунктов, каждый
из которых обозначает команду или вложенное меню (подменю). Выбор
пункта меню равносильно выполнению соответствующей команды или раскрытию подменю.
Обычно в приложении имеется главное меню и несколько контекстных
(всплывающих или локальных) меню. Главное меню предназначено для
управления работой всего приложения, каждое из контекстных меню служит
для управления отдельным интерфейсным элементом.
Пункт меню или подменю представляет собой объект типа TMenuItem. Отдельный пункт меню (подменю) обычно виден как текстовый заголовок, описывающий назначение пункта меню. Класс TMenuItem служит для представления пунктов главного и контекстных меню. Основные свойства пункта меню:
 Bitmap – значок, размещаемый слева от заголовка пункта меню. По
умолчанию свойство имеет значение Nil, т. е. значок отсутствует;
 Break – признак разделения меню на столбцы. Свойство Break может
принимать одно из трех значений:
° mbNone (по умолчанию) – не разделяется;
° mbBreak – пункты меню, начиная с текущего, образуют новый
столбец;
° mbBreakBar – пункты меню, начиная с текущего, образуют новый
столбец, отделённый линией;
 Caption – заголовок пункта меню;
 Count – количество подпунктов в данном пункте меню;
 Enabled – логическое свойство, определяющее активность пункта
меню (False – пункт меню не активен, True – пункт меню активен);
 Items – массив подпунктов
текущего пункта меню;
 ShortCut – комбинация
Главное меню
клавиш для активизации
пункта меню.
Основным событием, связанным с пунктом меню, является событие OnClick, возникающее при
выборе пункта с помощью клавиатуры или мыши.
Контекстное меню
Главное меню располагается в
верхней части формы под её загоРисунок 1 – Меню формы
Высокоуровневые методы информатики и программирования
ловком и содержит наиболее общие команды приложения. По внешнему виду главное меню представляет собой строку (см. рис. 1).
В Delphi главное меню представлено компонентом класса TMainMenu.
На форму можно поместить сколько угодно объектов этого класса, но отображаться будет только одно (указанное в свойстве Menu формы).
Контекстное (всплывающее) меню появляется при размещении указателя в форме или в области некоторого элемента управления и нажатии правой кнопки мыши. Контекстное меню содержит команды, влияющие только
на тот объект, для которого вызвано это меню.
Контекстное меню в Delphi представлено компонентом класса
TPopupMenu. Его основные свойства:
 AutoPopup – логическое свойство, определяющее, появляется ли
контекстное меню при щелчке правой кнопки мыши и размещении
указателя на компоненте, использующем это меню;
 Alignment – определяет место появления контекстного меню по отношению к указателю мыши. Свойство Alignment может принимать
значения:
° paLeft (по умолчанию) – положение указателя определяет положение левого верхнего угла меню;
° paCenter – положение указателя определяет положение центра меню по горизонтали;
° paRight – положение указателя определяет положение правого
верхнего угла меню.
Для того чтобы контекстное меню появлялось при щелчке на компоненте, необходимо его свойству PopupMenu присвоить в качестве значения имя требуемого
контекстного меню (см. рис. 2).
Компоненты MainMenu и PopupMenu размещаются на странице Standard Палитры
компонентов. Меню (как подменю главного
меню) или контекстного меню можно создавать
и изменять как при разработке приложения, так
и динамически – непосредственно в ходе выполнения приложения.
Для создания и изменения меню в процессе
разработки приложения в среде Delphi предназначен Конструктор меню (Menu Designer). Запуск Конструктора меню выполняется с помо- Рисунок 2 – Организация связи
щью соответствующей команды контекстного
между контекстным меню и
меню компонента MainMenu или PopupMenu,
объектом
либо с помощью двойного щелчка мыши на компонент (см. рис. 3). Предварительно компонент следует добавить на форму.
Конструктор меню похож на текстовый редактор и предоставляет возможность конструировать меню любого типа. Меню при конструировании
2
Высокоуровневые методы информатики и программирования
имеет тот же вид, что и при выполнении приложения. При работе с Конструктором меню можно использовать команды его контекстного меню, а
также перетаскивать мышью (drag-and-drop) пункты меню и подменю.
Рисунок 3 – Конструктор меню
Создание и настройка меню с помощью Конструктора меню выполняются при создании приложения. Кроме того, меню можно создавать или изменять динамически при выполнении приложения. Например, возможно:
 создать новое меню любого типа или удалить его;
 заблокировать или разблокировать отдельные пункты;
 сделать пункт меню видимым или невидимым;
 добавить или удалить пункт меню;
 изменить название пункта и др.
Эти возможности обеспечиваются установкой свойствам пунктов меню
требуемых значений и вызовом соответствующих методов.
Порядок выполнения работы
1. Запустите Delphi. Создайте новый проект.
2. Назовите форму MainForm (свойство Name) с заголовком Главная
(свойство Caption).
3. Сохраните проект в папку
D:\Users\...\Lab2\.... Форму сохраните под именем MainUnit, а
проект под именем MyMenu.
4. Создайте вторую форму (команда
File / New / Form – Delphi). Назовите форму NewForm с заголовком Новая. Сохраните её под
именем NewUnit.
5. На форме Новая создайте кноп3
Высокоуровневые методы информатики и программирования
ку с заголовком Закрыть. Сделайте, чтобы при нажатии на неё окно
закрывалось.
6. Создайте третью форму. Назовите форму AboutForm с заголовком О
программе. Измените её цвет и размер. Сохраните форму под именем AboutUnit.
7. На форме О программе:
 создайте надписи: своё Ф.И.О., группу, № лабораторной работы, год;
 измените размер и цвет надписей;
 создайте кнопку с заголовком Закрыть. Сделайте, чтобы при
нажатии на неё окно закрывалось;
 создайте контекстное меню (компонент TPopupMenu на странице
Standard Палитры компонентов).
8. Сделаем, чтобы с помощью контекстного меню можно было менять
размер кнопки (свойства Height (высота) и Width (ширина)):
 создайте в меню два пункта: Крупная и Мелкая;
 в процедуру обработки для пункта Крупная введите код:
Button1.Height := 80;
Button1.Width := 150;

в процедуру обработки для пункта Мелкая введите код:
Button1.Height := 30;
Button1.Width := 80;
у кнопки в свойстве PopupMenu укажите имя созданного контекстного меню.
9. На форме Главная создайте главное меню:
 в главном меню создайте пункты Окно, О программе и Закрыть;
 в меню Окно создайте пункты Новое, - , Цвет;
 для пункта Цвет создайте подменю с командами Желтый, Красный, Синий и Зеленый;
 меню Окно, О программе и Выход сделайте со значком. Для создания значков используйте Paint. Размер рисунков должен быть
16х16 пикселей. Сохраните их в папку с проектом.
10. Сделайте так, что бы при выборе меню Выход окно закрывалось.
11. Задайте для меню комбинацию клавиш:
 для пункта Новое – Ctrl+N;
 для пункта О программе – Ctrl+O;
 для пункта Закрыть – Ctrl+E.
12. Сделаем, чтобы при выборе пункта Новое меню Окно появлялась
форма Новая, для этого в его процедуру обработки введите код:

NewForm.Show;
4
Высокоуровневые методы информатики и программирования
13. Сделайте, чтобы при выборе меню О программе открывалось соответствующее окно.
14. Сделайте, чтобы при выборе цвета из меню Окно/ Цвет/… форма
Новая принимала соответствующий цвет. Для этого свойству, отвечающему за цвет, необходимо присвоить соответствующую цветовую константу: clYellow, clRed, clBlue и clGreen.
15. На форме Главная создайте две кнопки: первая с заголовком Запретить изменение цвета, вторую – Разрешить изменение цвета.
16. Сделаем, чтобы при нажатии кнопки Запретить изменение цвета
пункт Цвет меню Окно делался неактивным. Для этого в процедуру
обработки для кнопки введете код:
N6.Enabled := False;
17. Запрограммируйте кнопку Разрешить изменение цвета, чтобы при
её нажатии пункт Цвет меню Окно делался активным.
18. На форме Новая для кнопки Закрыть создайте контекстное меню, с
помощью которого можно было бы менять заголовок кнопки с русского на английский язык и обратно.
19. Сохраните и запустите проект на выполнение.
20. Закройте Delphi.
5
Download