- •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( )
Процедура WinFocusChangedHandler
Процедура WinFocusChangedHandler
Назначение:
Процедура, автоматически выполняющаяся при изменении фокуса окна.
Синтаксис:
Declare Sub WinFocusChangedHandler Sub WinFocusChangedHandler statement_list
End Sub
Описание:
Если загруженная программа имеет процедуру WinFocusChangedHandler, то MapInfo автоматически выполняет процедуру, когда меняется фокус окна (фокус имеет активное окно). Фокус может перемещаться между всеми типами окон MapInfo (Списки, Карты и т.п.). Для определения идентификатора окна, которое стало активным, используйте в процедуре обработчика функцию CommandInfo(CMD_INFO_WIN).
В процедуре WinFocusChangedHandler не может быть использован оператор Note, процедура обработчика также не может закрывать или открывать какие-либо окна. Эти ограничения подобны тем, которые имеют и другие обработчики, такие, как SelChangedHandler.
Процедура WinFocusChangedHandler должна быть как можно короче, чтобы не замедлять работу системы.
Пример:
Следующий фрагмент текста программы показывает, как можно делать доступной или недоступной команду меню в зависимости от того, активно ли окно Карты или нет.
Include "mapbasic.def"
Include "menu.def"
Declare Sub Main
Declare sub WinFocusChangedHandler
Sub Main
'Здесь вместо комментариев должны быть операторы,
'создающие элемент меню, который может быть доступным,
'когда активно окно Карты.
End Sub
Sub WinFocusChangedHandler
Dim i_win_type As SmallInt
i_win_type=WindowInfo(CommandInfo(CMD_INFO_WIN),WIN_INFO_TYPE)
If i_win_type = WIN_MAPPER Then
'Здесь вместо комментариев должен быть оператор,
'который делает элемент меню доступным.
Else
'Здесь вместо комментариев должен быть оператор,
'который делает элемент меню недоступным.
End If
End Sub
Справочник MapBasic |
645 |
Оператор Write #
Оператор Write #
Назначение:
Запись данных в открытый файл.
Синтаксис:
Write #file_num [, expr ... ] где
file_num – номер файла, который был присвоен ему при открытии; expr – выражение для записи в файл.
Описание:
Оператор Write # записывает определенные данные в открытый файл. Он должен быть открыт в режиме последовательного доступа оператором Open File, который закрепляет за файлом номер, используемый в параметре file_num.
Выражений expr может быть несколько, в операторе они должны быть разделены запятыми. В этом случае записанные значения в файле автоматически разделяются запятыми. Строчные значения при записи автоматически снабжаются кавычками. Если список выражений пуст, то записывается пустая строка.
Оператор Write # автоматически заключает строковые значения в кавычки при записи в файл. Чтобы записать текст в файл, не используя кавычек, используйте оператор Print #.
Для чтения записей из файла используйте оператор Input #.
Смотрите также:
Input #, Open File, Print #
646 |
Справочник MapBasic |
Функция Year( )
Функция Year( )
Назначение:
Извлекает год из значения даты.
Синтаксис:
Year(date_expr)
где date_expr – выражение типа Date.
Величина, полученная в результате:
Короткое целое число. Величина типа SmallInt.
Описание:
Функция Year( ) извлекает год из даты, заданной выражением date_expr. Например, если дата задана в виде 12/17/95, то функция вернет целое число 1995.
Примеры:
Пример демонстрирует, как Вы можете использовать функцию для извлечения из даты только компонеты года.
If Year( CurDate( ) ) = 1994 Then
Note "В 1994 году..."
End If
Вы можете также использовать функцию Year( ) в операторе Select, формирующем SQLзапрос. В этом примере выбираются строки из таблицы ORDERS, в которых есть данные о заказах, сделанных в декабре 1993.
Open Table "orders"
Select * From orders
Where Month(orderdate) = 12 And Year(orderdate) = 1993
Смотрите также:
CurDate( ), Day( ), Month( ), Weekday( ), DateWindow( )
Справочник MapBasic |
647 |
Приложение A: Таблица кодов символов
Приложение A: Таблица кодов символов
Следующая таблица показывает часть символов Windows Latin 1. Диапазон символов от 32 (пробел) до 126 (тильда) идентичен большинству других наборов символов. Интересны так же символы: 9 табулятор, 10 перевод строки, 12 перевод страницы и 13 возврат каретки.
|
|
|
|
648 |
Справочник MapBasic |
Приложение В: Арифметические и географические операторы
Приложение В: Арифметические и географические операторы
Оператор задает определенное арифметическое действие над одной или более величинами или задает отношение, имеющее результат. Операторы могут классифицироваться по типу величин, с которыми они действуют, и по типу результата.
Следующие арифметические операторы работают с числами и имееют численный результат.
Оператор |
Действие |
Пример |
+ |
сложение |
a + b |
- |
вычитание |
a - b |
* |
умножение |
a * b |
/ |
деление |
a / b |
\ |
деление по модулю (без остатка) |
a \ b |
Mod |
остаток деления по модулю |
a Mod b |
^ |
возведение в степень |
a ^ b |
Два первых оператора также используются в другом контексте. Плюс используется как знак слияния (конкатенации строк). Вместо плюса можно использовать амперсанд. Минус может означать отрицательное значение.
Оператор |
Действие |
Пример |
+ |
строковая конкатенация |
a + b |
& |
строковая конкатенация |
a & b |
- |
перемена знака числа |
- a |
Операторы сравнения - это операторы, сравнивающие два элемента одного типа с получением логического результата: TRUE or FALSE. Численные данные немогут сравниваться с нечисленными (например, с строкой), но сравнение возможно между величинами типов Integer, SmallInt и Float. Выражения с операторами сравнения часто используются в операторах, управляющих выполнением программы (например, в операторе If...Then).
Оператор |
TRUE, если |
Пример |
= |
сложение |
a = b |
<> |
вычитание |
a <> b |
Справочник MapBasic |
649 |
Приложение В: Арифметические и географические операторы
< |
умножение |
a < b |
> |
деление |
a > b |
<= |
деление по модулю (без остатка) |
a <= b |
>= |
остаток деления по модулю |
a >= b |
Логические операторы работают с логическими величинами и имеют в результате логическую величину: TRUE или FALSE:
Оператор |
TRUE, если |
Пример |
And |
обе величины TRUE |
a And b |
Or |
хотя бы одна величина TRUE |
a Or b |
Not |
отрицание |
Not a |
Географические операторы работают с объектными величинами и имеют в результате логическую величину: TRUE или FALSE:
Оператор |
TRUE, если |
Пример |
Contains |
если центроид объекта B лежит в |
objectA Contains objectB |
|
границах объектаA |
|
Contains Part |
если границы объекта B частично |
objectA Contains Part objectB |
|
лежат внутри границ объекта A |
|
Contains Entire |
если граница объекта B полностью |
objectA Contains Entire |
|
лежит внутри границ объекта A |
objectB |
Within |
если центроид объекта А лежит в |
objectA Within objectB |
|
границах объекта B |
|
Partly Within |
если границы объекта А частично |
objectA Partly Within objectB |
|
лежат внутри границ объекта B |
|
Entirely Within |
если граница объекта А полностью |
objectA Entirely Within |
|
лежит внутри границ B |
objectB |
Intersects |
если объекты имеют хотя бы одну |
objectA Intersects objectB |
|
общую точку |
|
650 |
Справочник MapBasic |
Приложение В: Арифметические и географические операторы
Приоритет
Скобки являются специальным оператором, который выделяет выражение внутри другого выражения. Использование скобок позволяет задавать порядок вычисления выражения, отличный от порядка, диктуемого приоритетом операторов. Ниже в виде колонки перечисленны операторы в порядке убывания приоритета. Если скобок нет, то оператор, приоритет которого выше приоритета другого, выполняется первым. Операторы из одной строки имеют равный приоритет и в выражениях выполняются слева направо (за исключением степени, она вычисляется справа налево).
Например, выражение 3 + 4 * 2 имеет результат 11 (умножение вычисляется перед сложением). Выражение (3 + 4) * 2 имеет результат 14 (скобки повышают приоритет сложения над умножением).
Порядок приоритетов выполнения операторов MapBasic
(Высокий приоритет)
скобки
возведение в степень
перемена знака
умножение, деление, деление по модулю, остаток от деления по модую
сложение, вычитание
географические операторы
операторы сравнения
Not
And
Or
(Низкий приоритет)
Справочник MapBasic |
651 |
Приложение В: Арифметические и географические операторы
Автоматическое преобразование типов
Если Вы создали выражение с участием данных разных типов и с некоторыми одинаковыми, то MapInfo перед вычислением преобразует типы. Например, если Ваша программа вычитает из величины типа Date другую величину типа Date, MapBasic вычислит результат как целочисленный (разница дней между двумя датами).
В следующей таблице приведены правила автоматического преобразования типов MapBasic.
Оператор |
Комбинации операторов |
Тип результата |
+ |
Величина типа Date + Число |
Date |
|
Число + Величина типа Date |
Date |
|
Величина типа Integer + Величина типа Integer |
Integer |
|
Число + число |
|
|
Что-то + Что-то (все другие комбинации) |
Float |
|
|
String |
|
Величина типа Date - Число |
Date |
|
Величина типа Date - Величина типа Date |
Integer |
|
Величина типа Integer - Величина типа Integer |
|
|
Число - Число |
Integer |
|
|
Float |
* |
Величина типа Integer * Величина типа Integer |
Integer |
|
Число * Число |
|
|
|
Float |
/ (деление) |
Число / Число |
Float |
\ (деление по |
Число \ Число |
Integer |
модулю) |
|
|
MOD |
Число MOD Число |
Integer |
(остаток |
|
|
деления по |
|
|
модулю) |
|
|
^ (степень) |
Число ^ Число |
Float |
652 |
Справочник MapBasic |
Приложение В: Арифметические и географические операторы
Приложение С: Техническая поддержка
Перевод программного пакета MapInfo/MapBasic Professional выполнен фирмой ЭСТИ МАП.
Все права на русскую версию MapInfo и MapBasic принадлежат фирме ЭСТИМАП, РФ, Москва, 121019, пер. Сивцев Вражек, 29/16, тел./факс (095) 2415732.
ESTI -M@.IBRAE.AC.RU
Техническая поддержка осуществляется специалистами ЭСТИ МАП и включает в себя следующее:
Консультирование пользователей MapInfo и MapBasic.
Информация о новейших разработках.
Сведения о новых версиях компонентов пакетов MapInfo и MapBasic.
Описание наиболее важных приемов работы.
Рассылка маркетинговой и технической информации.
Справочник MapBasic |
653 |
Приложение В: Арифметические и географические операторы
654 |
Справочник MapBasic |
|
C |
Новыеиулучшенные |
|
операторы и |
|
функции MapBasic |
|
|
|
Это новые операторы и функции, доступные для программы MapInfo Professional 7.5.
Разделы в этом Приложении:
Новые операторы и функции
Оператор Objects Move . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .656Оператор Objects Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .658Функция Offset() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .660Функция SphericalOffset() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .662Функция CartesianOffset() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .664Функция OffsetXY() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .666Функция SphericalOffsetXY(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .668Функция CartesianOffsetXY(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .670
Улучшенные операторы
Функция CartesianOffsetXY(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .670Оператор Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .673Оператор Server Create Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .680Функция TableInfo( ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .683