Меню

Обычно приложения в среде Windows имеют главное меню, которое образует более или менее сложную структуру выполняемых приложением команд. Меню используется для быстрого доступа ко всем функциям приложения. Контекстное меню создается для отдельных объектов приложения (форм, панелей). Создание меню является фактически альтернативой выполнению команд для элементов управления типа командная кнопка в соответствии с программным кодом процедур, написанных для этих элементов. Головное меню, в отличие от командных кнопок, позволяет создать иерархическую структуру вложенных друг в друга команд меню. К тому же созданное головное меню приложения имеет более компактный вид.

При проектировании меню следует руководствоваться определенными нормами. Рекомендуется придерживаться стандартных названий команд меню в соответствии с принятыми названиями для всех приложений Windows.
Как и любой другой объект приложения, меню имеет набор свойств. Свойства меню доступны для редактирования в окне Properties - Свойства формы, которой принадлежит меню (таблица 3.4).


Таблица 3.4. Основные свойства меню

Свойства Назначение
Name
Имя
Идентифицировать пункт меню. Должно быть уникальным, так как это имя используется в программе
Caption
Название
Текст, отображаемый в пункте меню на форме
Checked Установить флажок, если свойство имеет значение True
Enabled Установить флажок, если свойство имеет значение True. Определяется возможность выполнения команды меню
HelpContextID Идентификатор справочной системы
Index Идентификатор пункта меню в массе элементов управления приложения
NegotiatePosition Определяет положение меню на экране
Shortcut
Быстрые клавиши
Комбинация клавиш для быстрого выполнения пункта меню
Visible
Видимо
Определяет видимость на экране пункта меню. При работе приложения пункты меню можно динамически прятать или показывать
WindowList
Список окон
Назначает свойство формирования динамического списка окон. При установке этого свойства в меню будет добавляться список окон по мере их запуска при работе приложения

Редактор меню menu Editor

Для проектирования меню используется редактор меню menu Editor - Редактор меню среды проектирования. Редактор меню можно вызывать следующим способом. Активизировать форму, на которой должно быть меню, и применить команду menu Editor (Редактор меню) из меню Project → Tools (Инструменты).
Редактор создает меню для активного в данный момент окна. На рис. 3.8 показан редактор меню для проектируемой формы на рис. 3.9. Редактор меню состоит из двух групп: элементов управления свойствами и элементов конструирования структуры меню. Элементы группы конструирования структуры меню позволяют добавлять и удалять новые пункты меню, перемещать пункты по вертикали, менять порядок их следования, и по горизонтали изменять расположение пунктов меню:




Рис. 3.8. Окно редактора меню menu Editor

Чтобы добавить команду меню, необходимо выполнить следующие шаги:

Пример создания головного меню в приложении


Задание

Создать приложения для выбора шрифта, а также для выполнения специальных функций - изменить заголовок окна, изменить цвет фона формы, показать время. Вместо командных кнопок использовать головное меню.
В приложении необходимо создать меню в соответствии со следующими командами:

Шрифт Форма Выход
Выбрать шрифт Сменить заголовок Показать время
  Сменить фон формы Выход


В головном меню содержится три основные команды, каждая из которых содержит подпункты. Для создания меню открыть menu Editor и заполнить пункты меню в соответствии с шаблоном.
После того как меню было создано, разместить на форме остальные управляющие элементы и изменить их свойства в окне свойств в соответствии с рис. 3.9.

Label1, Label2, Label3 - заполнить свойство Caption
Label5, Label6 - BorderStyle =1, Alignment = Center
Text1, Text2, Text3 - текстовые окна должны быть пустыми
Combo1, Combo2, СomboЗ - свойство List комбинированных списков заполнить в соответствии с назначением: названия шрифтов (Arial, Tahoma и др.), начертание (обычный, жирный, курсив ...), размер.

Программный код пользователя имеет следующий вид:

Private Sub Combo1_Click()          Выбор названия в текстовое окно из списка
Text1.Text = Combo1.Text
End Sub
       Private Sub Combo2_Click()
       Text2.Text = Combo2.Text



Рис 3.9. Заготовка приложения с меню


    End Sub
Private Sub Combo3_Click()
Text3.Text = Combo3.Text
End Sub
    Private Sub Combo4_Click()
    Text4.Text = Combo4.Text
    End Sub
Private Sub fon_Click()
form1.backColor = Rnd * 60000
End Sub
    Private Sub Time_Click()
    Rem Показать время
    Label6.Caption = format(Now, "hh:mm:ss")
    End Sub
        Private Sub vyb_shr_Click()
        Rem Выбор шрифта
        Label5.FontName = Text1.Text
         If  Text2.Text = "Нормальный" Then
         Label5.FontBold = False
         Label5.Fontltalic = False
         End If
         If   Text2.Text = "курсив" Then
         Label5.FontBold = False : Label5.FontItalic = True
         End If
     If  Text2.Text = "Жирный" Then
     Label5.FontBold = True : Labels.Fontltalic = False
     End If
         If Text2.Text = "Жирный курсив" Then
         Label5.FontBold = True : Labels.Fontltalic = True
         End If
     Label5.FontSize = Text3.Text
     Rem вывод текста о выбранном шрифте стилем выбранного шрифта
     Label5.Caption = Text1.Text & Chr(13) & Text2.Text & Chr(13) & Text3.Text
     End Sub

Рис 3.10. Результат работы приложения с меню

Создание головного меню для приложения особо эффективно, если проект приложения состоит из нескольких форм, каждая из которых имеет свой интерфейс. Головное меню при этом может быть создано общим для всего приложения.

Контекстное меню

Для приложения любого типа можно использовать удобное средство быстрого доступа к функциям приложения. Контекстное меню обычно связано с щелчком правой кнопки мыши на определенном объекте и может быть вызвано в любом месте. Контекстное меню становится видимым только после щелчка мыши.

Меню называется контекстным (или локальным), поскольку появляется рядом с выбранным объектом и зависит от содержания этого объекта. После выбора команды из контекстного меню оно исчезает.

Проектируется контекстное меню как один из пунктов верхнего уровня строки меню. Меню должно быть невидимо, поэтому свойство Visible для пункта контекстного меню установить равным False. Чтобы активизировать контекстное меню на форме, необходимо использовать метод Popupmenu формы.