
- •Введение
- •Элементы пользовательского интерфейса
- •Компоненты TMainMenu и TPopUpMenu
- •Главное меню
- •Дизайнер меню
- •Пункты Меню
- •Разделительные линии
- •Комбинации клавиш
- •Обработка команд меню
- •Пункты-переключатели
- •Взаимоисключающие переключатели
- •Недоступные пункты меню
- •Контекстное меню
- •Значки в пунктах меню.
- •Компонент TImageList
- •Строка состояния
- •Создание строки состояния
- •Подсказки в строке состояния. Всплывающие подсказки.
- •Стандартные окна диалогов
- •Компоненты TOpenDialog и TSaveDialog
- •Задания к лабораторной работе
- •Вопросы к лабораторной работе
- •Справочные таблицы
- •Приложение А

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
begin mitSheme2.Checked:=True;
Memo.Color:=clBlue;//цвет фона Memo.Font.Color:=clYellow;//цвет текста
end;
Выполните компиляцию и запустите программу. Проверьте, что новые пункты меню работают как взаимоисключающие переключатели и происходит изменение цвета фона и текста компонента Memo.
Недоступные пункты меню
Некоторые пункты меню могут быть недоступны пользователю в тот или иной момент времени. Такие пункты выглядят блеклыми, а попытки их выбрать ни к чему не приводят. Для примера сделаем недоступным пункт меню «Сохранить» и «Сохранить как…»
В компонентах mitSave и mitSaveAs установите свойство Enabled в значение False (рисунок 19).
Рисунок 19 – Недоступные пункты меню
Обычно доступность пунктов меню изменяется во время работы приложения и зависит от его логики.
Контекстное меню
Контекстное (вспомогательное) меню представлено в среде Delphi компонентом
TPopupMenu (рисунок 20).
Найдите TPopupMenu в палитре компонентов на вкладке Standard и поместите его на форму. Дайте новому компоненту имя PopupMenu.
Рисунок 20 – Компонент TPopupMenu
Компонент TPopupMenu имеет те же свойства и события, что и компонент TMainMenu (Таблица 1), а также несколько дополнительных, которые приведены в таблице 4.

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Таблица 4 – Некоторые свойства и события компонента TPopupMenu
Свойство
Alignment
AutoPopup
MenuAnimation
TrackButton
OnPopup
Контекстное меню наполняется пунктами, как и главное меню, в дизайнере меню.
Двойным щелчком мыши на компоненте PopupMenu откройте окно дизайнера меню и, используя уже известные вам приемы, добавьте в меню пункты «Схема 1» (mipSheme1), «Схема 2» (mipSheme2). Во всех пунктах контекстного меню установите следующие свойства: ( Enabled = False; GroupIndex = 1; RadioItem = True).
Кроме этого пометьте пункт «Схема 1», установив в нем свойство Checked в значение True. Таким образом, команды всплывающего меню дублируют некоторые команды главного меню, обеспечивая пользователю дополнительные удобства (рисунок 21).

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Рисунок 21 – Контекстное меню
Проектирование меню завершено, осталось только создать обработчики событий для пунктов меню. Так как команды контекстного меню обрабатываются так же, как и команды одноименных пунктов главного меню, то поскольку для пунктов главного меню обработчики уже написаны, то их просто нужно связать с пунктами контекстного меню, как было показано выше.
Для синхронной работы главного и контекстного меню измените обработчики mitSheme1Click, mitSheme2Click как показано ниже.
Листинг 4
procedure TfrmEditor.mitSheme1Click(Sender: TObject); begin
mitSheme1.Checked:=True;
mipSheme1.Checked:=True; Memo.Color:=clWhite; //цвет фона Memo.Font.Color:=clBlack; //цвет текста
end;
procedure TfrmEditor.mitSheme2Click(Sender: TObject); begin
mitSheme2.Checked:=True;
mipSheme2.Checked:=True; Memo.Color:=clBlue;//цвет фона Memo.Font.Color:=clYellow;//цвет текста
end;
Контекстное меню готово, осталось сделать так, чтобы оно вызывалось по щелчку правой кнопки мыши на компоненте Memo.
Активизируйте компонент Memo и запишите в значении свойства PopupMenu имя разработанного ранее контекстного меню – PopupMenu. Вы можете ввести это значение с клавиатуры или выбрать из раскрывающегося списка (рисунок 22).