Всплывающее меню – компонент 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; просмотров: 559;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.