- •Оператор 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: Таблица кодов символов
- •Приложение В: Арифметические и географические операторы
- •ИНДЕКС
Функция ButtonPadInfo( )
Функция ButtonPadInfo( )
Назначение:
Возвращает информацию о состоянии инструментальной панели
Синтаксис:
ButtonPadInfo(pad_name, attribute)
где
pad_name – строковая величина, представляющая имя инструментальной панели; например, “Операции”, “Пенал”, “Программы” или “Команды” для стандартных панелей или то имя, которое было определено при создании новых панелей.
attribute – целочисленный код, управляющий типом результата функции.
Величина, полученная в результате:
Зависит от значения параметра attribute.
Описание:
В зависимости от значения attribute функция ButtonPadInfo(_) вернет следующую информацию об инструментальной панели pad_name:
Значения attribute |
Результат ButtonPadInfo( ) |
BTNPAD_INFO_ |
Логическая величина (Logical). Возвращается значение TRUE, если |
FLOATING |
панель плавающая, и значение FALSE, если панель находится в |
|
прикрепленном состоянии, то есть вытянута вдоль верхнего края |
|
рабочего окна. |
BTNPAD_INFO_NBTNS |
Целое число типа SmallInt, количество кнопок на панели. |
BTNPAD_INFO_WIDTH |
Целое число типа SmallInt, ширина панели, причем единица |
|
измерения равна одной кнопке (не включая разделитель). |
BTNPAD_INFO_WINID |
Целое число типа Integer, идентификатор панели. |
BTNPAD_INFO_X |
XLкоордината верхнего левого угла инструментальной панели. Если |
|
панель находится в прикрепленном состоянии, то возвращается |
|
целое число от 0 и более, если панель плавающая, то число типа |
|
Float (при этом значение представляется в "бумажных" единицах). |
BTNPAD_INFO_Y |
YLкоордината верхнего левого угла инструментальной панели. |
|
Смотрите описание предыдущего кода. |
Вы можете использовать приведенные имена кодов, если в тексте Вашей программы есть ссылка на файл стандартных определений MAPBASIC.DEF.
Пример:
Include ”mapbasic.def”
If ButtonPadInfo(”Операции”, BTNPAD_INFO_FLOATING) Then ’...если панель Операции плавающая,
'то следующий оператор прикрепит ее.
Alter ButtonPad ”Операции” ToolbarPosition(0,0) Fixed End If
Смотрите также:
Alter ButtonPad
54 |
Справочник MapBasic |
Оператор Call
Оператор Call
Назначение:
Вызывает subLпроцедуру или внешнюю процедуру (DLL, XCMD или RPC).
Предупреждение:
Вы не можете использовать этот оператор в окне MapBasic.
Синтаксис:
Call subproc [ ( [ parameter ] [, ... ] ) ]
где
subproc – имя подпрограммы;
parameter – параметр, передающий подпрограмме значение из основного модуля.
Описание:
Оператор Call используется для вызова подпрограммы. Подпрограммой может быть процедура, написанная на MapBasic, первым оператором которой является оператор Sub. Так же с помощью оператора Call в Windows может быть вызвана процедура из динамической библиотеки (DLL).
Аналогично, прикладная программа в MapInfo для Macintosh может вызывать внешние XCMDL команды. Смотрите описание оператора Declare Sub для подробной информации о внешних процедурах.
Если вызывается subLпроцедура, MapBasic начинает выполнять операторы подпрограммы, пока не встретит оператор End Sub или Exit Sub. Выполнение возвращается в программу, откуда был произведен вызов, к следующему оператору после Call. Оператор Call может обращаться только к тем процедурам, которые являются частью текста программы.
Программа MapBasic должна в главной процедуре содержать оператор Declare Sub, объявляющий имя процедуры и список ее параметров перед ее вызовом. Это требование должно выполняться как по отношению к процедурам, организованным оператором Sub, так и к внешним процедурам (DLL и XCMD).
Передача значений параметров
Подпрограмма может не иметь параметров, тогда вызов такой процедуры может выглядеть так:
Call subroutine
или
Call subroutine(_)
Если subLпроцедура имеет параметры, то они могут быть объявлены двумя способами: ссылкой ("by reference") или значением ("by value"). По умолчанию параметр объявляется как "ссылка". Если параметр подпрограммы был определен таким образом, то при вызове subLпроцедуры соответствующим параметром вызова должна быть переменная. Такой параметр не только передает значение переменной в процедуру, но и возвращает значение обратно. В процедуре значение параметра может быть изменено, и это измененное значение будет присвоено переменной, выступавшей в роли параметра вызова, после того, как оператор Call вернет управление в вызывавшую программу.
Объявление величины параметра как значения осуществляется при помощи ключевого слова ByVal перед именем параметра в списке операторов Sub и Declare Sub. Если один из параметров
Справочник MapBasic |
55 |
Оператор Call
подпрограммы был определен таким образом, то при вызове subLпроцедуры соответствующим параметром вызова может быть как постоянная величина, так и переменная или выражение. Однако в этом случае новое значение параметра не может быть возвращено обратно той же переменной.
SubLпроцедуры могут пересылать как простые параметры, так и массивы переменных. При этом в списке вызова Вы пишете только имя массива без скобок.
Вызов внешних процедур
Если оператор Call вызвал процедуру DLL, то MapBasic выполняет процедуру до тех пор, пока она не вернет управление. Сама процедура находится в отдельном файле (например, "KERNEL.EXE"). Этот файл с внешней процедурой должен быть доступен в то время, как MapBasic выполняет внешний вызов.
Аналогично, если оператор Call вызывает XCMD, то файл, содержащий XCMD, должен быть доступным.
В вызове XCMDLкоманд не могут участвовать массивы переменных и переменные сложных типов, составленных оператором Type, в качестве параметров.
Пример:
Подпрограмма 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 Program |
|
Sub Cube (ByVal original As Float, cubed As Float)
'Параметр "original"_– число,
'параметр "cubed"_– результат вычисления.
cubed = original ^ 3 End Sub
Смотрите также:
Declare Sub, Exit Sub, Global, Sub... End Sub
56 |
Справочник MapBasic |
Функция CartesianArea( )
Функция•CartesianArea( )
Назначение:
Возвращает площадь, используя вычисления в системе координат Широта/Долгота. Используется декартовый алгоритм вычислений.
Синтаксис:
CartesianArea( expr, unit_name )
unit_name это строковая величина, имя единиц измерения площади. (sq km”)
Возвращаемое значение:
Величина с плавающей запятой
Описание:
Функция CartesianArea( ) возвращает площадь географического объекта, указанного выражением obj_expr.
Функция возвращает измеренную площадь, в единицах, определенных параметром unit_name; например, чтобы получить площадь в акрах, укажите ”acre” в качестве параметра unit_name. Смотрите описание оператора Set Area Units, где описаны возможные единицы измерения.
Функция CartesianArea() всегда будет возвращать значение площади, рассчитанное по декартовым алгоритмам. Величина L1 будет возвращаться для данных в плановых координатах, поскольку такие данные не могут быть конвертированы в Широту/Долготу. Возвращаются приближенные результаты в том случае, если используется скругленный прямоугольник. MapBasic рассчитывает площадь скругленного прямоугольника как если бы объект был настоящим прямоугольником.
Только полигоны, эллипсы, прямоугольники и скругленные прямоугольники имеют площади. По определению, значение функции CartesianArea( ) для точки, дуги, текста, линии или полилинии это ноль. Функция CartesianArea( ) возвращает приблизительные результаты, когда применяется к скругленным прямоугольникам. MapBasic вычисляет площадь скругленного прямоугольника как если бы объект был настоящим прямоугольником.
Примеры:
Следующие примеры показывают, как функция CartesianArea( ) может вычислять площадь одиночного картографического объекта. Обратите внимание, что выражение tablename.obj (как в states.obj) представляет географический объект текущей строки в указанной таблице.
Dim f_sq_miles As Float
Open Table ”states”
Fetch First From states
f_sq_miles = CartesianArea(states.obj, ”sq mi”)
Вы можете также использовать функцию CartesianArea( ) внутри оператора SQL Select как показано в следующем примере.
Select lakes, CartesianArea(obj, ”sq km”)
From lakes Into results
Смотрите также:
Функция Area (), функция SphericalArea ()
Справочник MapBasic |
57 |