Обзор компонентов библиотеки C++Builder______________________185

При выборе нового раздела вы увидите в Инспекторе Объектов множество
свойств данного раздела. Дело в том, что каждый раздел меню, т.е. каждый эле-
мент свойства Items, является объектом типа TMenuItem, обладающим своими
свойствами, методами, событиями.

Свойство Caption обозначает надпись раздела. Заполнение это свойства подчи-
няется тем же правилам, что и заполнение аналогичного свойства в кнопках (см.
раздел 3.3.2), включая использование символа амперсанта для обозначения кла-
виш быстрого доступа. Свойство Name задает имя объекта, соответствующего раз-
делу меню. Очень полезно давать этим объектам осмысленные имена, так как ина-
че вы скоро запутаетесь в ничего не говорящих именах типа N21. Куда понятнее
имена типа MFile, MOpen, MSave и т.п.

Свойство ShortCut определяет клавиши быстрого доступа к разделу меню —
«горячие» клавиши, с помощью которых пользователь, даже не заходя в меню,
может в любой момент вызвать выполнение процедуры, связанной с данным разде-
лом. Чтобы определить клавиши быстрого доступа, надо открыть выпадающий
список свойства ShortCut в окне Инспектора Объектов и выбрать из него нужную
комбинацию клавиш. Эта комбинация появится в строке раздела меню (см. коман-
ду Сохранить... на рис. 3.24, 3.25). В разделе 3.4.3 рассказано о некоторых дополни-
тельных возможностях задание комбинации горячих клавиш.

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

Свойство Break используется в длинных меню, чтобы разбить список разделов
на несколько столбцов. Возможные значение Break: mbNone — отсутствие разбие-
ния меню (это значение принято по умолчанию), mbBarBreak и mbBreak — в
меню вводится новый столбец разделов, отделенный от предыдущего полосой
(mbBarBreak) или пробелами (mbBreak). На рис. 3.26 показан пример, в котором в
разделе 1-3 установлено значение Break = mbBreak, а в разделе 1-5 — Break =
mbBarBreak.

Пример меню с разбиением на столбцы                          В-^^йрйд';':             -
ji^'i-i;^"^ '1-3 :  1.S    '

••'"  1-2;'      1-4    ,    1.6

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

(рис. 3.24, 3.25 раздел Автосохранение)'.'Правда, сам по себе этот маркер не изменя-
ется при работе пользователя с меню и в обработчик события OnClick такого разде-
ла надо вставлять оператор типа

MAutoSave->Checked = ! MAutoSave->Checked;

(в приведенном операторе подразумевается, что раздел меню назван MAutoSave).

Еще одним свойством, позволяющим вводить маркеры в разделы меню, явля-
ется Radioltem. Это свойство, установленное в true, определяет, что данный раз-
дел должен работать в режиме радиокнопки совместно с другими разделами, име-
ющими то же значение свойства Grouplndex. По умолчанию значение Grouplndex
равно 0. Но можно задать его большим нуля и тогда, если имеется несколько раз-
делов с одинаковым значением Grouplndex и с Radioltem = true, то в них могут
появляться маркеры флажков, причем только в одном из них (на рис. 3.24, 3.25