- •Add Cartographic Frame
- •Оператор Alter Button
- •Оператор Alter ButtonPad
- •Оператор Alter MapInfoDialog
- •Оператор Alter Menu
- •Оператор Alter Menu Item
- •Оператор Alter Object
- •Оператор Alter Table
- •Оператор Autolabel
- •Оператор Beep
- •Оператор Browse
- •Предложение Brush
- •Оператор Call
- •Предложение CharSet
- •Функция ChooseProjection$()
- •Оператор Close All
- •Оператор Close File
- •Оператор Close Table
- •Оператор Close Window
- •Оператор Commit Table
- •Оператор Continue
- •Предложение Control CheckBox
- •Предложение Control EditText
- •Предложение Control GroupBox
- •Предложение Control RadioGroup
- •Оператор Create Arc
- •Оператор Create ButtonPad
- •Оператор Create ButtonPads As Default
- •Оператор Create Cartographic Legend
- •Оператор Create Collection
- •Оператор Create Ellipse
- •Оператор Create Frame
- •Оператор Create Grid
- •Оператор Create Index
- •Оператор Create Legend
- •Оператор Create Line
- •Оператор Create Map
- •Оператор Create Map3D
- •Оператор Create Menu
- •Оператор Create Menu Bar
- •Оператор Create MultiPoint
- •Оператор Create Point
- •Оператор Create PrismMap
- •Оператор Create Ranges
- •Оператор Create Rect
- •Оператор Create Redistricter
- •Оператор Create Region
- •Оператор Create Report From Table
- •Оператор Create RoundRect
- •Оператор Create Styles
- •Оператор Create Table
- •Оператор Create Text
- •Оператор DDEExecute
- •Оператор DDEPoke
- •Оператор DDETerminate
- •Оператор DDETerminateAll
- •Оператор Declare Function
- •Оператор Declare Sub
- •Оператор Define
- •Оператор Delete
- •Оператор Dialog
- •Оператор Dialog Preserve
- •Оператор Dialog Remove
- •Оператор Dim
- •Оператор Do Case...End Case
- •Оператор Do...Loop
- •Оператор Drop Index
- •Оператор Drop Map
- •Оператор Drop Table
- •Оператор End MapInfo
- •Оператор End Program
- •Процедура EndHandler
- •Оператор Error
- •Оператор Exit Do
- •Оператор Exit For
- •Оператор Exit Function
- •Оператор Exit Sub
- •Оператор Export
- •Оператор Fetch
- •Оператор Find
- •Оператор Find Using
- •Предложение Font
- •Процедура ForegroundTaskSwitchHandler
- •Функция FormatDate$
- •Оператор Function...End Function
- •Оператор Get
- •Оператор Graph
- •оператор Import
- •Оператор Include
- •Оператор Input #
- •Оператор Insert
- •Функция IsPenWidthPixels()
- •Оператор Kill
- •Оператор Line Input
- •Процедура Main
- •Оператор Map
- •Оператор Menu Bar
- •Оператор Metadata
- •Оператор Note
- •Оператор Objects Check
- •Оператор Objects Clean
- •Оператор Objects Combine
- •Оператор Objects Disaggregate
- •Оператор Objects Enclose
- •Оператор Objects Erase
- •Оператор Objects Intersect
- •Оператор Objects Overlay
- •Оператор Objects Snap
- •Оператор Objects Split
- •Оператор OnError
- •Оператор Open File
- •Оператор Open Table
- •Оператор Open Window
- •Предложение Pen
- •Функция PenPattern()
- •Функция PenWidthToPoints()
- •Функция PointsToPenWidth()
- •Оператор Print
- •Оператор PrintWin
- •Оператор ProgressBar
- •Оператор Put
- •Оператор Randomize
- •Оператор ReDim
- •Оператор Register Table
- •Оператор Reload Symbols
- •Процедура RemoteMapGenHandler
- •Процедура RemoteMsgHandler
- •Оператор Rename File
- •Оператор Rename Table
- •Оператор Reproject
- •Оператор Resume
- •Оператор Rollback
- •Оператор Run Application
- •Оператор Run Command
- •Оператор Run Menu Command
- •Оператор Run Program
- •Оператор Save File
- •Оператор Save Workspace
- •Оператор Seek
- •Процедура SelChangedHandler
- •Оператор Select
- •Оператор Server Begin Transaction
- •Оператор Server Bind Column
- •Оператор Server Close
- •Оператор Server Commit
- •Оператор Server Create Map
- •Оператор Server Create Table
- •Оператор Server Create Style
- •Оператор Server Disconnect
- •Оператор Server Fetch
- •Оператор Server Refresh
- •Оператор Server Rollback
- •Оператор Server Set Map
- •Оператор Set Application Window
- •Оператор Set Area Units
- •Оператор Set Browse
- •Оператор Set Cartographic Legend
- •Оператор Set Command Info
- •Оператор Set CoordSys
- •Оператор Set Date Window
- •Оператор Set Digitizer
- •Оператор Set Distance Units
- •Оператор Set Drag Threshold
- •Оператор Set Event Processing
- •Оператор Set File TimeOut
- •Оператор Set Format
- •Оператор Set Graph
- •Оператор Set Handler
- •Оператор Set Layout
- •Оператор Set Legend
- •Оператор Set Map
- •Оператор Set Map3D
- •Оператор Set Next Document
- •Оператор Set Paper Units
- •Оператор Set PrismMap
- •Оператор Set ProgressBars
- •Оператор Set Redistricter
- •Оператор Set Resolution
- •Оператор Set Shade
- •Оператор Set Table
- •Оператор Set Target
- •Оператор Set Window
- •Оператор Shade
- •Оператор StatusBar
- •Оператор Stop
- •Оператор Sub...End Sub
- •Предложение Symbol
- •Оператор Terminate Application
- •Функция Time()
- •Процедура ToolHandler
- •Оператор Type
- •Оператор UnDim
- •Оператор Unlink
- •Оператор Update
- •Оператор Update Window
- •Оператор While...Wend
- •Процедура WinChangedHandler
- •Процедура WinClosedHandler
- •Процедура WinFocusChangedHandler
- •Оператор Objects Move
- •Оператор Objects Offset
- •Функция Offset()
- •Функция SphericalOffset()
- •Функция SphericalOffsetXY()
- •Функция CartesianOffsetXY()
- •Функция LayerInfo( )
- •Оператор Register
- •Оператор Server Create Map
- •Функция TableInfo( )
Процедура 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 |
619 |
Процедура 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. При запуске программы сначала открывается окно сообщений, приглашающее пользователя выбрать инструмент MapBasic. Когда инструмент будет выбран, процедура 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( )
620 |
Справочник MapBasic |
Функция TriggerControl( )
Функция TriggerControl( )
Назначение:
Возвращает идентификатор элемента диалога, к которому пользователь обращался последним.
Синтаксис:
TriggerControl( )
Величина, полученная в результате:
Целое число. Величина типа Integer.
Описание:
Функция TriggerControl( ) используется только внутри процедуры-обработчика диалога, построенного при помощи оператора Dialog. Функция возвращает номер элемента диалога, который был присвоен ему при создании диалога параметром из предложения ID.
Каждый элемент диалога может вызывать процедуру-обработчик. Это могут быть разные процедуры, а может быть так, что несколько элементов содержат вызов одного и того же обработчика. В последнем случае имеет смысл определить, какой именно элемент диалога был выбран пользователем.
Ошибки:
В результате выполнения функции может генерироваться код ошибки: ERR_INVALID_TRIG_CONTROL, если функция вызвана не при активном диалоге.
Смотрите также:
Alter Control, Dialog, Dialog Preserve, Dialog Remove, ReadControlValue( )
Справочник MapBasic |
621 |
Функция TrueFileName$( )
Функция TrueFileName$( )
Назначение:
Возвращает полное имя файла на основе его неполной спецификации.
Синтаксис:
TrueFileName$(file_spec)
где
file_spec – строковая величина с неполной спецификацией файла (например, в Windows "C:parcels.tab")
Описание:
Функция TrueFileName$( ) возвращает полную спецификацию файла (полное имя диска, все каталоги или папки и имя файла), используя неполную.
Например, в DOS следующий файл специфицирован частично (есть имя диска и имя файла, но нет каталогов, образующих маршрут):
"C:parcels.tab"
Если текущий каталог на диске C: является \MAPINFO\DATA, то функция TrueFile Name$("C:parcels.tab") вернет следующую строку:
"C:\mapinfo\data\parcels.tab"
Функцию TrueFileName$( ) удобно использовать в программе, которая подсказывает пользователю спецификацию для его файла на диске. Например, в диалоге перед сохранением файла.
Функция TrueFileName$( ) не подтверждает наличие файла с таким именем, а только составляет полную спецификацию для файла, такую, какую бы он мог иметь. Для определения существования файла на диске используйте функцию FileExists( ).
622 |
Справочник MapBasic |