Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Дополнительные компоненты




Меню

Всего существует 2 типа меню – главное меню – то, что располагается непосредственно под заголовком окна программы, и контекстное меню, привязанное к тому или иному элементу управления. И если главное меню предназначено для управления работой всего приложения, то каждое контекстное меню служит для управления каким-либо конкретным элементом интерфейса.

Для создания главного меню в VCL предусмотрен компонент MainMenu, а для контекстного – PopupMenu. Оба они происходят от класса TMenu, и имеют некоторые общие свойства. В частности, свойство AutoHotkeys определяет, должны ли автоматически назначаться символы для быстрой навигации по меню (вы видите их подчеркнутыми при нажатой клавише Alt). Так же у них присутствуют свойства Images, позволяющие привязать к меню коллекцию изображений, и Items, являющиеся хранилищем самих пунктов меню.

Что касается индивидуальных свойств этих компонентов, то здесь для нас наибольший интерес представляют настройки контекстного меню. Так, свойство Alignment определяет, в какой позиции относительно указателя мышки должно появиться меню. Допускается выравнивание его левого верхнего угла по левому краю (paLeft, принято по умолчанию), по правому (paRight) и по центру (paCenter). Другое свойство, AutoPopup, Отвечает за появление контекстного меню на экране. Если оно установлено в истину, то меню будет появляться автоматически при щелчке правой клавишей мышки по компоненту, к которому это меню привязано. Если же установить значение этого свойство в ложь, то процесс появления меню должен будет контролироваться программно. Отметим, что для показа контекстного меню таким способом следует использовать метод Popup. Например, чтобы привязать всплытие меню к любому щелчку мышки по форме, можно написать примерно такой обработчик события для onClick:

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin PopupMenu1.Popup(X, Y); end;

Единственным спорным моментом в данном случае будет место появления меню. Дело в том, что аргументами X и Y, передаваемыми обработчику события onClick формы будут локальные координаты, отсчитываемые от верхнего левого угла ее окна. В то же время для метода Popup необходимы координаты относительно всего экрана (т.е. как для объекта Screen). Выходом из данной ситуации будет использование информации о координатах самой формы, которые так же привязаны к глобальной системе координат:

PopupMenu1.Popup(Form1.Left+X,Form1.Top+Y);

Свойства MenuItem
Свойство Тип Описание
Action TBasicAction Ссылается на действие, связанное с данным пунктом меню. Все остальные свойства этого пункта меню в таком случае задаются косвенно, посредством компоненты ActionList
AutoCheck Boolean Определяет, должен ли данный пункт менять свое свойство Checked при его выборе пользователем
AutoHotkeys TMenuItemAutoFlag Определяет, должны ли автоматически назначаться символы для быстрой навигации по подменю.
AutoLineReduction TMenuItemAutoFlag Определяет, должны ли автоматически удаляться повторяющиеся строкиразделители
Bitmap TBitmap Позволяет назначить индивидуальное графическое изображение данному пункту меню
Break TMenuBreak Определяет, является ли данный пункт началом нового столбца меню. Может принимать значения mbNone, nbBreak и mbBreakBar
Caption String Определяет заголовок пункта меню. Если в качестве заголовка использовать символ "-", то на месте такого пункта будет отображаться разделительная линия
Checked Boolean Определяет, является ли данный пункт меню отмеченным. Если да, то он выделяется соответствующей меткой
Count Integer Указывает на количество пунктов подменю в данном пункте меню. Нулевое значение означает, что подменю нет
Default Boolean Определяет, является ли данный пункт выбранным по умолчанию. Такие пункты выделяются полужирным шрифтом и автоматически вызываются при двойном щелчке по родительскому пункту меню
Enabled Boolean Определяет, является ли данный пункт доступным
ImageIndex Integer Указывает на порядковый номер изображения в коллекции (компонент ImageList), связанного с данным меню
Items TMenuItems Определяет массив пунктов вложенного подменю
RadioItem Boolean Определяет, является ли данный пункт составной частью взаимоисключающих пунктов меню
ShortCut TShortCut Определяет сочетание горячих клавиш для быстрого вызова данного пункта
Visible Boolean Определяет, должен ли данный пункт быть видимым пользователю

Для создания меню в Delphi предусмотрен специальный редактор, позволяющий наглядно создавать и редактировать как главное меню, так и контекстные. Для того, чтобы им воспользоваться, достаточно поместить нужный компонент (MainMenu или PopupMenu) на форму, после чего воспользоваться его собственным контекстным меню. Первым пунктом будет Menu Designer, и как раз он и вызывает нужный редактор, называемый конструктором меню. При помощи этого конструктора можно создавать меню, причем его внешний вид будет практически соответствовать тому, что получится на самом деле. Если в процессе работы щелкнуть правой кнопкой мышки по созданному пункту меню, то откроется контекстное меню самого редактора, при помощи которого этот пункт можно удалить (delete), либо добавить (Insert) вслед за ним новый, или же сделать данный пункт родительским для собственного подменю (Create Submenu). При этом свойства выбранного в данный момент пункта меню, видны и доступны для правки в инспекторе объекта.

Для того чтобы связать элемент меню с выполняемой им функцией, используется обработчик события onClick. Фактически, это единственное событие, которое заслуживает внимание.


 




Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 471; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.