Главное меню – компонент TMainMenu

Про возможности главного меню мы уже практически все знаем. Класс TMainMenu построен на основе TMenu и состоит из элементарных пунктов меню TMenuItem. Чтобы завершить картину, познакомимся с полезной особенностью главного меню – механизмом объединения. Объединение меню применяется:

1. При работе с приложениями с интерфейсом MDI (см. главу 9 «Форма, интерфейсы SDI и MDI»).

2. При разработке приложения, обладающего несколькими окнами со свои-

ми меню.

3. При внедрении OLE-объектов (например, с применением компонента

TOleConteiner). В этом случае при старте сервера автоматизации последний вставляет свои элементы меню в главное меню приложения.

Последовательно рассмотрим все три направления использования механизма слияния меню. Первый случай – отображение в главном меню главной

формы приложения MDI пунктов меню с названиями открытых дочерних

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

Как ни странно это покажется на первый взгляд, но для решения этой задачи

надо воспользоваться не свойствами или методами класса TMainMenu, а свойством WindowMenu главной формы нашего проекта. Этим свойством определяется пункт меню TMenuItem (входящий в состав элементов главного меню), к которому будет «пристроен» список имен дочерних форм.

Если разрабатываемое приложение строится на основе интерфейса SDI, то

для автоматического присоединения меню подчиненной формы к меню

главной формы проверьте, чтобы свойство AutoMerge главного меню подчиненной формы было установлено в true:

propertyAutoMerge: Boolean;

Свойству AutoMerge компонента TMainMenu главной формы проекта всегда должно быть присвоено значение False.

Если требуется полностью контролировать процесс слияния меню, то вместо

услуг свойства AutoMerge стоит обратиться к методам:

procedureMerge(Menu: TMainMenu);

procedureUnmerge(Menu: TMainMenu);

 

Эти процедуры предназначены для присоединения и отсоединения пунктов

меню из текста программы. В параметре Menu следует передавать ссылку

на главное меню проекта.

Если в приложении используется контейнер OLE-объектов – компонент

TOLEContainer, то стоит знать о существовании трех методов главного меню,

обеспечивающих слияние меню приложения и сервера OLE:

procedureGetOle2AcceleratorTable(varAccelTable: HAccel; varAccelCount: Integer; constGroups: array ofInteger);

procedurePopulateOle2Menu(SharedMenu: HMenu; constGroups: array ofInteger; varWidths: array ofLongint);

 

Для осуществления временной замены главного меню на меню сервера OLE

вызывают процедуру:

procedureSetOle2MenuHandle(Handle: HMENU);

 

В качестве параметра Handle выступает указатель на меню сервера. Для восстановления оригинального меню вместо указателя передают нулевое значение.








Дата добавления: 2016-03-15; просмотров: 785;


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

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

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

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