Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MB_REF_7.pdf
Скачиваний:
25
Добавлен:
13.02.2015
Размер:
2.96 Mб
Скачать

Оператор Alter MapInfoDialog

Оператор Alter MapInfoDialog

Назначение:

Делает недоступными, прячет или присваивает значение элементу стандартного диалогового окна в MapInfo.

Предупреждение:

Идентификаторы, используемые этим оператором, могут быть изменены в будущих версиях MapInfo. В результате программы, работающие в 4 версии MapInfo, могут некорректно работать в следующих версиях.

Синтаксис (вариант 1 8 присвоение нестандартных установок):

Alter MapInfoDialog dialog_ID

Control control_ID

{ Disable | Hide | Value new_value } [ , { Disable ... } ] [ Control ... ]

Синтаксис: (вариант 2 8 восстановление стандартных установок)

Alter MapInfoDialog dialog_ID Default

где

dialog_ID – целое число, идентификатор изменяемого диалогового окна MapInfo; control_ID – целое число от 1 и более, идентификатор изменяемого элемента диалога; new_value – новое значение элемента диалога.

Описание:

Оператор позволяет делать недоступными, скрытыми и присваивать значения элементам стандартных диалогов MapInfo - кнопкам, флажкам и т. п. Надо отметить, что оператор Alter MapIn foDialog работает только со стандартными диалогами в MapInfo. Для работы с элементами диалогов, построенных оператором Dialog, используется оператор Alter Control.

Определение идентификатора

Для определения идентификатора диалога необходимо загрузить MapInfo для Windows командой:

mapinfow.exe helpdiag

После того, как программа MapInfo будет запущена с аргументом -helpdiag, выведите нужное диалоговое окно на экран и нажмите на кнопку Справки в нем. Обычно, эта кнопка вызывает окно Справочной системы, но в этом случае MapInfo показывает идентификатор данного диалога.

Замечание: Существуют разные общесистемные диалоги (такие как диалоги открытия и сохранения) в разных версиях Windows. Если Вы хотите внести изменения в общесистемный диалог, и если Ваше приложение используется в разных версиях Windows, Вам необходимо приготовить две версии оператора Alter MapInfoDialog по одному для каждой версии Windows.

Каждый элемент диалога также имеет идентификатор. Например, большинство кнопок "OK" имеют идентификатор 1, а кнопка "Отмена" ("Cancel") - идентификатор 2. Определить идентификатор элемента диалога можно только с помощью программы, не входящей в состав пакета MapInfo, такой, как программа Microsoft Spy++ из пакета компилятора C.

Изменное состояние элементов диалога и значения, присвоенные оператором Alter MapInfoDialog, сохраняются, только если пользователь закрыл диалог с подтверждением (кнопкой "OK" или "Да").

Справочник MapBasic

23

Оператор Alter MapInfoDialog

Например, Вы используете оператор Alter MapInfoDialog для помещения адреса в диалог "Найти", но MapInfo не выполнит поиск, пока Вы не откроете диалог и пользователь не нажмет на кнопку "OK".

Возможные виды изменений

Ключевое слово Disable используется для того, чтобы сделать элемент недоступным для пользователя (в диалоге элемент закрашивается серым цветом).

Ключевое слово Hide прячет элемет, делает его невидимым.

Предложение Value изменяет значение элемента.

Если Вы вносите изменения в общесистемный диалог (например, "Открыть таблицу"), то можете изменить выбор в поле со списком (combo box), или Вы можете изменить текст подписи (static text), кнопки или в текстовом окошке. Вы можете изменить положение элементов в диалоге "Настройка печати"; кнопкам “Книжная” и “Альбомная” соответствуют числа 1056 и 1057 соответственно. Однако, в 16–битной версии MapInfo, если пользователь подключает разные принтеры, диалог "Настройка печати" может быть изменен некорректно.

Если Вы изменяете другой диалог MapInfo, то следующий список приводит виды изменений, которые Вы можете в нем сделать:

Кнопка, подпись (static text), текстовое окошко, окошко со списком (editable combo box):

можно менять текст, задавая новый текст параметром new_value.

Список (list box), окошко со списком (combo box): можно менять выбор в списке, задавая номер элемента списка в параметре new_value.

Флажок: можно устанавливать (значение new_value равно 1) или сбрасывать (значение new_value равно 0).

Переключатель: можно менять выбор кнопки, задавая номер в параметре new_value 0 (не выбрана) или 1 (выбрана).

Кнопка стиля символа: можно менять установку стиля символа (например, используя вызов функции MakeSymbol(_)).

Кнопка стиля линии: можно менять установку стиля линии.

Кнопка стиля штриха: можно менять установку стиля заливки.

Кнопка стиля шрифта: можно менять установку стиля шрифта.

Кнопка стиля оформления области (линия/штрих): можно задать новое значение стиля линии или стиля штриха.

Пример:

Следующий фрагмент вносит в диалог "Найти" текстовую строку с адресом (“Волхонка 13”) в поле первого окна и прячет кнопку "Снова".

If

SystemInfo(SYS_INFO_MIVERSION) = 400 Then

Alter MapInfoDialog 2202

 

Control 5 Value ”Волхонка 13”

 

Control 12 Hide

End

If

Run

Menu Command M_ANALYZE_FIND

Идентификатор окна "Найти" – 2202. Control 5 ссылается на текстовое поле, в которое вводится

24

Справочник MapBasic

Оператор Alter MapInfoDialog

адрес для поиска. Control 12 – ссылается на кнопку"Снова". Все эти номера в будущей версии MapInfo будут изменены. Поэтому используется функция SystemInfo(_) для определения версии программы, в которой выполняется это приложение.

Смотрите также:

Alter Control, Dialog

Справочник MapBasic

25

Оператор Alter Menu

Оператор Alter Menu

Назначение:

Добавляет элемент в список одного из существующих меню в окне MapInfo или убирает существующий элемент из списка меню.

Синтаксис (вариант 1):

Alter Menu { menuname | ID menu_id } Add menudef [, menudef... ]

где

menuname – заголовок меню;

menu_id – целочисленный идентификатор меню от одного до пятнадцати, где единица представляет меню ФАЙЛ;

menudef – идентификатор элемента списка меню, который имеет следующий синтаксис:

newmenuitem

[ ID menu_item_id ] [ HelpMsg help ]

[ { Calling handler | As menuname } ]

где

newmenuitem – строковая величина, имя нового элемента списка меню;

menu_item_id – целочисленный идентификатор элемента меню, который может быть использован в дальнейшем оператором Alter Menu Item;

help – строковая величина, текст которой будет показываться в строке сообщений, когда элемент меню будет выбран (подсвечен);

handler – имя sub-процедуры обработчика или командный код, имена для которых определены в файле MENU.DEF (например, M_FILE_NEW) или же специальный код обработки события выбора меню механизмами OLE или DDE. Особенности последнего способа обработки см. в описании оператора Create Menu.

Синтаксис (вариант 2):

Alter Menu { menuname | ID menu_id }

Remove { handler | submenuname | ID menu_item_id }

[, { handler | submenuname | ID menu_item_id } ... ]

где

menuname – заголовок уже определенного меню;

menu_id – целочисленный идентификатор меню от 1 до 22, где единица представляет меню ФАЙЛ; handler – имя sub-процедуры обработчика или код для стандартной команды MapInfo; submenuname – заголовок подменю, иерархически подчиненного menuname;

menu_item_id – целочисленный идентификатор элемента меню, который может быть использован в дальнейшем оператором Alter Menu Item.

Описание:

Оператор Alter Menu добавляет или убирает элемент в списке меню (или подменю) menuname.

Элемент меню в операторе может быть идентифицирован его именем (например, "File" или "Файл"). Набор стандартных имен зависит от языковой версии MapInfo; оператор Alter Menu использует имена, соответствующие языковой версии. Поэтому, если Вы планируете использовать Вашу

26

Справочник MapBasic

Оператор Alter Menu

прикладную программу в MapInfo другой языковой версии, используйте вместо имени номер, задаваемый предложением ID. Значения параметра menu_id от одного до двадцати двух соответствуют заголовкам стандартного меню MapInfo: 1 соответствует меню ФАЙЛ и т. д.

Ниже приводится таблица с именами стандартной системы меню MapInfo и соответствующими им значениями идентификатора menu_id. Внимание: меню с 16 по 22 – это быстрые меню, которые появляются при нажатии на правую кнопку мыши. Быстрые меню доступны только в Windows.

Имя меню

Описание и идентификатор

 

 

"Файл"

Стандартное меню ФАЙЛ (ID 1)

 

 

 

 

"Правка"

Стандартное меню ПРАВКА (ID 2)

 

 

 

 

"Объекты"

Стандартное меню ОБЪЕКТЫ (ID 14)

 

 

"Запрос"

Стандартное меню ЗАПРОС (ID 3)

 

 

"Таблица"

Стандартное меню ТАБЛИЦА (ID 15)

 

 

"Настройки"

Стандартное меню НАСТРОЙКИ (ID 5)

 

 

"Окно"

Стандартное меню ОКНО (ID 6)

 

 

"Справка"

Стандартное меню СПРАВКА (ID 7)

 

 

"Список"

Меню СПИСОК (ID 8). Используется, когда активно окно Списка.

 

 

 

Смотрите имя "WinSpecific".

 

 

"Карта"

Меню КАРТА (ID 9). Используется, когда активно окно Карты.

 

 

"График"

Меню ГРАФИК (ID 11). Используется, когда активно окно Графика.

 

 

"Отчет"

Меню ОТЧЕТ (ID 10). Используется, когда активно окно Отчета.

 

 

"Геогруппы"

Меню РАЙОНИРОВАНИЕ (ID 13). Используется, когда активно окно

 

 

 

Районирование.

 

 

"MapBasic"

Меню MAPBASIC (ID 12). Используется, когда активно окно MapBasic.

 

 

"Программы"

Меню ПРОГРАММЫ (ID 4). Предлагается для помещения в него команд,

 

 

 

задаваемых в программах, таких как SCALEBAR.

 

 

"WinSpecific"

Имя, обозначающее меню, соответствующее открытому окну: "Карта",

 

 

 

"График", "Список", "Отчет", "MapBasic" или "Справка".

 

 

"Растр"

Это меню в стандартном варианте иерархически подчинено меню

 

 

 

ТАБЛИЦА.

 

 

"Изменить"

Это меню в стандартном варианте иерархически подчинено меню

 

 

 

ТАБЛИЦА.

 

 

“DefaultShortcut”

Стандарное быстрое меню. Это меню появляется при нажатии правой

 

 

 

кнопки мыши на окне, не имеющем своего быстрого меню (ID 16) .

 

 

“MapperShortcut”

Быстрое меню для окна Карты (ID 17) .

 

 

Справочник MapBasic

27

Оператор Alter Menu

“BrowserShortcut”

Быстрое меню для окна Списка (ID 18) .

“LayoutShortcut”

Быстрое меню для окна Отчета (ID 19) .

“GrapherShortcut”

Быстрое меню для окна Графика (ID 20) .

“CmdShortcut”

Быстрое меню для окна MapBasic (ID 21) .

“RedistrictShortcut”

Быстрое меню для окна Районирование (ID 22) .

Пример 1:

Добавим в список меню ФАЙЛ новую команду:

Alter Menu "Файл" Add

"Специальная команда" Calling sub_procedure_name

Пример 2:

Следующий фрагмент делает то же самое, что и предыдущий пример, только используется идентификатор меню.

Alter Menu ID 1 Add

"Специальная команда" Calling sub_procedure_name

Пример 3:

Теперь добавим назначение идентификатора для команды, который позже можно будет использовать в операторе Alter Menu Item.

Alter Menu ID 1 Add

"Специальная команда" ID 300 Calling sub_procedure_name

Пример 4:

Следующий пример удаляет определенный элемент списка, который был создан ранее.

Alter Menu ID 1 Remove sub_procedure_name

Пример 5:

Программа TEXTBOX использует оператор Create Menu для создания меню “Рамка,” и оператор Alter Menu для добавления его в качестве иерархически подчиненного в меню "Программы":

Alter Menu ”Программы” Add

”( ”,

”Рамка” As ”Рамка”

Пример 6:

В следующем примере добавляется новая команда в быстрое меню для окна Карты (это меню появляется при нажатии на вторую кнопку мыши).

Alter Menu ID 17 Add

”Поиск ближайшего города” Calling sub_procedure_name

Смотрите также:

Alter Menu Bar, Alter Menu Item, Create Menu, Create Menu Bar

28

Справочник MapBasic

Оператор Alter Menu Bar

Оператор Alter Menu Bar

Назначение:

Добавляет или удаляет заголовки меню в строку меню окна MapInfo.

Синтаксис:

Alter Menu Bar { Add | Remove }

{ menuname | ID menu_id }

[, { menuname | ID menu_id } ... ]

где

menuname – имя меню (например, "Файл");

menu_id – целочисленный идентификатор меню от 1 до 22, где единица представляет меню ФАЙЛ.

Описание:

Оператор Alter Menu Bar добавляет или убирает один или более заголовков меню в строку меню. Заголовок меню – это слово, представляющее группу команд MapInfo. Указав на это слово, пользователь открывает список меню, состоящий из команд, имен подменю и элементов оформления (например, черта, разделяющая список на части).

Параметр menuname может быть строкой или выражением строкового типа, результатом которого является имя одного из стандартных меню в MapInfo (например, "Файл" или "Правка"). Параметр menuname может быть также именем меню, созданного оператором Create Menu (смотрите примеры).

Меню может быть также определено специальным идентификатором. Например, предложение ID 2 задает меню ПРАВКА.

Заметим, что набор стандартных имен зависит от языковой версии; оператор Alter Menu использует имена, соответствующие языковой версии. Поэтому, если Вы планируете использовать Вашу прикладную программу в MapInfo другой языковой версии, используйте вместо имени номер, задаваемый предложением ID. Значения параметра menu_id от 1 до 22 соответствуют заголовкам стандартного меню MapInfo: 1 соответствует меню ФАЙЛ и т. д.

Список имен стандартной системы меню MapInfo и соответствующих им значений идентификатора menu_id приведен в разделе, описывающем оператор Alter Menu.

Как добавить меню

Оператор Alter Menu Bar Add... добавляет заголовок меню в строку меню с правого края. Если Вам необходимо вставить меню в определенное место в строке меню, то для переопределения строки меню выполните оператор Create Menu Bar.

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

Как убрать меню

Оператор Alter Menu Bar Remove... удаляет заголовок из строки меню. При этом меню не пропадает и может быть в любой момент восстановлено так, как показано ниже. Следующая пара операторов сначала удаляет меню ЗАПРОС из строки меню, а затем помещает ее снова туда крайним справа:

Alter Menu Bar Remove "Запрос"

Alter Menu Bar Add "Запрос"

Справочник MapBasic

29

Оператор Alter Menu Bar

После того, как оператор Alter Menu Bar Remove... удалит меню, MapInfo отменяет все клавишные сокращения, ранее назначенные командам, которые находились в удаленном списке меню. Например, если Вы удалите меню ФАЙЛ, то клавишное сокращение Ctrl+O больше не будет вызывать команду ОТКРЫТЬ ТАБЛИЦУ.

Пример:

Создается меню ДАННЫЕ, содержащее три команды, и затем оператором Alter Menu Bar Add добавляется в строку заголовков меню MapInfo.

Declare Sub addsub

Declare Sub editsub

Declare Sub delsub

Create Menu "Данные" As

"Добавить" Calling addsub, "Правка" Calling editsub, "Удалить" Calling delsub

'Удаляются меню Окно и Справка...

Alter Menu Bar Remove ID 6, ID 7

'Добавляется меню Данные, а затем восстанавливаются ‘ меню Окно и Справка

Alter Menu Bar Add "Данные", ID 6, ID 7

Перед тем как поместить заголовок созданного меню в строку меню, эта программа сначала удаляет меню ОКНО (идентификатор 6) и меню СПРАВКА (идентификатор 7). Затем в правый конец строки меню добавляется сначала заголовок меню ДАННЫЕ, а затем меню ОКНО и СПРАВКА. Тем, что в примере меню сначала удаляется, а потом восстанавливается, соблюдается соглашение, что меню Справочной системы всегда должно быть последним справа.

Смотрите также:

Alter Menu, Alter Menu Item, Create Menu, Create Menu Bar, Menu Bar Hide, Menu_Bar Show

30

Справочник MapBasic

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]