Турбо Паскаль 6.0

TMenuView Menus


+------------+ | TObject | +------+-----+ +------+-----+ | TView | +------+-----+ +======+=====+ | TMenuView | +====+===+===+ +--------+ +------+ +----+-----+ +----+-----+ | TMenuBar | | TMenuBox | +----------+ +----------+

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

Поля

ParentMenu ParenMenu: PMenuView; Только чтение Указатель на объект TMenuView (или порожденный от него), который владеет этим меню. Заметим, что TMenuView - не группа. Здесь принадлежность намного проще, чем для TGroup, позволяя вложенность меню: выбор подменю и обратный возврат в "родительское" меню. Выборы из полос меню, например, обычно приводят к "выпаданию" подменю. В этом случае полоса меню - предок прямоугольника меню.

См. так же: TMenuBox.Init

Menu Menu: PMenu; Только чтение Указатель на запись TMenu для этого меню, которая содержит связанный список элементов меню. Указатель меню позволяет обращаться ко всем полям элементов меню в видимом элементе меню.

См. так же: TMenuView.FindItem, TMenuView.GetItemRect, тип TMenu

Current Current: PMenuItem; Только чтение Указатель на текущий выбранный элемент меню.

Методы

Init constructor Init(var Bounds: TRect); Вызывает TView.Init, чтобы создать объект TMenuView размера Bounds. По умолчанию EventMask установлено в evBroadcast. Этот метод не предназначен для использования с экземплярами объектов TMenuView. Он предназначен для вызова из порожденных типов TMenuBar и TMenuBox.

См. так же: TView.Init, evBroadcast, TMenuBar.Init, TMenuBox.Init

Load constructor TMenuView.Load(var S: TStream); Создает объект TMenuView и загружает его из потока S вызывая TView.Load, а затем загружая элементы в список меню.

См. так же: TView.Load, TMenuView.Store



Execute function Execute: Word; virtual; Перекрывается: Никогда Выполняет видимый элемент меню до тех пор, пока пользователь не выберет элемент меню или не отменит этот процесс. Возвращает команду, назначенную выбранному элементу меню, или 0, если меню было отменено. Этот метод должен вызываться только из ExecView.


См. так же: TGroup.ExecView

FindItem function FindItem(Ch: Char): PMenuItem); Возвращает указатель на элемент меню, который имеет Ch как горячую клавишу (подсвеченный символ). Возвращает nil, если такой элемент не найден или этот элемент запрещен. Заметим, что для Ch не различаются прописные и строчные буквы.

GetItemRect procedure GetItemRect(Item: PMenuItem; var R: TRect); virtual; Перекрывается: Всегда Этот метод возвращает в R прямоугольник, занимаемый данным элементом меню. Используется для определения, не был ли отмечен данный элемент мышкой. Наследники TMenuView должны перекрывать этот метод для того, чтобы откликаться на события от мышки.

См. так же: TMenuBar.GetItemRect, TMenuBox.GetItemRect

GetHelpCtx function GetHelpCtx: Word; virtual; Перекрывается: Иногда По умолчанию этот метод возвращает контекст подсказки текущего элемента меню. Если это hcNoContext, выбирается текущий контекст родительского меню. Если родительского меню нет, GetHelpCtx возвращает hcNoContext.

См. так же: hcXXXX константы контекста help

GetPalette function GetPalette: PPalette; virtual; Перекрывается: Иногда Возвращает указатель на палитру по умолчанию CMenuView.

HandleEvent procedure HandleEvent(var Event: TEvent); virtual; Перекрывается: Никогда Вызывается для обработки событий меню. Определяет, какой элемент меню был выбран мышкой или клавиатурой (включая горячие клавиши) и генерирует соответствующее командное событие через PutEvent.

См. так же: TView.HandleEvent, TView.PutEvent

HotKey function HotKey(KeyCode: Word): PMenuItem; Возвращает указатель на элемент меню, связанный с горячей клавишей, заданной через KeyCode. Возвращает nil, если не существует такого элемента меню или если элемент запрещен. Горячие клавиши - это обычно функциональные клавиши или комбинации Alt ключей и определяются аргументами в вызовах NewItem и NewSubMenu в InitMenuBar. Этот метод используется в TMenuView.HandleEvent для определения, будет ли событие от клавиатуры вибирать элемент меню.

Store procedure Store(var S: TStream); Сохраняет объект TMenuView (и его подменю) в потоке S, вызывая TView.Store, а затем записывая каждый элемент меню в поток.

См. так же: TMenuView.Load

Палитра

Все видимые элементы меню используют палитру по умолчанию CMenuView для отображения элементов со 2 по 7 в палитру стандартной программы.

1 2 3 4 5 6 +====+====+====+====+====+====+ CMenuView | 2 | 3 | 4 | 5 | 6 | 7 | +==+=+==+=+==+=+==+=+==+=+==+=+ Нормальный текст -+ | | | | +-- Короткий выбранный Запрещенный текст -----+ | | +------ Запрещенный выбранный Короткий текст -------------+ +------------ Нормальный выбранный


Содержание раздела