Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Тело контекстного меню

Читайте также:
  1. Для цього вибрати пункт Свернуть все окна контекстного меню панелі задач.

Тело контекстного меню строится точно так же, как и тело свитка. Локальные переменные, функции и структуры могут определяться внутри него. Доступ из внешнего кода к ним осуществляется так же, как и к переменным определенным внутри свитка. У контекстного меню есть свои элементы интерфейса – пункт, подменю и разделитель. Для них, как и для компонентов, размещаемых на свитке, определяются функции обработчики. Само меню может генерировать только одно событие. Оно происходит, когда меню открывается первый раз, а функция обработчик для него определяется так

on Контекстное_меню open do

 

Компоненты меню

Пункт меню

Меню состоит из пунктов. Каждый пункт должен быть определен следующим образом

menuItem Имя_переменной Текстовая_строка

checked: Логическое_выражение enabled: Логическое_выражение

filter: Функция

Обязательны только первые два параметра. Первый – имя переменной, которая после определения будет содержать ссылку на созданный пункт меню. Второй – текстовая строка, которая будет выводиться в меню. Параметр checked позволяет установить (значение true) или не устанавливать (false) галочку напротив определяемого пункта меню. Возможность доступа к пункту меню определяется параметром enabled. Значение true соответствует разрешенному пункту, false – недоступному. Последний параметр, filter, должен быть ссылкой на функцию без параметров, которая будет автоматически вызываться при открытии меню. Если она возвращает true, пункт добавляется к меню, в противном случае – нет.

Пункт меню, как и всякий объект имеет свойства. Текст пункта доступен через свойство

Пункт_меню. text

Наличие флажка возле пункта определяется свойством

Пункт_меню. checked

а за возможность пункта отвечает свойство

Пункт_меню. enabled

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

on Пункт_меню picked do

 

Разделитель

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

separator Имя_переменной filter: Функция

В первый параметр, как обычно заносится ссылка на созданный объект, а второй, необязательный, является функцией-фильтром. Его применение полностью аналогично работе с одноименным параметром для пункта меню.

 

Подменю

Подменю описывает новое меню, которое откроется, если Вы выберете некий пункт меню. Оно определяется следующим образом

subMenu Текстовая_строка filter: Функция

Первый параметр – текст пункта, при выборе которого раскроется подменю. Второй параметр необязателен и представляет собой уже знакомую нам функцию фильтр. После такого определения должно следовать тело подменю, которое состоит из пунктов, разделителей и новых подменю. Как видите, подменю является скорее синтаксическим объектом, поэтому в его определении нет даже переменной. В качестве примера можно привести определение меню, в котором есть и разделители и подменю.

rcmenu MyRCmenu

(-- Функции-фильтры

-- Наличие выделенных объектов

fn flt_objects = ($!= undefined)

-- Принадлежность выделенных объектов к классу фигур

fn flt_shapes = (isKindOf $ Shape)

-- Пункты меню

menuItem mi_cs "Cast Shadows" checked:false

menuItem mi_rs "Receive Shadows" checked:false

-- разделитель

separator sep2 filter:flt_objects

-- Подменю добавляется, если есть выделенные объекты

subMenu "Modifiers" filter:flt_objects

(

-- Пункты подменю для объектов

menuItem mi_bend "Bend"

menuItem mi_twist "Twist"

-- Разделитель и подменю только для фигур

separator sep3 filter:flt_shapes

subMenu "Shape" filter:flt_shapes

(

menuItem mi_extrude "Extrude"

menuItem mi_EditSpline "Edit Spline"

)

)

-- Здесь должны быть обработчики событий

)

 

registerRightClickMenu MyRcmenu -- Регистрация меню

 


Дата добавления: 2015-10-31; просмотров: 78 | Нарушение авторских прав


Читайте в этой же книге: Составные части тела утилиты | Составные части тела свитка | Свойства, методы и события свитков и утилит | Создание перемещаемых окон | Общие параметры компонентов пользовательского интерфейса | Типы компонентов пользовательского интерфейса | Фиксируемая кнопка | Список с редактором (combobox) | Однострочный редактор | Список с возможностью множественного выбора |
<== предыдущая страница | следующая страница ==>
Индикатор процесса| Макро скрипты

mybiblioteka.su - 2015-2024 год. (0.009 сек.)