Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Пример 1. Компонент TPopupMenu

Компонент TPopupMenu

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

Локальное меню обычно используется для динамического изменения свойств того интерфейсного элемента, над которым в данный момент находится курсор мыши. Локальное меню наряду с изменением свойств интерфейсных элементов обеспечивает доступ к командам. Причем это происходит быстрее, чем если команда вызывается из обычного меню. Во многих случаях отдельные элементы локального меню дублируют наиболее часто используемые команды главного меню. В отличие от главного, локальное меню может быть создано для любого оконного компонента.

Чтобы связать щелчок правой кнопки мыши на соответствующей компоненте необходимо свойству PopupMenu данного компонента присвоить имя локального меню. Например:

 

Label1.PopupMenu:= PopupMenu1;

 

Поместим на форму компоненты Memo и PopupMenu. Чтобы войти в Menu Designer, дважды щескните на всплывающем меню. Поместим в это меню три пункта с именами Cut, Copy и Paste. В их обработчиках события OnClick помести следующие строки:

 

Memo1.CutToClipboard;

Memo1.CopyToClipboard;

Memo1.PasteFromClipboard;

 

Удалите содержимое свойства Lines компонента Memo, установив его свойство ScrollBars в ssBoth.

Присвойте имя компонента PopupMenu в качестве значения свойству PopupMenu.

Запустите программу и введите какой-нибудь текст. С помощью мыши выделите одно или два слова, затем нажмите правую кнопку мыши. Выбирая из всплывающего меню пункты с именами Cut, Copy и Paste, можно увидеть эффект.

Используя туже программу, выберите всплывающее меню из списка в Object Inspector. Перейдите на страницу Events, дважды щелкнув на событии OnPopup, вставьте следующий текст:

 

Cut1.Enabled:= Memo1.SelLength > 0;

Copy1.Enabled:= Cut1.Enabled;

Paste1.Enabled:= Clipboard.HasFormat(CF_Text);

 

В строку Uses модуля добавьте ClipBrd.

Запустив программу снова и убедитесь, что пункты Cut и Copy всплывающего меню оказываются заблокированными, когда нет выделенного текста, который можно было бы выделить и скопировать. Пункт Paste будет недоступен, если нет текста для вставки.

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

Множество различных компонентов может быть ассоциировано с одним всплывающим меню посредством своего свойства PopupMenu. Свойство PopupComponent всплывающего меню делает эту связь двухсторонней. Оно сообщает компоненту PopupMenu, поверх какого компонента ему следует всплывать.

 

Другой пример:

 

Type

Tform1: class(TForm);

...

PopupMenu1: TPopupMenu;

N8: TMenuItem;

N9: TMenuItem;

Procedure N8Click;

Procedure N9Click;

end;

 

<== предыдущая лекция | следующая лекция ==>
Замечание. Пусть | Компонент TListBox
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 448; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.