Глава 6: Интерфейс пользователя
MapBasic Руководство пользователя
97
Задание элементов меню на разных языках
В большинстве предыдущих примеров к меню обращались по имени
(Ф
АЙЛ и т.д.). Есть другой способ обратиться к стандартному заголовку
меню MapInfo: по его номеруидентификатору. Например, в любом
операторе, обращающемся к меню Ф
АЙЛ, можно вместо слова "Файл"
использовать "ID 1". Следующий оператор удаляет меню З
АПРОС
(которому соответствует идентификатор 3) из строки заголовков:
Alter Menu Bar Remove ID 3
Если Вы планируете использовать Вашу программу более, чем в одной
стране, то снабжайте заголовки меню соответствующими номерами
идентификаторами. В русской версии MapInfo обращение к меню
“File" не пройдет (как и в любой другой локализованной версии), и
будет порождена ошибка.
Список идентификаторов, которые соответствуют стандартным меню
MapInfo, приведен в описании оператора
Alter Menu в Справочнике
MapBasic.
Настройка быстрых меню MapInfo
MapInfo 7.0 обеспечивает быстрые меню – меню, которые появляются,
если пользователь нажимает правую кнопку мыши. Чтобы
манипулировать такими меню, используйте те же самые операторы,
которые Вы использовали бы, чтобы работать со стандартными меню:
Alter Menu, Alter Menu Item, и Create Menu.
Каждое быстрое меню имеет уникальное имя и IDномер. Например,
быстрое меню, которое появляется, когда Вы нажимаете правую
кнопкой мышки на Карте, называется "MapperShortcut" и имеет ID 17.
Состав этих меню и IDномера составляющих его команд, приведен в
описании оператора Alter Menu в Справочнике MapBasic.
Чтобы отключить быстрое меню, используйте оператор Create Menu ,
который переопределяет систему меню MapInfo, и задайте
управляющий код " ( " как новое определение меню. Например:
Create Menu ”MapperShortcut” ID 17 As ”(”
Назначение одной обрабатывающей процедуры
нескольким элементам меню
Операторы Create Menu и Alter Menu могут содержать предложение
ID, которое назначает уникальный IDномер, т.е. идентификатор,
каждому новому элементу меню. Этот номер задавать не обязательно;
однако с его помощью можно устроить так, чтобы разные команды
вызывали одну и ту же процедуру.