logo
Posobie_Ravino_Atamanov

2.5.5.1. Падающее и контекстное меню

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

В Delphi меню обычно создаются компонентами MainMenu  — главное меню, и PopupMenu  — всплывающее меню. Оба компонента расположены на странице Standard.

Основное требование к меню — их стандартизация. Это требование относится ко многим аспектам меню: месту размещения заголовков меню и их разделов, форме самих заголовков, клавишам быстрого доступа, организации каскадных меню. Цель стандартизации — облегчит пользователю работу с приложением. Надо, чтобы пользователю не приходилось думать, в каком меню и как ему надо открыть или сохранить файл, как ему получить справку и т.д. Для осуществления всех этих операций у пользователя, поработавшего хотя бы с несколькими приложениями, вырабатывается стойкий автоматизм действий и недопустимо этот автоматизм ломать.

Названия разделов меню должны быть привычными пользователю. Если не понятно, как назвать какой-то раздел, то не следует изобретать свое ими, а попробовать найти аналогичный раздел в какой-нибудь русифицированной программе Microsoft для Windows. Названия должны быть краткими и понятными. Не следует использовать фразы, да и вообще больше двух слов, поскольку это перегружает экран и замедляет выбор пользователя. Названия разделов должны начинаться с заглавной буквы. Применительно к английским названиям разделов существует требование, чтобы каждое слово тоже начиналось с заглавной буквы. Но применительно к русским названиям это правило не применяется.

В каждом названии раздела должен быть выделен подчеркиванием символ, соответствующий клавише быстрого доступа к разделу (клавиша &). Хотя вряд ли такими клавишами часто пользуются, но традиция указания таких клавиш незыблема.

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

Главное и контекстное меню создаются с помощью Конструктора Меню, который вызывается щелчком по соответствующей пиктограмме.

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

Один из вариантов вызова созданного ранее контекстного меню (рисунок 4) представлен ниже (обрабатывается событие MouseUp на форме)

procedure TFormHaupt.FormMouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

Var FCursor: TPoint;

begin

if Button=mbRight then

begin

GetCursorPos(FCursor);

PopupMenu1.Popup(FCursor.X,FCursor.Y);

end;

end;

После добавления данной процедуры контекстное меню будет вызываться нажатием правой кнопки мыши в любой области формы.