Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект лекций_2 семестр.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.4 Mб
Скачать

Основные свойства tMainMenu

AutoHotKeys Определяет, могут ли "горячие" клавиши элементов меню устанавливаться автоматически

AutoLine Reduction Указывает, проверяет ли и исправляет ли Delphi появление в начале или конце подменю разделителей или двух разделителей подряд

AutoMerge Определяет, объединятся ли главные меню вспомогательных форм с главным меню основной формы.

Определение property AutoMerge: Boolean;

Если требуется, чтобы меню вторичных форм объединялись с меню главной формы, то в каждой такой вторичной форме надо установить AutoMerge в true. При этом свойство главной формы должно оставаться в false. Способ объединения меню определяется свойствами GroupIndex элементов меню Items типа TMenuItem.

В MDI приложениях объединение меню осуществляется автоматически независимо от значения свойства AutoMerge.

Images Определяет список изображений, которые могут отображаться в разделах меню слева от надписи. Изображения конкретных разделов указываются свойством ImageIndex (индексом массива Images) разделов меню Items типа TMenuItem

Определение property Images: TCustomImageList;

Items Список элементов (разделов) меню типа TMenuItem.

Определение property Items: TMenuItem; default;

Свойство Items обеспечивает доступ к элементам меню. Обращаться к ним можно по индексам, например, Menu1.Items[0]. В процессе проектирования установит значения можно щелчком на этом свойстве в Инспекторе Объектов или с помощью конструктора меню, вызываемого двойным щелчком на компоненте меню.

Основные методы tMainMenu

FindItem Ищет и возвращает раздел меню, индентифицируемый значением Value, которое равно: при Kind = fkCommand - идентификатору ID, используемому в сообщении Windows WM_COMMAND; при Kind = fkHandle - дескриптору всплывающего меню; при Kind = fkShortCut - коду "горячих" клавиш

IsShortCut Распознает "горячие" клавиши, связанные с разделом меню, и выполняет этот раздел меню

Merge Объединяет данное меню с указанным меню вспомогательной формы

Unmerge Уничтожает объединение указанного меню вспомогательной формы с данным меню

События tMainMenu

OnChange Наступает при изменении меню. При работе с меню основные события связаны не с самим объектом меню, а с объектами его разделов типа TMenuItem.

TMenuItem - класс

Объекты TMenuItem характеризуют разделы меню. Создаются эти объекты Конструктором Меню, который вызывается двойным щелчком на компоненте меню. Каждой команде меню соответствует свой объект TMenuItem.

Основные свойства tMenuItem

Action Указывает действие, связанное с данным разделом меню.

Определение

property Action: TBasicAction;

Описание Значение свойства Action выбирается во время проектирования из выпадающего списка предусмотренных действий в Инспекторе Объектов. Этот список формируется в процессе проектирования размещением на форме компонента TActionList и заданием его свойств.

Bitmap : TBitmap Указывает изображение, появляющееся в заголовке раздела меню.

Если установлено свойство ImageIndex и в родительском меню свойство Images не равно nil, изображение определяется этими свойствами, а не Bitmap.

Break : TMenuBreak Определяет, не надо ли начинать новый столбец разделов меню.

Caption : string Определяет надпись раздела меню.

Checked : Boolean Указывает, будет ли изображаться в разделе меню маркер флажок, показывающий, что данный раздел выбран.

Command : Word Определяет идентификатор Command ID Windows, связанный с данным разделом меню. Используется в приложениях, напрямую обрабатывающих сообщения Windows WM_COMMAND. Свойство только для чтения.

Count : Integer Указывает число подразделов данного раздела меню, раскрываемых как выпадающий список. Учитываются только подразделы, относящиеся непосредственно к данному разделу, хотя сами они могут в свою очередь тоже иметь подразделы. Свойство только для чтения.

Определение

property Count: Integer;

Описание Свойство Count определяет число объектов в контейнере TCollection - в массиве Items. Поскольку индексы, как всегда в Delphi, начинаются с 0, то значение Count на единицу больше последнего индекса в Items.

Default : Boolean Определяет, является ли данный раздел разделом по умолчанию своего подменю, т.е. разделом, выполняемым при двойном щелчке пользователя на родительском разделе. Подменю может содержать только один раздел по умолчанию, выделяемый жирным шрифтом.

Enabled : Boolean Определяет, доступен ли раздел. Недоступный раздел изображается серой надписью и не реагирует на щелчок пользователя.

GroupIndex : Byte Определяет логическую группу, к которой относится раздел. Используется при объединении меню нескольких форм.

Определение

property GroupIndex:Byte;

Описание Свойство GroupIndex определяет способ объединения меню. В MDI приложениях меню дочерних форм всегда объединяются с меню родительской формы. В приложениях с несколькими формами наличие или отсутствие объединение определяется свойством AutoMerge компонента TMainMenu.

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

Группа Индекс Описание

Edit 1 Разделы меню сервера, связанные с редактированием активного объекта OLE

View 3 Разделы меню сервера, связанные с отображением активного объекта OLE

Help 5 Разделы меню сервера, связанные с доступом к встроенной справке

Свойство GroupIndex может использоваться и еще для одной цели, создания группы разделов, работающих по принципам радиокнопок. Для этого во всех разделах группы надо установить в true свойство RadioItem и задать всем разделам одинаковое значение GroupIndex. Выбор пользователем одного из таких разделов будет снимать выделение с остальных разделов.

Handle : HMENU Дескриптор выпадающего меню Windows, связанного с данным разделом. Используется при вызовах функций API Windows. Имеет смысл только при Count > 0. Свойство только для чтения.

Help Context: Thelp Contex t Идентификатор связанной с разделом темы справки.

Hint : String Текст, отображаемый в ярлычке подсказки или в строке состояния.

ImageIndex : Integer Индекс изображения раздела в списке изображений родительского меню Images.

Определение

property ImageIndex: Integer;

Описание Свойство ImageIndex указывает индекс изображения, появляющегося левее надписи данного раздела меню. Индекс относится к списку изображений - свойству Images родительского меню типа TMainMenu или TPopupMenu и начинается с 0.

Если родительское меню не содержит списка изображений (свойство Images равно nil), то для отображения изображения надо использовать свойство Bitmap компонента типа TMenuItem. Но Bitmap действует только при Images равном nil и отрицательном значении ImageIndex. В противном случае значение Bitmap не принимается во внимание.

Items Items[Integer]: TMenuItem Список разделов подменю, относящегося к данному разделу. Индексы начинаются с 0 и соответствуют последовательности разделов подменю. Свойство позволяет в цикле изменять какие-то свойства подразделов, например, Enabled. Свойство только для чтения.

Определение

property Items: TMenuItem; default;

Описание Свойство Items обеспечивает доступ к элементам меню. Обращаться к ним можно по индексам, например, Menu1.Items[0]. В процессе проектирования установит значения можно щелчком на этом свойстве в Инспекторе Объектов или с помощью конструктора меню, вызываемого двойным щелчком на компоненте меню.

Menu Index : Integer Индекс раздела, определяющий его место в свойстве Items родительского меню. Изменение MenuIndex перемещает раздел в Items. Индекс может не соответствовать видимой пользователем позиции раздела в меню, т.к. некоторые разделы могут быть невидимыми.

Parent : TmenuItem Указывает на родительский раздел меню, в выпадающем списке которого содержится данный раздел. Если раздел находится на верхнем уровне меню, то свойство Parent указывает на свойство Items самого меню. Свойство только для чтения.

RadioItem : Boolean Определяет, должен ли работать данный раздел в режиме радиокнопки совместно с другими разделами, имеющими то же значение свойства GroupIndex.

ShortCut : TShortCut Определяет комбинацию "горячих" клавиш, обеспечивающих быстрый доступ к разделу меню.

Определение

type TShortCut = Low(Word) .. High(Word);

property ShortCut: TShortCut

Описание Задание свойства ShortCut позволяет пользователю не выбирать данный раздел из меню, а просто нажать заданную комбинацию "горячих" клавиш. Эта комбинация при установке ShortCut автоматически появляется в надписи раздела.

При задании свойства ShortCut во время проектирования Инспектор Объектов предлагает длинный список возможных комбинаций клавиш. При задании значения ShortCut во время выполнения можно использовать функции ShortCut,, TextToShortCut, ShortCutToText.

Visible : Boolean Определяет видимость раздела меню. Отличие от свойства доступности Enabled в том, что недоступный раздел видим, а при Visible = false раздел невидим, соседние разделы смыкаются, занимая пустующее место.