- •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( )
Оператор DDETerminateAll
Оператор DDETerminateAll
Назначение:
Закрывает все каналы DDE-связи, которые были открыты программой MapBasic.
Предупреждение:
Использование этого оператора возможно только в среде Microsoft Windows.
Синтаксис:
DDETerminateAll
Описание:
Оператор DDETerminateAll закрывает все каналы DDE-связи, которые были открыты "клиентом", программой MapBasic. Программы MapBasic могут быть запущены одновременно, и в каждой может быть открыто множество каналов. Оператор DDETerminateAll закрывает только те каналы, которые были открыты программой, выполнившей этот оператор. То есть, каждая из прикладных программ может открывать и закрывать только свои каналы.
Проделав необходимые Вам действия по обмену, необходимо завершить его закрытием канала одним из операторов DDETerminate или DDETerminateAll.
Ошибки:
В результате выполнения оператора может генерироваться код ошибки: ERR_CMD_NOT_SUPPORTED, если программа выполняется не в среде Windows.
Смотрите также:
DDEInitiate, DDETerminate
Справочник MapBasic |
195 |
Оператор Declare Function
Оператор Declare Function
Назначение:
Объявляет имя функции и список ее параметров.
Предупреждения:
Этот оператор не может быть использован в окне MapBasic.
Вызов внешних функций (во втором варианте синтаксиса) зависит от вычислительной платформы. К DLL-библиотекам могут обращаться только Windows-программы; вызов функций XFCN возможен только на компьютерах Macintosh.
Синтаксис (вариант 1):
Declare Function fname
( [ [ ByVal ] parameter As var_type ]
[, [ ByVal ] parameter As var_type ... ] ) As return_type
где
fname – имя функции;
parameter – имя параметра функции;
var_type – стандартный для MapBasic тип данных для параметра или определенный с помощью оператора Type;
return_type – стандартный для MapInfo скалярный тип для величины, полученной в результате.
Синтаксис (вариант 2 – для Windows DLL или для Macintosh XFCN)):
Declare Function fname Lib "file_name" [ Alias "function_alias" ]
( [ [ ByVal ] parameter As var_type ]
[, [ ByVal ] parameter As var_type ... ] ) As return_type
где
fname – имя вызываемой функции;
file_name – имя DLL-файла (для Windows) или имя файла, содержащего XFCN (для Macintosh); function_alias – настоящее имя внешней функции;
parameter – имя параметра функции;
var_type – стандартный для MapBasic тип данных для параметра или определенный с помощью оператора Type (в Macintosh – только стандартный скалярный тип);
return_type – стандартный для MapInfo скалярный тип для величины, полученной в результате.
Описание:
Оператор Declare Function объявляет об использовании функции, написанной на языке MapBasic, или внешней функции, а также объявляет типы параметров и результата функции.
Для написания функции на MapBasic используется оператор Function... End Function. Каждая такая функция должна быть объявлена оператором Declare Function.
Параметры могут пересылать значения функции двумя способами: ссылкой ("by-reference") или значением ("by-value"). Для того, чтобы объявить параметр значением, надо перед его именем использовать ключевое слово ByVal. По умолчанию параметр объявляется ссылкой. О различии в природе этих двух типов параметров можно прочитать в 4 главе Руководства пользователя MapBasic.
196 |
Справочник MapBasic |
Оператор Declare Function
Обращение к внешней функции
Второй вариант синтаксиса используется для объявления внешней функции, которая может быть написана на другом языке (например, C или Pascal), или может храниться в отдельном файле. Если Ваша программа использует внешнюю функцию, то она должна быть объявлена так же, как и внутренняя функция программы MapBasic.
В Windows внешняя функция может быть вызвана из динамически загружаемой библиотеки (Microsoft Windows Dynamic Link Library или DLL). В Macintosh – из XFCN. Следует отметить, что синтаксис для обеих платформ ничем не различается. Дополнительную информацию о Windows DLL Вы можете получить в 11 главе Руководства пользователя MapBasic. Если оператор Declare Function объявляет внешнюю функцию, то параметр file_name должен задавать имя файла, содержащего его. Файл с внешними процедурами должен быть доступен во время выполнения программ.
Каждая внешняя функция имеет имя, которое ей дает автор при создании. Если это имя совпадет с именем стандартной функции MapBasic или не устраивает нас по другой причине, то нужно придумать другое имя для обращения к DLL-процедуре и присвоить его переменной fname, а настоящее имя, которое ей задал автор, указать в предложении Alias. Если нужды в псевдонимах не возникает, то переменной fname присваивается настоящее имя функции, а предложение Alias не нужно.
Если оператор Declare Function включает предложение Alias, то параметр function_alias должен совпадать с настоящим именем функции, а параметр fname должен задавать имя, по которому к ней обрщается MapBasic.
Ограничения для параметров внешней функции Windows DLL
Вы можете использовать разные типы значений. DLL-библиотека должна быть откомпилирована в режиме упаковки структур ("structure packing"). Смотрите 11 главу Руководства пользователя Map Basic.
Пример:
В этом примере определяется функция пользователя под названием "CubeRoot", которая вычисляет кубический корень из числа. Так как функция "CubeRoot" вызывается в тексте программы до определения самой функции Function... End Function, то в этом примере используется оператор Declare Function, определяющий аргумент функции и тип возвращаемого значения.
Declare Sub Main
Declare Function CubeRoot(ByVal x As Float) As Float Note Str$( CubeRoot(23) )
Function CubeRoot(ByVal x As Float) As Float CubeRoot = x ^ (1 / 3)
End Function
Обратите внимание на то, что синтаксис оператора Declare Function такой же, как оператора Func tion, только нет слова "Declare".
Смотрите также:
Declare Sub, Function... End Function
Справочник MapBasic |
197 |
Оператор Declare Sub
Оператор Declare Sub
Назначение:
Объявляет имя и типы параметров подпрограммы.
Предупреждение:
Этот оператор не может быть использован в окне MapBasic.
Вызов внешних функций (во втором варианте синтаксиса) зависит от вычислительной платформы. К DLL-библиотекам могут обращаться только Windows-программы; вызов функций XFCN возможен только на компьютерах Macintosh.
Синтаксис: 1
Declare Sub sub_proc
[ ( [ ByVal ] parameter As var_type [, ... ] ) ]
где
sub_proc – имя подпрограммы;
parameter – имя параметра из списка подпрограммы;
var_type – тип значения параметра, стандартный или результат оператора Type.
Синтаксис (вариант 2 – для Windows DLL или Macintosh XCMD):
Declare Sub sub_proc Lib "file_name" [ Alias "sub_alias" ] [ ( [ ByVal ] parameter As var_type [, ... ]) ]
где
sub_proc – имя внешней процедуры; file_name – строка:
вWindows – имя DLL-файла, включая DOS-маршрут,
вMacintosh – имя файла, содержащего XCMD;
sub_alias – оригинальное имя процедуры; parameter – имя параметра процедуры; var_type – тип значения параметра:
вWindows – стандартные типы или тип, заданный оператором Type,
вMacintosh – только скалярные стандартные типы.
Описание:
Оператор Declare Sub объявляет имена процедур и списки их параметров. Обычно, каждому оператору Declare Sub соответствует одна sub-процедура, которая находится ниже соответствующего оператора. Такая процедура создается в программе оператором Sub... End Sub и называется внутренней.
Параметры могут пересылать значения процедуре двумя способами: ссылкой ("by-reference") или значением ("by-value"). Для того, чтобы объявить параметр значением, надо перед его именем использовать ключевое слово ByVal. По умолчанию параметр объявляется ссылкой. О различии в природе этих двух типов параметров можно прочитать в 4 главе Руководства пользователя MapBasic.
Обращение к внешним процедурам
Второй вариант синтаксиса используется для объявления внешней процедуры, которая может быть написана на другом языке (например, C или Pascal), или храниться в отдельном файле. Если Ваша программа использует внешнюю процедуру, то она должна быть объявлена так же, как и внутренняя процедура программы MapBasic.
198 |
Справочник MapBasic |
Оператор Declare Sub
В Windows внешняя процедура может быть вызвана из динамически загружаемой библиотеки (Microsoft Windows Dynamic Link Library или DLL). В Macintosh – из XFCN. В UNIX – из RPC. Следует отметить, что синтаксис для трех платформ ничем не различается. Дополнительную информацию о Windows DLL читайте в 11 главе Руководства пользователя MapBasic.
Если оператор Declare Sub объявляет внешнюю процедуру, то параметр file_name должен задавать имя файла, содержащего его. Файл с внешними процедурами должен быть доступен во время выполнения программ.
Каждая DLL-процедура имеет имя, которое ей дает автор при создании. Если это имя совпадет с именем стандартной процедуры MapBasic или не устраивает нас по другой причине, то нужно придумать другое имя для обращения к внешней процедуре и присвоить его переменной fname, а настоящее имя, которое ей задал автор, указать в предложении Alias. Если нужды в псевдонимах не возникает, то переменной fname присваивается настоящее имя процедуры, а предложение Alias не нужно.
Если оператор Declare Function включает предложение Alias, то параметр function_alias должен совпадать с настоящим именем функции, а параметр fname должен задавать имя, по которому к ней обращается MapBasic.
Ограничения для параметров внешней процедуры Windows DLL
Вы можете использовать разные типы значений. DLL-библиотека должна быть откомпилирована в режиме упаковки структур ("structure packing"). Смотрите описание оператора Type.
Ограничения для параметров внешней функции Macintosh XCMD
Вы не можете использовать массивы и сложные, специально определенные типы для пересылки значений между программой и внешней функцией.
Пример:
Процедура Cube вычисляет кубический корень от своего первого параметра.
Declare Sub Cube(ByVal original As Float, cubed As Float)
Dim x, result As Float
Call Cube(2, result)
'переменная result сейчас равна 8 (2 x 2 x 2) x = 1
Call Cube(x + 2, result)
'переменная result сейчас равна 27 (3 x 3 x 3) End Sub
Sub Cube (ByVal original As Float, cubed As Float) cubed = original ^ 3
End Sub
Смотрите также:
Call, Sub... End Sub
Справочник MapBasic |
199 |