![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Всплывающее меню – компонент TPopupMenu⇐ ПредыдущаяСтр 20 из 20
Подавляющая часть визуальных элементов управления, построенных на основе класса 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, которым и будут посвящены следующие главы.
|