Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕНЮ.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
580.44 Кб
Скачать

Пункты меню

Нетрудно догадаться, что пункты меню, как и все элементы интерфейса Delphi, являются компонентами. Класс пункта меню называется TMenultem, его самые характерные свойства:

Свойство

Описание

Break

Если равно mbBreak или mbBarBreak, то пункт меню начинает новую колонку. ЗначениеmbBarBreak обеспечивает отделение новой колонки от старой вертикальной чертой.

Caption

Текст пункта меню.

Checked

Если равно True, то пункт меню содержит метку: “птичку” или жирную точку в зависимости от значения свойства Radioltem.

Enabled Enabled

Определяет, доступен ли пункт меню пользователю.

Grouplndex

Работает по-разному в зависимости от того, находится пункт в выпадающем меню или в строке главного меню. Пункты выпадающего меню с одинаковым положительным значением Grouplndexсогласованно переключают “птичку” или жирную точку (вид метки определяется свойствомRadioltem). Пункты строки главного меню, находящиеся в дочерней форме MDI, сливаются с пунктами главного меню обрамляющей формы MDI при активизации дочерней формы. При этом,если в строке главного меню обрамляющей формы существуют пункты с таким же значением свойства Grouplndex, то новый пункт со своим списком пунктов полностью заменяет старый; в противном случае новый пункт со своим списком пунктов вставляется в строку главного меню.

Hint

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

Radioltem

Если равно True, то метка пункта имеет вид жирной точки и несколько пунктов с одинаковым значением Grouplndex работают как зависимые переключатели - установка у одного пункта свойства Checked в True снимает метку с другого пункта.

Visible

Определяет, виден ли пункт меню пользователю.

ShortCut

Комбинация клавиш для выполнения команды, не открывая меню.

По аналогии с остальными классами компонентов можно было бы предположить, что в Палитре Компонентов существует компонент Menultem. Однако его там нет, поскольку пункты меню не существуют сами по себе, а работают только в составе строки главного меню или окна всплывающего меню. Тем не менее они во многом ведут себя как настоящие компоненты, например настраиваются в Инспекторе Объектов и наряду с остальными компонентами помещаются в исходный текст формы в виде отдельных полей. Чтобы в этом убедиться, активизируйте Редактор Кода и найдите определение класса формы. Оно будет таким, как на рисунке (рис. 10).

Разделительные линии

Шаг 8. Логически связанные между собой команды принято разделять горизонтальной линией. Например, пункт Exit хорошо бы отделить от остальных. Для этого вставьте новый пункт и запишите в значении свойства Caption символ минуса (-) (рис. 11).

Delphi знает, что одиночный символ минуса в имени пункта меню означает разделитель и нарисует для пункта горизонтальную линию. Кстати это не запрещает вам создавать пункты, имена которых начинаются со знака минус. Если вы запишете что-нибудь после знака минус, то в имени пункта отобразится весь введенный текст.

Иногда список команд выпадающего меню бывает таким большим, что все они не умещаются в одном столбце на экране. Эта проблема решается с помощью нескольких колонок. Для организации колонок компоненты Menultem имеют свойство Break. Если в некотором пункте оно равно mbBreak или mbBarBreak, то этот пункт начинает новую колонку. Значение mbBarBreak отличается от mbBreak тем, что обеспечивает отделение колонок вертикальной чертой. Колонки в меню применяются редко, поэтому пример с ними мы опускаем.