double arrow

Создание меню. Для создания нового меню или переопределения уже существующего используется оператор Create Menu

Для создания нового меню или переопределения уже существующего используется оператор Create Menu. Рассмотрим два небольших примера создания меню.

В первом примере создается новое меню, которое будет размещено в конце строки главного меню MapInfo. После выполнения процедуры theEnd программа закончит работу, а построеное меню будет выгружено.

Создание нового меню

Include "mapbasic.def" Declare Sub Main Declare Sub TestPrint Declare Sub theEnd Sub Main Create Menu "Тест меню" As "Печать" Calling TestPrint, "Выход" Calling theEnd Alter Menu Bar Add "Тест меню" end sub Sub TestPrint print "Тест меню" end sub Sub theEnd End Program end sub

Если в предыдущем примере несколько изменить процедуру Main,

Sub Main Create Menu "Тест меню" As "Печать" Calling TestPrint, "Выход" Calling theEnd Alter Menu Bar Remove ID 6, ID 7 Alter Menu Bar Add "Тест меню", ID 6, ID 7 end sub

то меню разместится в строке меню MapInfo перед меню Окно.

Здесь вместо имен меню используются идентификаторы.

Файл ID 1

Правка ID 2

Объекты ID 14

Запрос ID 3

Таблица ID 15

Настройки ID 5

Окно ID 6

Справка ID 7

Список ID 8 Используется, при активном окне Списка

Карта ID 9 Используется, при активном окне Карты

График ID 11 Используется, при активном окне Графика

Отчет ID 10 Используется, при активном окне Отчета

Геогруппы ID 13 Используется, при активном окне Геогрупп

MapBasic ID 12 Используется, при активном окне MapBasic

Программы ID 4

WinSpecific Обозначает меню, соответствующее открытому окну: "Карта", "График", "Список", "Отчет", "MapBasic" или "Справка"

DefaultShortcut ID 16 Контекстное меню для окон, не имеющих

своего персонального контекстного меню

MapperShortcut ID 17 Контекстное меню окна Карты

BrowserShortcut ID 18 Контекстное меню окна Списка

LayoutShortcut ID 19 Контекстное меню окна Отчета

GrapherShortcut ID 20 Контекстное меню окна Графика

CmdShortcut ID 21 Контекстное меню окна MapBasic

RedistrictShortcut ID 22 Контекстное меню окна Геогрупп

Создание нового меню вместо существующего

Include "mapbasic.def" Declare Sub Main Declare Sub TestPrint Declare Sub theEnd Sub Main Create Menu "Справка" As "Печать" Calling TestPrint, "Выход" Calling theEnd end sub Sub TestPrint print "Тест меню" end sub Sub theEnd End Program end sub

В данном случае стандартное меню Справка заменит новое меню, состоящее из двух

пунктов Печать и Выход. После окончания работы программы (процедура theEnd)

будет восстановлено стандартное меню Справка.

Можно програмно управлять состоянием элемента меню. Для этого используются

специальные управляющие коды. Информацию по этим кодам можно найти в

справочнике MapBasic. Приведем пример использования управляющих кодов.

Create Menu "Справка" As "Печать" + Chr$(9) + "Ctrl+д/W^L" Calling TestPrint, "(-", "Выход" Calling theEnd

Здесь в пункт меню Печать будет добавлен комментарий Ctrl+д и появится

дополнительная возможность вызова обработчика TestPrint через нажатие на клавиатуре

клавиш Ctrl + д (Д, l, L). Следующий пункт меню не имеет обработчика события и его

роль чисто декоративная – он рисует линию разделяющую пункты меню.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: