Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по дисциплине Объектно-ориентирован...doc
Скачиваний:
33
Добавлен:
01.07.2025
Размер:
14 Мб
Скачать
☆

2. Основные свойства, события и методы контекстного всплывающего меню — компонент PopupMenu

Контекстное меню привязано к конкретным компонентам. Оно всплывает, если во время, когда данный компонент в фокусе, пользователь щелкнет правой кнопкой мыши. Обычно в контекстное меню включают те команды главного меню, которые в первую очередь могут потребоваться при работе с данным компонентом.

Контекстному меню соответствует компонент PopupMenu. Поскольку в приложении может быть несколько контекстных меню, то и компонентов PopupMenu может быть несколько. Оконные компоненты: панели, окна редактирования, а также метки и др. имеют свойство PopupMenu, которое по умолчанию пусто, но куда можно поместить имя того компонента PopupMenu, с которым будет связан данный компонент. (см. рис. 27)

рис. 27. Компонент PopupMenu

Формирование контекстного всплывающего меню производится с помощью Конструктора Меню, вызываемого двойным щелчком на PopupMenu, точно так же, как это делалось для главного меню. Обратим только внимание на возможность упрощения этой работы. Поскольку разделы контекстного меню обычно повторяют некоторые разделы уже сформированного главного меню, то можно обойтись копированием соответствующих разделов. Для этого, войдя в Конструктор Меню из компонента PopupMenu, щелкните правой кнопкой мыши и из всплыв­шего меню выберите команду Select Menu (выбрать меню). Вам будет предложено диалоговое окно, в котором вы можете перейти в главное меню. В нем вы можете выделить нужный вам раздел или разделы (при нажатой клавише Shift выделяются разделы в заданном диапазоне, при нажатой клавише Ctrl можно выделить совокупность разделов, не являющихся соседними). Затем выполните копирование их в буфер обмена, нажав клавиши Ctrl-C. После этого опять щелкните правой кнопкой мыши, выберите команду Select Menu и вернитесь в контекстное меню. Укажите курсором место, в которое хотите вставить скопированные разделы, и нажмите клавиши чтения из буфера обмена — Ctrl-V. Разделы меню вместе со всеми их свойствами будут скопированы в создаваемое вами контекстное меню.

В остальном работа с PopupMenu не отличается от работы с MainMenu. Только не возникает вопросов объединения меню разных форм: контекстные меню не объединяются.

3. Горячие клавиши — компонент HotKey

Компонент HotKey, расположенный в библиотеке на странице Win32, является вспомогательным, обеспечивающим возможность задания самим пользователем горячих клавиш, определяющих быстрый доступ к разделам меню. К тому же этот компонент позволяет задать такие сочетания горячих клавиш, которые не предусмотрены в выпадающем списке свойства разделов меню Shortcut. (см. рис. 28)

рис. 28. Компонент HotKey

Компонент HotKey внешне выглядит как обычное окно редактирования Edit. Но если в него входит пользователь, то оно переводит нажимаемые им клавиши в тип TShortCut, хранящий комбинацию горячих клавиш. Например, если пользо­ватель нажимает клавиши Ctrl-ф, то в окне HotKey появится текст «Ctrl + ф».

Основное свойство компонента — HotKey, равное по умолчанию комбинации клавиш Alt-A. Это свойство можно прочесть и присвоить свойству Shortcut како­го-то раздела меню. Например, оператор

MOpen.Shortcut:=HotKeyl.HotKey;

присваивает разделу меню с именем МОреп комбинацию клавиш, заданную в компоненте HotKeyl.

Свойство Modifiers указывает модификатор — вспомогательную клавишу, нажимаемую перед символьной. Это свойство является множеством, которое может включать значения hkShift, hkCtrl, hkAlt, hkExt, что соответствует клавишам Shift, Ctrl, Alt, Extra. По умолчанию Modifiers =[hkAlt]. Если вы хотите, например, задать вместо этого значения в качестве модификатора клавишу Ctrl, вы должны выполнить оператор:

HotKeyl.Modifiers:=[hkCtrl];

Свойство InvalidKeys задает недопустимые клавиши или их комбинации. Это свойство является множеством, которое может включать значения hcNone, hcShift, hcCtrl, hcAlt, hcShiftCtrl, hcShiftAlt, hcCtrlAlt, hcShiftCtrlAlt, что со­ответствует отсутствию модификатора и клавишам Shift, Ctrl, Alt, Shift-Ctrl, Shift-Alt, Ctrl-Ait, Shift-Ctrl-Alt.

Если вы хотите задать программно значение свойства HotKey, то можете это сделать, например, операторами

HotKeyl.HotKey:=ord('F'); HotKeyl.Modifiers:=[hkAlt];

Эти операторы зададут комбинацию горячих клавиш Alt-F. В заключение приведем пример использования компонента HotKey и настрой­ки горячих клавиш меню в процессе выполнения приложения.

Контрольные вопросы:

  1. Какой компонент предназначен для контекстоного меню, а какой для главного?

  2. Назовите основное свойство компонентов меню.

  3. Какое свойство предназначено для установления клавиш быстрого доступа?

  4. Как поместить к разделам меню изображения?

  5. Для чего предназначен компонент HotKey?

Рекомендуемая литература: 1.1, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8.