- •Оператор Add Column
- •Оператор Add Map
- •Оператор Alter Button
- •Оператор Alter ButtonPad
- •Оператор Alter Cartographic Frame
- •Оператор Alter Control
- •Оператор Alter MapInfoDialog
- •Оператор Alter Menu
- •Оператор Alter Menu Bar
- •Оператор Alter Menu Item
- •Оператор Alter Object
- •Оператор Alter Table
- •Оператор AutoLabel
- •Оператор Beep
- •Оператор Browse
- •Предложение Brush
- •Функция ButtonPadInfo( )
- •Оператор Call
- •Функция•CartesianArea( )
- •Функция CartesianBuffer( )
- •Функция CartesianDistance ( )
- •Функция CartesianObjectLen( )
- •Функция CartesianPerimeter( )
- •Функция Centroid( )
- •Предложение CharSet
- •Функция ChooseProjection$()
- •Оператор Close All
- •Оператор Close File
- •Оператор Close Table
- •Оператор Close Window
- •Функция CommandInfo()
- •Оператор Commit Table
- •Оператор Continue
- •Предложения Control Button / OKButton / CancelButton
- •Предложение Control CheckBox
- •Предложение Control EditText
- •Предложение Control GroupBox
- •Предложения Control ListBox / MultiListBox
- •Предложение Control PopupMenu
- •Предложение Control RadioGroup
- •Предложение Control StaticText
- •Функция ConvexHull( )
- •Предложение CoordSys
- •Оператор Create Arc
- •Оператор Create ButtonPad
- •Оператор Create ButtonPads As Default
- •Оператор Create Cartographic Legend
- •Функция CreateCircle( )
- •Оператор Create Ellipse
- •Оператор Create Frame
- •Оператор Create Grid
- •Оператор Create Index
- •Оператор Create Legend
- •Оператор Create Line
- •Оператор Create Map
- •Оператор Create Map3D
- •Оператор Create Menu
- •Оператор Create Menu Bar
- •Оператор Create Object
- •Оператор Create Pline
- •Оператор Create Point
- •Оператор Create Ranges
- •Оператор Create Rect
- •Оператор Create Redistricter
- •Оператор Create Region
- •Оператор Create Report From Table
- •Оператор Create RoundRect
- •Оператор Create Styles
- •Оператор Create Table
- •Оператор Create Text
- •Функция CreateText( )
- •Функция DateWindow( )
- •Оператор 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
- •Оператор For...Next
- •Процедура ForegroundTaskSwitchHandler
- •Функция FormatDate$
- •Оператор Function...End Function
- •Оператор Get
- •Оператор Global
- •Оператор Goto
- •Оператор Graph
- •Оператор If...Then
- •Оператор Import
- •Оператор Include
- •Оператор Input #
- •Оператор Insert
- •Функция Int( )
- •Функция IsPenWidthPixels()
- •Оператор Kill
- •Функция LabelFindByID( )
- •Функция LabelFindNext( )
- •Функция Labelinfo( )
- •Оператор Layout
- •Функция LegendFrameInfo( )
- •Функция LegendInfo( )
- •Функция LegendStyleInfo( )
- •Оператор Line Input
- •Процедура Main
- •Функция MakeCustomSymbol( )
- •Функция MakeFontSymbol( )
- •Оператор Map
- •Функция Map3dInfo( )
- •Оператор Menu Bar
- •Функция MenuitemInfoByID( )
- •Оператор Metadata
- •Оператор Note
- •Функция NumAllWindows( )
- •Оператор Objects Check
- •Оператор Objects Combine
- •Оператор Objects Enclose
- •Оператор Objects Erase
- •Оператор Objects Intersect
- •Оператор Objects Overlay
- •Оператор Objects Split
- •Оператор OnError
- •Оператор Open File
- •Оператор Open Report
- •Оператор Open Table
- •Оператор Open Window
- •Оператор Pack Table
- •Предложение Pen
- •Функция PenPattern()
- •Функция PenWidthToPoints()
- •Функция PointsToPenWidth()
- •Оператор Print
- •Оператор Print #
- •Оператор PrintWin
- •Оператор ProgressBar
- •Оператор Put
- •Оператор Randomize
- •Оператор ReDim
- •Оператор Register Table
- •Оператор Reload Symbols
- •Процедура RemoteMapGenHandler
- •Процедура RemoteMsgHandler
- •Оператор Remove Cartographic Frame
- •Оператор Remove Map
- •Оператор Rename File
- •Оператор Rename Table
- •Оператор Reproject
- •Оператор Resume
- •Оператор Rollback
- •Оператор Run Application
- •Оператор Run Command
- •Оператор Run Menu Command
- •Оператор Run Program
- •Оператор Save File
- •Оператор Save Window
- •Оператор Save Workspace
- •Оператор Seek
- •Процедура SelChangedHandler
- •Оператор Select
- •Оператор Server Begin Transaction
- •Оператор Server Bind Column
- •Оператор Server Close
- •Функция Server_ColumnInfo( )
- •Оператор Server Commit
- •Функция Server_Connect( )
- •Оператор Server Create Map
- •Оператор Server Disconnect
- •Функция Server_DriverInfo( )
- •Функция Server_EOT( )
- •Функция Server_Execute( )
- •Оператор Server Fetch
- •Функция Server_GetodbcHConn( )
- •Функция Server_GetodbcHStmt( )
- •Оператор Server Link Table
- •Функция Server_NumCols( )
- •Функция Server_NumDrivers( )
- •Оператор 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 ProgressBars
- •Оператор Set Redistricter
- •Оператор Set Resolution
- •Оператор Set Shade
- •Оператор Set Style
- •Оператор Set Table
- •Оператор Set Target
- •Оператор Set Window
- •Оператор Shade
- •Оператор StatusBar
- •Оператор Stop
- •Функция StyleAttr( )
- •Оператор Sub...End Sub
- •Предложение Symbol
- •Оператор Terminate Application
- •Функция Time()
- •Процедура ToolHandler
- •Оператор Type
- •Оператор UnDim
- •Функция UnitAbbr$( )
- •Оператор Unlink
- •Оператор Update
- •Оператор Update Window
- •Оператор While...Wend
- •Процедура WinChangedHandler
- •Процедура WinClosedHandler
- •Процедура WinFocusChangedHandler
- •Оператор Write #
- •Приложение A: Таблица кодов символов
- •Приложение В: Арифметические и географические операторы
- •ИНДЕКС
Оператор Save File
Оператор Save File
Назначение:
Копирует файл.
Синтаксис:
Save File old_filespec As new_filespec [ Append ] где
old_filespec – строка с именем (и, если необходимо, с маршрутом) существующего на диске файла, который не должен быть открыт;
new_filespec – строка с именем (и, если необходимо, с маршрутом), с которым будет произведена копия; при этом файл с этим именем не должен быть открыт.
Описание:
Оператор Save File копирует файл. Файл при этом должен быть закрыт для операций ввода/ вывода.
Если в операторе используется ключевое слово Append и параметр new_filespec задает имя и маршрут уже существующего файла, то содержимое файла old_filespec будет дописано в конец файла new_filespec.
Не надо использовать оператор Save File для копирования файлов, являющихся компонентами таблицы (таких как filename.TAB, filename.MAP и т. п.). Для копирования таблиц правильно будет использовать оператор Commit Table... As.
Оператор Save File не может копировать файл сам в себя.
Пример:
Save File "settings.txt" As "settings.bak"
Смотрите также:
Kill, Rename File
420 |
Справочник MapBasic |
Оператор Save Window
Оператор Save Window
Назначение:
Создает файл с изображением из окна так, как это делает команда в MapInfo ФАЙЛ > ЭКСПОРТ ОКНА.
Синтаксис:
Save Window window_id |
|
|
As filespec |
|
|
Type filetype |
|
|
[ Width image_width |
[ Units paper_units ] |
] |
[ Height image_height [ Units paper_units ] |
] |
|
[ Copyright notice |
[ Font ... ] ] |
|
где |
|
|
window_id – задает идентификатор окна Карты, Отчета, Графика, Легенды, Статистики, Информации или Линейки (в качестве параметра можно использовать вызов функции
FrontWindow( ) или WindowID( )); filespec – строка, имя создаваемого файла;
filetype – строка, задающая один из форматов файла:
"BMP" – задает растровый формат Bitmap (используется только в Windows); "WMF" – задает формат метафайла в Windows (используется только в Windows);
"PICT" – задает растровый формат Macintosh PICT (используется только в Macintosh); “JPEG” – задает растровый формат JPEG;
“PNG” – задает растровый формат Portable Network Graphics; “TIFF” – задает растровый формат TIFF;
“PSD” – задает растровый формат Photoshop 3.0; image_width – число, задающее ширину в заданных единицах; image_height – число, задающее высоту в заданных единицах;
paper_units – строка, задающая единицу измерения (например, “cm” – сантиметры); notice – строка, задающая copyright; появляется внизу изображения .
Предложение Font указывает стиль текста.
Описание:
Оператор Save Window сохраняет изображение окна в файле. Действие оператора аналогично действию команды ФАЙЛ > ЭКСПОРТ ОКНА, с тем исключением, что оператор не выводит диалог на экран.
Параметр window_id должен быть целым числом, являющимся идентификатором окна. Для получения идентификатора открытого окна используются такие функции, как FrontWindow( )
и WindowID( ).
Размер изображения, полученного из окна Карты, Отчета или Графика, по умолчанию будет равен размеру самого окна. Размер изображения, полученного из окна Легенды, Информации, Статистики или Линейки, по умолчанию будет устанавливаться таким, чтобы показать в окне все данные. Вы можете определить свои размеры для экспортируемых изображений в предложениях Width и Height.
Справочник MapBasic |
421 |
Оператор Save Window
Настройка авторских прав (Copyright)
Чтобы включить текст авторских прав в нижнюю часть изображения, используйте дополнительное предложение Copyright. Смотрите пример ниже.
MapInfo ProServer автоматически включает текст авторских прав. Чтобы стереть текс авторских прав, задайте предложение Copyright с пустой строкой (“”).
Ошибки:
В случае нехватки места на диске при экспорте окна может быть зафиксирована ошибка под номером 408. Имейте это в виду, если Вы пытаетесь создать слишком большое изображение.
Пример:
Save Window i_mapper_ID As ”riskmap.wmf” Type ”WMF”
422 |
Справочник MapBasic |
Оператор Save Workspace
Оператор Save Workspace
Назначение:
Создает файл Рабочего Набора с текущим состоянием рабочего окна MapInfo.
Синтаксис:
Save Workspace As filespec
где
filespec – строка с именем Рабочего Набора.
Описание:
Оператор Save Workspace создает Рабочий Набор по текущему состоянию программы MapInfo. Действие оператора аналогично действию команды ФАЙЛ > СОХРАНИТЬ РАБОЧИЙ НАБОР, с тем исключением, что оператор не выводит диалог на экран.
Для загрузки существующего Рабочего Набора используйте оператор Run Application.
Пример:
Save Workspace As ”market.wor”
Смотрите также:
Run Application
Справочник MapBasic |
423 |
Функция 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 поддерживает отдельные наборы значений для результатов поиска для каждой действующей MapBasicLпрограммы, а также набор для результатов поиска самой программы MapInfo (для команд, введенных из окна MapBasic).
424 |
Справочник MapBasic |
Функция 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
Справочник MapBasic |
425 |
Функция 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( )
426 |
Справочник MapBasic |
Функция 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( )
Справочник MapBasic |
427 |
Функция SearchRect( )
Функция SearchRect( )
Назначение:
Ищет объекты на Карте в заданном прямоугольнике (рамке).
Синтаксис:
SearchRect(map_window_id, x1, y1, x2, y2 )
где
map_window_id – идентификатор окна Карты;
x1 и y1 – координаты, задающие один из углов прямоугольника;
x2 и y2 – координаты, задающие противоположный по диагонали угол прямоугольника.
Величина, полученная в результате:
Целое число. Величина типа Integer.
Описание:
Функция SearchRect( ) осуществляет поиск объектов в заданном прямоугольнике в окне Карты и возвращает количество найденых объектов. Поиск осуществляется по всем доступным слоям окна Карты, включая Косметический слой, если для него установлен режим доступности.
Функция не выбирает найденные объекты и не отменяет текущего выбора. Функция помещает список выбранных объектов в оперативную память. Для чтения этого списка используется функция SearchInfo( ), вызываемая после выполнения функции SearchRect( ).
Механизм поиска работает аналогично механизму инструмента MapInfo ВыборLвLРамке: если центроид объекта попадает в прямоугольник, то объект включается в список найденных.
Для того, чтобы пользователь мог задавать прямоугольник на Карте при помощи мышки, можно использовать оператор Create ButtonPad или Alter ButtonPad для создания нового инструмента. Используйте код DM_CUSTOM_RECT как код рисования “рамочным” инструментом. В обработчике инструмента используйте вызов функции CommandInfo( ) для определения координат прямоугольника, который пользователь задал новым инструментом.
Пример:
Смотрите пример в описании функции SearchInfo( ).
Смотрите также:
SearchInfo( ), SearchPoint( )
428 |
Справочник MapBasic |
Функция Seek( )
Функция Seek( )
Назначение:
Возвращает текущую позицию в файле для операций ввода/вывода.
Синтаксис:
Seek(filenum)
где
filenum – номер открытого файла, целое число.
Величина, полученная в результате:
Целое число. Величина типа Integer.
Описание:
Функция Seek( ) возвращает текущую позицию в открытом файле для операций ввода/вывода.
Значение параметра file должно быть номером файла, под которым он был открыт оператором
Open File.
Результатом функции Seek( ) будет целое число. Если файл был открыт в режиме прямого доступа, Seek( ) вернет номер записи (запись, которая будет прочитана или записана). Если файл открыт в двоичном режиме, функция вернет номер байта, который будет прочитан или записан следующей операцией ввода/вывода.
Ошибки:
В результате выполнения функции может генерироваться код ошибки ERR_FILEMGR_NOTOPEN, если файл не был открыт.
Смотрите также:
Get, Open File, Put, Seek
Справочник MapBasic |
429 |