Всплывающее меню – компонент TPopupMenu
Подавляющая часть визуальных элементов управления, построенных на основе класса TControl, обладает суверенным правом показа всплывающего,
или контекстного, меню. Для этого элементы оснащены свойством, предназначенным для подключения к ним компонента TPopupMenu:
propertyPopupMenu: TPopupMenu;
В свою очередь компонент TPopupMenu также в состоянии идентифицировать «хозяина» при помощи своего свойства:
propertyPopupComponent: TComponent;
Если всплывающее меню разделяется двумя и более компонентами, то трудно предсказать, на кого укажет данное свойство, если меню еще ни разу не вызывалось на экран. Если же меню отображалось, то в свойстве окажется
ссылка на тот элемент управления, который воспользовался этим контекстным меню последним. По умолчанию всплывающее меню появляется рядом со своим владельцем после щелчка правой кнопкой мыши по его поверхности, а координаты вывода меню определяются текущим местоположением указателя мыши. Единственное, на что можно повлиять в этом случае, – так это определить, где мы предпочитаем увидеть меню: левее (paLeft), правее (paRight) или по центру (paCenter) относительно все того же указателя мыши.
propertyAlignment: TPopupAlignment;
typeTPopupAlignment = (paLeft, paRight, paCenter);
При желании можно отказаться от автоматического вывода всплывающего
меню на экран, для чего требуется установить в False свойство:
propertyAutoPopup: Boolean;
С этого момента управление показом меню переключается в ручной режим.
Теперь для вызова меню потребуется вспомнить о существовании процедуры:
procedurePopup(X, Y: Integer); virtual;
Управление отображением контекстного меню с помощью этого метода имеет одно существенное преимущество: мы получаем право определить место вывода меню, указав экранные координаты X и Y явным образом. В момент вывода меню на экран происходит событие:
propertyOnPopup: TNotifyEvent;
Это событие зачастую применяется для последней настройки пунктов контекстного меню – управления свойствами Visible, Enabled и Checked.
Процессу отображения пунктов меню на экране можно придать современный вид, включив модные визуальные эффекты «всплывания», но, вспомнив о видеокартах несчастных пользователей, лучше установить это свойство в состояние maNone (отказ от эффектов):
propertyMenuAnimation: TMenuAnimation;
typeTMenuAnimations = (maLeftToRight, maRightToLeft, maTopToBottom,
maBottomToTop, maNone);
TMenuAnimation = set ofTMenuAnimations;
Резюме
История практически всех стандартных компонентов начиналась еще во времена первых версий Microsoft Windows. Их ключевые особенности – простота, наглядность и нетребовательность к системным ресурсам. Опираясь на компоненты со страницы Standard, вполне реально создавать проекты малой и средней степени сложности. Логическим развитием стандартных элементов управления считаются компоненты со страниц Additional и Win32, которым и будут посвящены следующие главы.
Дата добавления: 2016-03-15; просмотров: 621;