Управление пунктами меню во время выполнения приложения

Одни приложения для Windows используют неизменные меню во время всего сеанса работы, а другие могут динамически управлять своими меню:

- отключить определенные пункты меню на некотором этапе его выполнения.

- пометить некоторые пункты меню, чтобы показать, что они уже были выбраны.

- скрыть часть пунктов при динамическом создании сокращенного варианта меню.

Все это вы можете сделать, управляя свойствами меню во время выполнения приложения.

Деактивизация пунктов меню

Установив свойство Enabled в False,можно:

- сделать пункты меню недоступными во время разработки приложения и при выполнении. В недоступных пунктах текст отображается серым цветом.

- изменять свойство Enabled во время выполнения программы для определения состояния пунктов меню. Это может быть полезно для предотвращения доступа к отдельным командам меню.

- сделать меню управляемым в зависимости от действий пользователя.

- пресечь несанкционированное использования приложения.

- разграничить доступ к его функциональным возможностям между различными пользователями. При этом меню изменяется в зависимости от приоритета пользователя.

Эти дополнительные возможности вы должны реализовать сами.

Метки пунктов меню

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

Обычно в качестве набора опций используется группа команд пункта меню и при помощи свойства checked выделяется последняя выбранная пользователем опция.

Сокрытие пунктов меню

Некоторые приложения предлагают два варианта меню: для новичка и опытного пользователя. Можно реализовать две и более версии меню путем сокрытия тех пунктов, которые не требуются опытному пользователю или не должны быть видны новичку.

Свойство visible поможет вам показать или скрыть любой пункт меню.

Если вы сделаете невидимым пункт меню, то все подменю, содержащиеся в нём, будут также невидимыми и таким образом недоступными.

Основные свойства объектов типа TMenuItem
Свойство Тип Комментарий
Caption String Текст, появляющийся в меню. Если перед некоторой буквой поставить знак &, то во время выполнения программы этот знак будет не виден, а буква будет изображаться с подчеркиванием, что позволит ее использовать в качестве горячей клавиши. Если текст состоит всего из одного знака «минус», то пункт меню становится разделительной линией.
Cheeked Boolean При установке значения True слева от пункта меню будет отображаться «галочка».
Enabled Boolean Если значение будет равно False, то пункт меню будет недоступен для выбора и станет отображаться серым цветом.
Shortcut TShortCut Горячая клавиша, которую можно будет использовать для быстрого вызова пункта меню. Кроме того, она будет отображаться справа от пункта меню.
Visible boolean Если значение будет равно False, то пункт меню будет невидим

Сохраните проект в папке Лабораторная работа 13 и именем PrimerMenu

Задание 1

1. Создать в новом проекте форму «Меню»

2. На форму поместить метку Label1 (Свойство Caption'Создание меню'), редактор Edit1 и кнопку BitBtn. Свойство Visible у всех трех компонентов перевести в False.

3. Поместить на форму компонент MainMenu

4. Спроектировать пункты меню в соответствии с рисунками,

 

Для каждого пункта меню сгенерировать процедуру (самостоятельно определить, какому пункту меню соответствует каждая из процедур):

 

Один из вариантов работы приложения:

 

Вопросы и задания для самостоятельной работы

1. Как назначить нескольким пунктам меню один и тот же обработчик событий?

2. Создайте пункт меню, выдающий в отдельном модальном окне информацию о программе (автор, дата создания и т.д.).

3. Добавьте новые пункты меню для запуска каких-нибудь наиболее распространенных программ Windows.