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

Оператор Terminate Application

Оператор Terminate Application

Назначение:

Закрывает другие выполняющиеся программы MapBasic или программы MapBasic, находящиеся в состоянии ожидания.

Синтаксис:

Terminate Application app_name

где

app_name – строковая величина с именем работающей программы (например, "scalebar.mbx")

Описание:

Если прикладная программа создает свои меню, инструментальные панели, то она сама не завершается, а остается загруженной в режиме ожидания событий, которые надо обработать (пользователь выполняет команду, нажимает на кнопки, созданные прикладной программой и т. д.). Чтобы закрыть программу, находящуюся в режиме ожидания, в другой программе используется оператор Terminate Application. Например, если во время отладочного процесса Вам необходимо закрыть программу, находящуюся в режиме ожидания, выполните оператор

Terminate Application в окне MapBasic.

Ваша прикладная программа может запустить другую прикладную программу, используя оператор Run Application, она же может и завершить его оператором Terminate Application.

Заметим, что оператор Terminate Application используется для завершения только других прикладных программ, а для завершения самой программы используется оператор End Pro4 gram.

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

End Program, Run Application

574

Справочник MapBasic

Функция Time()

Функция Time()

Назначение:

Возвращает текущее системное время в строковом формате. Время может быть в 12Lи часовом или 24Lчасовом формате.

Синтаксис:

StringVar=Time (Format)

Описание:

StringVar L это строковая переменная, возвращающая системное время в формате ЧЧ:ММ:СС.

Справочник MapBasic

575

Функция Timer( )

Функция Timer( )

Назначение:

Возвращает число секунд.

Синтаксис:

Timer( )

Величина, полученная в результате:

Целое число. Величина типа Integer.

Описание:

Функция Timer( ) возвращает число секунд, прошедших с полуночи первого января 1970 года. Вы можете вызывать функцию Timer( ) до и после какойLлибо операции, чтобы узнать, сколько времени в секундах она выполняется.

Пример:

Declare Sub Ubi

Dim start, elapsed As Integer start = Timer( )

Call Ubi

elapsed = Timer( ) – start

'

'Переменная elapsed содержит время выполнения

'подпрограммы Ubi

'

576

Справочник MapBasic

Процедура ToolHandler

Процедура ToolHandler

Назначение:

Специальная процедура для обеспечения работы со специальной инструментальной кнопкой (инструмент MapBasic ).

Синтаксис:

Declare Sub ToolHandler Sub ToolHandler

statement_list

End Sub

где

statement_list – список операторов, выполняющихся при выборе пользователем инструмента MapBasic.

Описание:

ToolHandler – зарезервированное имя для процедуры MapBasic. Процедура работает совместно с инструментом MapBasic.

Одним из простых способов создания своей кнопки на инструментальной панели "Операции", является специальная процедура ToolHandler. Однако, представление кнопки, связанной с процедурой ToolHandler, имеет некоторые ограничения. Вы не можете использовать произвольную картинку для кнопки или назначить свой режим рисования этой кнопке. Для создания кнопок, не имеющих этих ограничений, используются операторы Alter ButtonPad и Create ButtonPad.

Если пользователь запустил программу, которая имеет процедуру ToolHandler, то на инструментальной панели "Операции" появляется кнопка, на которой изображен знак плюс. Эта кнопка называется инструментом MapBasic. Инструмент может использоваться в активном окне Списка, Карты или Отчета. Как только пользователь указал инструментом MapBasic в область окна Списка, Карты или Отчета, MapBasic автоматически запускает на выполнение процедуру ToolHandler.

В процедуре ToolHandler может быть использована функция CommandInfo( ) для распознавания идентификатора окна, на которое было указано. Если инструмент был использован в окне Списка, функция CommandInfo( ) может также дать информацию о строке и колонке, на которые указал инструмент. Если инструмент был использован в окне Карты, функцию CommandInfo( ) можно использовать для получения координат указанной точки в текущей системе координат (смотрите оператор Set CoordSys). Если инструмент был использован в окне Отчета, функция CommandInfo( ) поможет Вам получить координаты точки на листе (т. е. расстояния от верхнего и левого края листа), в которой находился указатель мышки, когда Вы нажали на кнопку мыши. Координаты на листе Отчета возвращаются в текущих единицах измерения, которые устанавливаются оператором Set Paper Units.

Функция CommandInfo( ) также может определить, была ли нажата клавиша SHIFT или CTRL или обе вместе, когда пользователь указывал на окно Списка, Карты или Отчета инструментом MapBasic. Это позволит Вам определить по крайней мере четыре варианта действий для разных способов использования инструмента.

Справочник MapBasic

577

Процедура ToolHandler

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

Run Menu Command M_TOOLS_MAPBASIC

Когда пользователь запускает программу, в которой есть процедура ToolHandler, программа не завершается после того, как выполнятся все операторы процедуры Main и других процедур, вызванных из нее. Программа будет пребывать в режиме ожидания до тех пор, пока не будет выбран инструмент MapBasic и применен в окне Списка, Карты или Отчета. Программа автоматически начнет выполнение процедуры ToolHandler. Когда процедура закончит свои действия, прикладная программа вновь переходит в режим ожидания. И так всякий раз при новом применении инструмента.

Для завершения программы в процедуре ToolHandler используется оператор End Program. При этом полностью освобождается память, занимаемая всей прикладной программой, кнопка инструмента убирается с панели. Поэтому, если Вам снова понадобятся функции, выполняемые инструментом MapBasic, не используйте этот оператор в процедуре ToolHandler, и оставьте программу в режиме ожидания до нового выбора инструмента.

В процедуре ToolHandler, в зависимости от окна, в котором будет использован инструмент, должен использоваться оператор Set CoordSys перед распознаванием координат выбранной инструментом точки в окне. Если инструмент MapBasic используется в окне Списка, то оператор Set CoordSys не нужен. Перед распознаванием координат точки в окне Отчета в процедуре ToolHandler используется вариант Set CoordSys Layout.

Если пользователь указал на точку Карты, и координатная система Карты не совпадает с координатной системой, принятой в прикладной программе, то процедура ToolHandler должна выполнить либо оператор Set CoordSys Earth, либо Set CoordSys NonEarth перед тем, как определять координаты выбранной точки.

Пример:

Следующий фрагмент программы тестирует инструмент MapBasic. При запуске программы сначала открывается окно сообщений, приглашающее пользователя выбрать инструмент MapL Basic. Когда инструмент будет выбран, процедура ToolHandler будет выдавать сообщения о координатах каждой выбранной точки в окнах Карт, Списков, Отчетов.

Include "MAPBASIC.DEF"

Declare Sub ToolHandler

Note "Инструмент MapBasic готов для проверки."

Sub ToolHandler

Note "x:" + Round(CommandInfo(CMD_INFO_X), 0.1) + Chr$(13) +

" y:" + Round(CommandInfo(CMD_INFO_Y), 0.1) End Sub

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

CommandInfo( )

578

Справочник MapBasic

Функция TriggerControl( )

Функция TriggerControl( )

Назначение:

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

Синтаксис:

TriggerControl( )

Величина, полученная в результате:

Целое число. Величина типа Integer.

Описание:

Функция TriggerControl( ) используется только внутри процедурыLобработчика диалога, построенного при помощи оператора Dialog. Функция возвращает номер элемента диалога, который был присвоен ему при создании диалога параметром из предложения ID.

Каждый элемент диалога может вызывать процедуруLобработчик. Это могут быть разные процедуры, а может быть так, что несколько элементов содержат вызов одного и того же обработчика. В последнем случае имеет смысл определить, какой именно элемент диалога был выбран пользователем.

Ошибки:

В результате выполнения функции может генерироваться код ошибки: ERR_INVALID_TRIG_CONTROL, если функция вызвана не при активном диалоге.

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

Alter Control, Dialog, Dialog Preserve, Dialog Remove, ReadControlValue( )

Справочник MapBasic

579

Функция TrueFileName$( )

Функция TrueFileName$( )

Назначение:

Возвращает полное имя файла на основе его неполной спецификации.

Синтаксис:

TrueFileName$(file_spec)

где

file_spec – строковая величина с неполной спецификацией файла (например, в Windows "C:parL cels.tab")

Описание:

Функция TrueFileName$( ) возвращает полную спецификацию файла (полное имя диска, все каталоги или папки и имя файла), используя неполную.

Например, в DOS следующий файл специфицирован частично (есть имя диска и имя файла, но нет каталогов, образующих маршрут):

"C:parcels.tab"

Если текущий каталог на диске C: является \MAPINFO\DATA, то функция TrueFile4 Name$("C:parcels.tab") вернет следующую строку:

"C:\mapinfo\data\parcels.tab"

Функцию TrueFileName$( ) удобно использовать в программе, которая подсказывает пользователю спецификацию для его файла на диске. Например, в диалоге перед сохранением файла.

Функция TrueFileName$( ) не подтверждает наличие файла с таким именем, а только составляет полную спецификацию для файла, такую, какую бы он мог иметь. Для определения существования файла на диске используйте функцию FileExists( ).

580

Справочник MapBasic

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