Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






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

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

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

ми меню.

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

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

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

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

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

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

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

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

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

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

property AutoMerge: Boolean;

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

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

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

procedure Merge(Menu: TMainMenu);

procedure Unmerge(Menu: TMainMenu);

 

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

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

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

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

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

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

procedure GetOle2AcceleratorTable(var AccelTable: HAccel; var AccelCount: Integer; const Groups: array of Integer);

procedure PopulateOle2Menu(SharedMenu: HMenu; const Groups: array of Integer; var Widths: array of Longint);

 

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

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

procedure SetOle2MenuHandle(Handle: HMENU);

 

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.