Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Всплывающее меню – компонент TPopupMenu






 

Подавляющая часть визуальных элементов управления, построенных на основе класса TControl, обладает суверенным правом показа всплывающего,

или контекстного, меню. Для этого элементы оснащены свойством, предназначенным для подключения к ним компонента TPopupMenu:

property PopupMenu: TPopupMenu;

 

В свою очередь компонент TPopupMenu также в состоянии идентифицировать «хозяина» при помощи своего свойства:

property PopupComponent: TComponent;

 

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

ссылка на тот элемент управления, который воспользовался этим контекстным меню последним. По умолчанию всплывающее меню появляется рядом со своим владельцем после щелчка правой кнопкой мыши по его поверхности, а координаты вывода меню определяются текущим местоположением указателя мыши. Единственное, на что можно повлиять в этом случае, – так это определить, где мы предпочитаем увидеть меню: левее (paLeft), правее (paRight) или по центру (paCenter) относительно все того же указателя мыши.

 

 

property Alignment: TPopupAlignment;

type TPopupAlignment = (paLeft, paRight, paCenter);

 

При желании можно отказаться от автоматического вывода всплывающего

меню на экран, для чего требуется установить в False свойство:

property AutoPopup: Boolean;

 

С этого момента управление показом меню переключается в ручной режим.

Теперь для вызова меню потребуется вспомнить о существовании процедуры:

procedure Popup(X, Y: Integer); virtual;

 

Управление отображением контекстного меню с помощью этого метода имеет одно существенное преимущество: мы получаем право определить место вывода меню, указав экранные координаты X и Y явным образом. В момент вывода меню на экран происходит событие:

property OnPopup: TNotifyEvent;

 

Это событие зачастую применяется для последней настройки пунктов контекстного меню – управления свойствами Visible, Enabled и Checked.

Процессу отображения пунктов меню на экране можно придать современный вид, включив модные визуальные эффекты «всплывания», но, вспомнив о видеокартах несчастных пользователей, лучше установить это свойство в состояние maNone (отказ от эффектов):

property MenuAnimation: TMenuAnimation;

type TMenuAnimations = (maLeftToRight, maRightToLeft, maTopToBottom,

maBottomToTop, maNone);

TMenuAnimation = set of TMenuAnimations;

Резюме

 

История практически всех стандартных компонентов начиналась еще во времена первых версий Microsoft Windows. Их ключевые особенности – простота, наглядность и нетребовательность к системным ресурсам. Опираясь на компоненты со страницы Standard, вполне реально создавать проекты малой и средней степени сложности. Логическим развитием стандартных элементов управления считаются компоненты со страниц Additional и Win32, которым и будут посвящены следующие главы.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.