Создание меню
Практически все Windows-приложения имеют меню. Меню представляет собой список объединённых по функциональному признаку пунктов, каждый из которых обозначает команду или вложенное меню (подменю). Выбор пункта меню равносильно выполнению соответствующей команды или раскрытию подменю.
Обычно в приложении имеется главное меню и несколько контекстных (всплывающих или локальных) меню. Главное меню предназначено для управления работой всего приложения, каждое из контекстных меню служит для управления отдельным интерфейсным элементом.
Пункт меню или подменю представляет собой объект типа TMenuItem. Отдельный пункт меню (подменю) обычно виден как текстовый заголовок, описывающий назначение пункта меню. Класс TMenuItem служит для представления пунктов главного и контекстных меню. Основные свойства пункта меню:
ú Bitmap – значок, размещаемый слева от заголовка пункта меню. По умолчанию свойство имеет значение Nil, т. е. значок отсутствует;
ú Break – признак разделения меню на столбцы. Свойство Break может принимать одно из трех значений:
° mbNone (по умолчанию) – не разделяется;
° mbBreak – пункты меню, начиная с текущего, образуют новый столбец;
° mbBreakBar – пункты меню, начиная с текущего, образуют новый столбец, отделённый линией;
ú Caption – заголовок пункта меню;
ú Count – количество подпунктов в данном пункте меню;
ú Enabled – логическое свойство, определяющее активность пункта меню (False – пункт меню не активен, True – пункт меню активен);
ú Items – массив подпунктов текущего пункта меню;
ú ShortCut – комбинация клавиш для активизации пункта меню.
Основным событием, связанным с пунктом меню, является событие OnClick, возникающее при выборе пункта с помощью клавиатуры или мыши.
Главное меню располагается в верхней части формы под её заголовком и содержит наиболее общие команды приложения. По внешнему виду главное меню представляет собой строку (рис. 1).
Рис. 1. Меню формы
В Delphi главное меню представлено компонентом класса TMainMenu. На форму можно поместить сколько угодно объектов этого класса, но отображаться будет только одно (указанное в свойстве Menu формы).
Контекстное (всплывающее) меню появляется при размещении указателя в форме или в области некоторого элемента управления и нажатии правой кнопки мыши. Контекстное меню содержит команды, влияющие только на тот объект, для которого вызвано это меню.
Контекстное меню в Delphi представлено компонентом класса TPopupMenu. Его основные свойства:
ú AutoPopup – логическое свойство, определяющее, появляется ли контекстное меню при щелчке правой кнопки мыши и размещении указателя на компоненте, использующем это меню;
ú Alignment – определяет место появления контекстного меню по отношению к указателю мыши. Свойство Alignment может принимать значения:
° paLeft (по умолчанию) – положение указателя определяет положение левого верхнего угла меню;
° paCenter – положение указателя определяет положение центра меню по горизонтали;
° paRight – положение указателя определяет положение правого верхнего угла меню.
Для того чтобы контекстное меню появлялось при щелчке на компоненте, необходимо его свойству PopupMenu присвоить в качестве значения имя требуемого контекстного меню (рис. 2).
Рис. 2. Организация связи между контекстным меню и объектом
Компоненты MainMenu и PopupMenu размещаются на странице Standard Палитры компонентов. Меню (как подменю главного меню) или контекстного меню можно создавать и изменять как при разработке приложения, так и динамически – непосредственно в ходе выполнения приложения.
Для создания и изменения меню в процессе разработки приложения в среде Delphi предназначен Конструктор меню (Menu Designer). Запуск Конструктора меню выполняется с помощью соответствующей команды контекстного меню компонента MainMenu или PopupMenu, либо с помощью двойного щелчка мыши на компонент (рис. 3). Предварительно компонент следует добавить на форму.
Конструктор меню похож на текстовый редактор и предоставляет возможность конструировать меню любого типа. Меню при конструировании имеет тот же вид, что и при выполнении приложения. При работе с Конструктором меню можно использовать команды его контекстного меню, а также перетаскивать мышью (drag-and-drop) пункты меню и подменю.
Рис. 3. Конструктор меню
Создание и настройка меню с помощью Конструктора меню выполняются при создании приложения. Кроме того, меню можно создавать или изменять динамически при выполнении приложения. Например, возможно:
° создать новое меню любого типа или удалить его;
° заблокировать или разблокировать отдельные пункты;
° сделать пункт меню видимым или невидимым;
° добавить или удалить пункт меню;
° изменить название пункта и др.
Эти возможности обеспечиваются установкой свойствам пунктов меню требуемых значений и вызовом соответствующих методов.
Использование разделителей
Вы можете добавить в меню разделительные полосы, используя для подписи несколько символов минус (—). Назначать имя разделителю не обязательно. Он полезен для визуального разбиения пунктов меню на отдельные группы. Его применение сделает интерфейс вашего приложения более удобным и дружественным пользователю.
Определение быстрых и горячих клавиш
Чтобы меню вашего приложения было полностью в стиле Windows, можно включить в него возможность выбора пункта меню при помощи быстрых и горячих клавиш, которые обычно назначаются для удобства пользователя. Быстрая клавиша — это просто подчеркнутый символ в тексте элемента меню. Нажатие клавиши с этим символом в комбинации с клавишей <Alt> позволит вам выбрать соответствующий элемент меню. Горячие клавиши представляют собой сочетание клавиши <Ctrl> и комбинации других клавиш, нажатие которых обеспечивает непосредственный доступ к командам меню. Горячие клавиши обычно назначаются для часто используемых пунктов меню.
Вы можете связать быструю клавишу с пунктом меню через свойство Caption. При наборе текста подписи поместите символ амперсанда & непосредственно перед тем символом, который вы хотите использовать в качестве быстрой клавиши. Например, строка '&Close' будет отображаться в меню просто как Close. Нажатие клавиши <С>, когда меню активно (или <Alt> + <С>, когда меню не активно) приведет к немедленному выполнению пункта меню Close.
Для назначения пункту меню горячих клавиш используется свойство ShortCut. Раскрывающийся список этого свойства покажет все доступные комбинации клавиш. Выбранная комбинация появится в свойстве Caption после текста подписи.
Создание подменю (вложенных меню)
Структура меню может разветвляться таким образом, что некоторые команды меню будут иметь собственные подменю. Эта возможность крайне важна, так как слишком большое количество команд в меню верхнего уровня может привести к путанице. Вы можете избежать такой ситуации, сгруппировав в подменю команды по признаку общего функционального назначения. Поскольку пункты раскрывающегося меню связаны по какому-либо функциональному признаку, такое подменю легко привязать к пункту меню более высокого уровня.
Чтобы создать подменю для выбранной команды меню, нажмите клавиши <Ctri> -+- <правая стрелка>. Добавление новых пунктов к нему производится также, как и добавление команд в меню. Пункт подменю также может иметь своё собственное подменю.
Перемещение пунктов меню
Конструктор меню поддерживает перемещение пунктов меню на другое место при помощи технологии drag-and-drop. Пока вы перетаскиваете пункт, курсор принимает вид, показывающий, можете ли вы поместить выбранный пункт меню в данную точку или нет. Если вы не можете поместить пункт меню в данную точку, то курсор принимает вид перечеркнутого круга, в противном случае — стрелки с прямоугольником у основания. Конструктор меню позволяет как убирать, так и добавлять команды в подменю. Например, в раскрывающемся меню вы можете переместить меню верхнего уровня в подменю и все его пункты (если они есть) появятся на новом месте в качестве подменю.
Включение в меню ярлыка
Hint (Ярлык) — очень полезное свойство, которое позволит вам обеспечить пользователя более подробной информацией о назначении пункта меню, чем та которую он может почерпнуть из его названия. Когда пункт выделен, текст ярлыка в виде оперативной подсказки может появляться в строке состояния в нижней части формы.
Оперативная подсказка позволяет пользователю получить информацию о том, что произойдет при выборе этого пункта меню. Таким образом он может просмотреть назначение нескольких пунктов меню, и выбрать из них тот, который ему наиболее подходит. Использование этой возможности сделает работу с вашим приложение удобнее, а интерфейс более дружественным.
Для задания текста ярлыка для пункта меню, введите текст в свойство Hint этого объекта. Для того, чтобы оперативная подсказка работала во время выполнения приложения, необходимы еще некоторые действия. В документации содержится хороший пример связывания оперативной подсказки с пунктами меню приложения. Для получения этой информации необходимо в окне Object Inspector на странице Properties выбрать свойство Hint, а затем нажать клавишу <F1>.
Дата добавления: 2015-03-19; просмотров: 928;