Справочник по компонентам Delphi. Часть 1
Страница 39. Компонент TPopupMenu


Компонент TPopupMenu

TObject-”TPersistent—”TComponent->TMenu->TPopupMenu
Модуль MENUS
Страница Палитры компонентов Standard

Этот компонент описывает всплывающее меню. В отличие от главного, соб­ственное меню такого типа может быть почти у каждого оконного элемента управления на форме (кроме переключателей), а также у самой формы.

Всплывающее меню обычно связывают с нажатием правой кнопки мьппи. Чтобы это правило соблюдалось, нужно установить в True свойство

(Pb) property AutoPopup: Boolean;

Для вызова этого меню из программы используйте метод:

procedure Popup(X, Y: Integer);

который показывает его, помещая в точку экрана (X,Y) точку панели меню, определенную свойством:

(Pb) property Alignment: TPopupAlignment;

TPopupAlignment = (paLeft, paRight, paCenter) ;

В зависимости от его значения в точке щелчка появится:

paLeft — левый верхний угол;
paRight — правый верхний угол;

paCenter — середина верхней стороны.

Разумеется, если нажатие произошло в самом низу экрана и развернуться вниз невозможно, меню автоматически будет сдвинуто вверх.

При вызове всплывающего меню перед его показом на экране программист извещается событием:

(Pb) property OnPopup: TNotifyEvent;

Одно и то же всплывающее меню могут разделять несколько компонентов. Свойство

property PopupComponent: TComponent ;

показывает, который из них инициировал меню (на котором был щелчок правой кнопки мыши). Если меню вызвано из метода Popup, значение этого свойства не определено, и присвоить ему значение должен сам прог­раммист.

Контекст помощи всплывающего меню задается свойством:

(Pb) property HelpContext: THelpContext;
Функции для работы с меню

Рассмотрим также описанные в модуле Menus полезные функции для управ­ления меню.

Четыре функции предназначены для преобразования типа TShortCut, пред­ставляющего горячую комбинацию клавиш:

а) в символ+состояние специальных клавиш и обратно:

procedure ShortCutToKey(Shortcut: TShortCut; var Key: Word;

var Shift: TShiftState);

function Shortcut(Key: Word; Shift: TShiftState): TShortCut;

б) в текст и обратно:
function ShortCutToText(Shortcut: TShortCut): string;
function TextToShortCut(Text: string): TShortCut;

Новые меню и их составные части можно создавать, пользуясь функциями:

function NewMenu(Owner: TComponent; const AName: string; Items: array of TMenuItem): TMairiMenu;

Создает новое главное меню с именем AName и пунктами Items, которое будет принадлежать владельцу Owner.

function NewPopupMenu(Owner: TCoiriponent; const AName: string; Alignment: TPopupAlignment; AutoPopup: Boolean; Items: array of TMenuItem): TPopupMenu;

Создает новое всплывающее меню. Назначение дополнительных параметров см. описание TPopupMenu.

function NewSubMenu(const ACaption: string; hCtx: Word; const AName: string; Items: array of TMenuItem): TMenuItem;

Создает новое подменю. Здесь AName — имя объекта, ACaption — его текст, hCtx — контекст системы помощи.

function Newltemfconst ACaption: string; AShortCut: TShortCut; AChecked, AEnabled: Boolean; AOnClick: TNotifyEvent; hCtx: Word; const AName: string):

Создает новый объект типа TMenuItem. Параметры метода соответствуют свойствам класса.

function NewLine: TMenuItem;

Создает новый элемент меню типа разделитель (TMenuItem с Caption = '-').

Все функции в случае успешного завершения возвращают указатель на соз­данный объект

 
« Предыдущая статья   Следующая статья »