- •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( )
Функция FormatDate$
Функция FormatDate$
Назначение:
Вазвращает дату в укороченном формате, в том стиле, который определен Панелью управления.
Синтаксис:
FormatDate$( value )
value - это число или строка, представляющие дату в формате YYYYMMDD.
Возвращаемое значение:
Строковая величина.
Описание:
Функция FormatDate$( ) возвращает строковую величину, представляющую дату с локальном системном формате, как определено в Панели управления.
Примеры:
Предположим, что настройки Панели управления это d/m/y для даты, ’-’ это разделитель для даты и ”dd-MMM-yyyy” - это укороченный формат даты:
Dim d_Today As Date |
|
|
d_Today = CurDate() |
|
|
Print d_Today |
‘returns ”19970910” |
|
Print FormatDate$(d_Today) ‘returns ”10 Sep 1997” |
||
Dim s_EnteredDate As String |
|
|
s_EnteredDate = ”03 02 61” |
|
|
Print FormatDate$(s_EnteredDate) |
‘returns ”03 Feb 1961” |
|
s_EnteredDate = ”12 31 61” |
|
Print FormatDate$( s_EnteredDate )‘ returns ERROR: not d/m/y ordering s_EnteredDate = ”31 12 61”
Print FormatDate$( s_EnteredDate )‘ returns ”31 Dec 1961”
Справочник MapBasic |
263 |
Функция FormatNumber$( )
Функция FormatNumber$( )
Назначение:
Форматирование числа с использованием символов десятичной точки и разделителя тысяч, тех, которых в данное время использует система, в которой выполняется приложение.
Синтаксис:
FormatNumber$(num )
где num – численная или строковая величина, представляющее число, например, “1234.56”
Величина, полученная в результате:
Строка. Величина типа String.
Описание:
Функция возвращает отформатированную строку с числом. Если число достаточно велико, то функция вставит разделители тысяч. MapInfo прочтет конфигурацию пользовательской системы и определит какие символы используются для десятичной точки и разделителя тысяч.
Примеры:
Следующая таблица демонстрирует, как работает функция FormatNumber$( ) в компьютере, в котором точка обозначает десятичную точку, а запятая – разделитель тысяч (стандартная установка в США):
Вызов функции |
Результат |
FormatNumber$(”12345.67”) |
“12,345.67” (добавлен разделитель тысяч) |
FormatNumber$(”12,345.67”) |
“12,345.67” (без изменений) |
Если в компьютере знак запятой зарезервирован за десятичной точкой, а точка разделяет тысячи, то функция будет работать так:
Вызов функции |
Результат |
FormatNumber$(”12345.67”) |
“12.345,67” (добавлен разделитель тысяч и изменен |
|
знак десятичной точки) |
FormatNumber$(”12,345.67”) |
“12.345,67” (изменены оба знака) |
Смотрите также:
DeformatNumber$( )
264 |
Справочник MapBasic |
Функция FrontWindow( )
Функция FrontWindow( )
Назначение:
Возвращает идентификатор активного окна.
Синтаксис:
FrontWindow( )
Величина, полученная в результате:
Целое число. Величина типа Integer.
Описание:
Функция FrontWindow( ) возвращает целочисленный идентификатор самого верхнего открытого окна в MapInfo. Этот оператор полезно применять сразу после создания нового окна (Карты, Графика, Списка или Отчета), чтобы запомнить значение идентификатора самого верхнего окна.
Пример:
Dim map_win_id As Integer
Open Table "states.tab" Map From states
map_win_id = FrontWindow( )
Смотрите также:
NumWindows( ), WindowID( ), WindowInfo( )
Справочник MapBasic |
265 |
Оператор Function...End Function
Оператор Function...End Function
Назначение:
Объявляет внутреннюю функцию.
Предупреждение:
Оператор Function... End Function не может быть выполнен в окне MapBasic.
Синтаксис:
Function name ( [ [ ByVal ] parameter As datatype]
[, [ ByVal ] parameter As datatype ... ] ) As return_type
statement_list
End Function
где
name – имя функции;
parameter – имя параметра функции;
datatype – тип данных, стандартный в MapInfo, или тип, созданный при помощи оператора Type; return_type – скалярный тип данных, стандартный в MapInfo; массив или тип, созданный при помощи оператора Type не используется;
statement_list – группа операторов, составляющая тело функции.
Описание:
Оператор Function позволяет Вам создавать свои функции. Сделанные таким образом функции являются внутренними и могут использоваться в программе, в которой находятся наравне со стандартными функциями MapInfo.
Каждое имя функции, созданной при помощи оператора Function, а также типы параметров и результата должны быть заранее объявлены в операторе Declare Function.
Внутренняя функция подобна процедуре, сделанной при помощи оператора Sub, но в отличие от процедуры функция возвращает значение, тип которого определяется параметром datatype, расположенным за последним ключевым словом As. Функция по сравнению с процедурой в применении более гибка, т.к. Вы можете составлять выражения, содержащие вызов к одной и более функциям. Например, следующее выражение содержит два вызова функции Proper$( ):
fullname = Proper$(firstname) + " " + Proper$(lastname)
В конструкции оператора Function... End Function параметр name, определяющий имя функции, трактуется как имя переменной. Этой переменной и присваивается значение, возвращаемое функцией. Если переменной name не было ничего присвоено, функция возвращает нулевое значение для числовых функций, FALSE для логических функций или нулевую строку ("") для строчных функций.
Ограничения при передаче параметров
Результат функции может быть только скалярным. Другими словами, функция не может возвращать массивы и данные сложных типов, созданных оператором Type.
По умолчанию, каждый параметр во внутреннюю функцию передается "ссылкой" ("by-reference"). Это означает, что оператор, вызывающий функцию, должен в качестве параметров использовать имена переменных. Если функция изменяет значение параметра, передаваемого ссылкой, то изменяется и переменная в вызывающей процедуре.
266 |
Справочник MapBasic |
Оператор Function...End Function
Если перед именем параметра используется слово ByVal, то параметр передается значением ("byvalue"). В этом случае оператор, вызывающий функцию, может использовать в качестве параметра выражение, а не имя переменной. Однако, если изменить значение такого параметра, новое значение нельзя будет вернуть в вызывающий модуль.
Вы не можете передавать в виде значения во внутреннюю функцию массивы, а также переменные, заданные оператором Type или объявленные предложением Alias. Такие переменные можно передавать только ссылкой.
Если функция не должна иметь параметров, то оператор Function... End Function может включать пустые скобки или не использовать их. То есть конструкция:
Function Foo( )
'
' ... здесь список операторов функции
'
End Function
идентична конструкции:
Function Foo
'
' ... здесь список операторов функции
'
End Function
Но при вызове этой функции использование скобок обязательно:
var_name = Foo( )
Доступность функций пользователя
Пользователь не может помещать вызовы к внутренним функциям выполняющейся прикладной программы при заполнении стандартных диалогов в MapInfo. Однако сама программа может это делать. Так, пользователь не может обратиться к определенной программой функции из диалога команды SQL-ЗАПРОС, однако, в компилированной MapBasic-программе может содержаться оператор Select, использующий эту функцию.
Внутреннюю функцию можно вызывать только в той программе, в которой она была определена. Поэтому, если Вы хотите использовать такую функцию в другой программе, то Вам придется полностью скопировать определение Function... End Function в текст другой программы.
Имена функций
Имя функции, определенное оператором Function, может совпадать с именем стандартной функции MapBasic, таким как Abs или Chr$. Подобная функция полностью замещает одноименную стандартную в пределах прикладной программы, в которой она определена. Например, если Вы создадите свою функцию Abs, то все вызовы функции Abs будут обращаться к Вашей функции, а не к стандартной функции MapBasic Abs( ).
Если произошло описанное переопределение, то на другие программы оно не действует. Поэтому, если Вы хотите переопределить какую-либо функцию для нескольких программ, то Вам придется переопределить ее в каждой программе.
Справочник MapBasic |
267 |
Оператор Function...End Function
Пример:
В этом примере определяется функция пользователя под названием CubeRoot, которая вычисляет кубический корень из числа. Так как функция CubeRoot вызывается в тексте программы до определения самой функции, то в этом примере используется оператор Declare Function, определяющий аргумент функции и тип возвращаемого значения.
Declare Function CubeRoot(ByVal x As Float) As Float
Declare Sub Main
Sub Main
Dim result As Float
result = CubeRoot(23) Note Str$(result)
End Sub
Function CubeRoot(ByVal x As Float) As Float
CubeRoot = x ^ 0.33333333333
End Function
Смотрите также:
Declare Function, Declare Sub, Sub... End Sub
268 |
Справочник MapBasic |