- •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( )
Оператор Save Workspace
Оператор Save Workspace
Назначение:
Создает файл Рабочего Набора с текущим состоянием рабочего окна MapInfo.
Синтаксис:
Save Workspace As filespec
где
filespec – строка с именем Рабочего Набора.
Описание:
Оператор Save Workspace создает Рабочий Набор по текущему состоянию программы MapInfo. Действие оператора аналогично действию команды ФАЙЛ > СОХРАНИТЬ РАБОЧИЙ НАБОР, с тем исключением, что оператор не выводит диалог на экран.
Для загрузки существующего Рабочего Набора используйте оператор Run Application.
Пример:
Save Workspace As ”market.wor”
Смотрите также:
Run Application
460 |
Справочник MapBasic |
Функция SearchInfo( )
Функция SearchInfo( )
Назначение:
Возвращает информацию о результатах поиска, сделанного функцией SearchPoint( ) или
SearchRect( ).
Синтаксис:
SearchInfo(sequence_number, attribute )
где
sequence_number – целое число от 1 до количества найденных объектов; attribute – короткое целое число, код результата функции.
Величина, полученная в результате:
Строка или целое число. Тип зависит от значения параметра attribute.
Описание:
После вызова функции SearchPoint( ) или SearchRect( ), осуществляющих поиск объектов на Карте, функция SearchInfo( ) обрабатывает результаты поиска.
Параметр sequence_number должен принимать значения от 1 и более. Максимальное значение для этого параметра равняется результату функции SearchPoint( ) или SearchRect( ).
Параметр attribute должен принимать значение одного из кодов, имена для которых заданы в файле стандартных определений MAPBASIC.DEF:
Значение attribute |
Результат: |
SEARCH_INFO_TABLE |
Строка, величина типа String: имя таблицы, содержащей этот |
|
объект. Если объект пренадлежит Косметическому слою, то строка |
|
будет равна “CosmeticN” (где N – число от 1 и более). |
SEARCH_INFO_ROW |
Целое число, величина типа Integer: номер записи. Этот номер Вы |
|
можете использовать в операторе Fetch или в предложении Where |
|
оператора Select. |
Использовать имена кодов в программе Вы можете, включив в текст Вашей программы оператор Include "MAPBASIC.DEF".
Результаты поиска хранятся в памяти до тех пор, пока выполняется программа или до следующего поиска. Результаты поиска не будут удалены из памяти, если пользователь закроет окно или таблицу, в которых осуществлялся поиск; поэтому не надо затягивать с обработкой результатов поиска. Чтобы форсировать удаление результатов поиска из памяти, проведите поиск, который обязательно ничего не найдет (например, поиск по координатам 0, 0).
MapInfo поддерживает отдельные наборы значений для результатов поиска для каждой действующей MapBasic-программы, а также набор для результатов поиска самой программы MapInfo (для команд, введенных из окна MapBasic).
Справочник MapBasic |
461 |
Функция SearchInfo( )
Ошибки:
В результате выполнения функции может генерироваться код ошибки ERR_FCN_ARG_RANGE, если значение параметра sequence_number больше числа найденных объектов.
Пример:
Следующая программа создает кнопки для двух инструментов. Если пользователь пользуется точечным инструментом, то программа вызывает функцию SearchPoint( ); если пользователь рисует рамки, то программа вызывает функцию SearchRect( ). В каждом случае программа использует функцию SearchInfo( ) для определения того, какие объекты попались пользователю.
Include ”mapbasic.def”
Include ”icons.def”
Declare Sub Main
Declare Sub tool_sub
Sub Main
Create ButtonPad ”Поиск” As
ToolButton Calling tool_sub ID 1
Icon MI_ICON_ARROW
Cursor MI_CURSOR_ARROW
DrawMode DM_CUSTOM_POINT
HelpMsg ”Укажите мышкой на Карту\nПоиск в точке”
Separator
ToolButton Calling tool_sub ID 2
Icon MI_ICON_SEARCH_RECT
Cursor MI_CURSOR_FINGER_LEFT
DrawMode DM_CUSTOM_RECT
HelpMsg ”Нарисуйте прямоугольник на Карте\nПоиск в рамке”
Width 3
Print ”Работает программа поиска.”
Print ”Выберите инструмент из панели Поиск”
Print ”и укажите на Карту.”
End Sub
Sub tool_sub
’Эта процедура вызывается, если пользователь действует
’одним из инструментов из панели Поиск.
Dim x, y, x2, y2 As Float,
i, i_found, i_row_id, i_win_id As Integer, s_table As Alias
|
i_win_id = FrontWindow() |
|
If WindowInfo(i_win_id, WIN_INFO_TYPE) <> WIN_MAPPER Then |
|
Note ”Этот инструмент работает только в окне Карты.” |
|
Exit Sub |
|
End If |
462 |
Справочник MapBasic |
Функция SearchInfo( )
’ Определяем начальную точку действия инструмента. x = CommandInfo(CMD_INFO_X)
y = CommandInfo(CMD_INFO_Y)
If CommandInfo(CMD_INFO_TOOLBTN) = 1 Then
’случай, когда действует точечный инструмент.
’определяем, сколько объектов содержат данную точку. i_found = SearchPoint(i_win_id, x, y)
Else
’случай, когда действует инструмент, рисующий рамку.
’определяем, сколько объектов содержатся в рамке. x2 = CommandInfo(CMD_INFO_X2)
y2 = CommandInfo(CMD_INFO_y2)
i_found = SearchRect(i_win_id, x, y, x2, y2)
End If
If i_found = 0 Then
Beep ’ Объектов в этом месте нет.
Else
Print Chr$(12)
If CommandInfo(CMD_INFO_TOOLBTN) = 2 Then
Print ”Прямоугольник: x1= ” + x + ”, y1= ” + y
Print ”x2= ” + x2 + ”, y2= ” + y2
Else
Print ”Точка: x=” + x + ”, y= ” + y
End If
’ Обработка результатов поиска. For i = 1 to i_found
’Определяем имя таблицы, содержащей найденный объект. s_table = SearchInfo(i, SEARCH_INFO_TABLE)
’Определяем номер записи, содержащей найденный объект. i_row_id = SearchInfo(i, SEARCH_INFO_ROW)
If Left$(s_table, 8) = ”Cosmetic” Then
Print ”Объект на Косметическом слое”
Else
’ извлекаем строку таблицы, содержащую объект.
Fetch rec i_row_id From s_table
s_table = s_table + ”.col1”
Print s_table
End If
Next
End If
End Sub
Смотрите также:
SearchPoint( ), SearchRect( )
Справочник MapBasic |
463 |
Функция SearchPoint( )
Функция SearchPoint( )
Назначение:
Ищет объекты в заданной точке Карты.
Синтаксис:
SearchPoint(map_window_id, x, y )
где
map_window_id – идентификатор окна Карты; x – координата по оси X (например, долгота); y – координата по оси Y (например, широта).
Величина, полученная в результате:
Целое число. Величина типа Integer.
Описание:
Функция SearchPoint( ) осуществляет поиск объектов в заданной точке Карты и возвращает количество найденых объектов. Поиск проводится по всем доступным слоям окна Карты, включая Косметический слой, если для него установлен режим доступности.
Функция не выбирает найденые объекты и не отменяет текущего выбора. Функция помещает список выбранных объектов в оперативную память. Для чтения этого списка используется функция SearchInfo( ), вызываемая после выполнения функции SearchPoint( ).
Поиск имеет небольшой допуск, аналогичный допуску при действии инструмента Информация. Точки и линейные объекты, расположенные слишком близко к месту указания мышкой, считаются “найдеными”, даже если координаты нажатия кнопки мышки не совпадают с точкой или ложатся непосредственно на линию.
Для того, чтобы пользователь мог осуществить выбор точки на карте при помощи мышки, можно использовать оператор Create ButtonPad или Alter ButtonPad для создания нового инструмента. Используйте код DM_CUSTOM_POINT как код рисования “точечным” инструментом. В обработчике инструмента используйте вызов функции CommandInfo( ) для определения координат точки, которую пользователь задал новым инструментом.
Пример:
Смотрите пример в описании функции SearchInfo( ).
Смотрите также:
SearchInfo( ), SearchRect( )
464 |
Справочник MapBasic |
Функция SearchRect( )
Функция SearchRect( )
Назначение:
Ищет объекты на Карте в заданном прямоугольнике (рамке).
Синтаксис:
SearchRect(map_window_id, x1, y1, x2, y2 )
где
map_window_id – идентификатор окна Карты;
x1 и y1 – координаты, задающие один из углов прямоугольника;
x2 и y2 – координаты, задающие противоположный по диагонали угол прямоугольника.
Величина, полученная в результате:
Целое число. Величина типа Integer.
Описание:
Функция SearchRect( ) осуществляет поиск объектов в заданном прямоугольнике в окне Карты и возвращает количество найденых объектов. Поиск осуществляется по всем доступным слоям окна Карты, включая Косметический слой, если для него установлен режим доступности.
Функция не выбирает найденные объекты и не отменяет текущего выбора. Функция помещает список выбранных объектов в оперативную память. Для чтения этого списка используется функция SearchInfo( ), вызываемая после выполнения функции SearchRect( ).
Механизм поиска работает аналогично механизму инструмента MapInfo Выбор-в-Рамке: если центроид объекта попадает в прямоугольник, то объект включается в список найденных.
Для того, чтобы пользователь мог задавать прямоугольник на Карте при помощи мышки, можно использовать оператор Create ButtonPad или Alter ButtonPad для создания нового инструмента. Используйте код DM_CUSTOM_RECT как код рисования “рамочным” инструментом. В обработчике инструмента используйте вызов функции CommandInfo( ) для определения координат прямоугольника, который пользователь задал новым инструментом.
Пример:
Смотрите пример в описании функции SearchInfo( ).
Смотрите также:
SearchInfo( ), SearchPoint( )
Справочник MapBasic |
465 |
Функция Seek( )
Функция Seek( )
Назначение:
Возвращает текущую позицию в файле для операций ввода/вывода.
Синтаксис:
Seek(filenum)
где
filenum – номер открытого файла, целое число.
Величина, полученная в результате:
Целое число. Величина типа Integer.
Описание:
Функция Seek( ) возвращает текущую позицию в открытом файле для операций ввода/вывода.
Значение параметра file должно быть номером файла, под которым он был открыт оператором
Open File.
Результатом функции Seek( ) будет целое число. Если файл был открыт в режиме прямого доступа, Seek( ) вернет номер записи (запись, которая будет прочитана или записана). Если файл открыт в двоичном режиме, функция вернет номер байта, который будет прочитан или записан следующей операцией ввода/вывода.
Ошибки:
В результате выполнения функции может генерироваться код ошибки ERR_FILEMGR_NOTOPEN, если файл не был открыт.
Смотрите также:
Get, Open File, Put, Seek
466 |
Справочник MapBasic |