Добавил:
ikot.chulakov@gmail.com Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы по Delphi с готовыми программами / Лабораторная работа №18 Создание меню.pdf
Скачиваний:
19
Добавлен:
12.07.2020
Размер:
920.74 Кб
Скачать

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

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).