- •Оператор 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: Таблица кодов символов
- •Приложение В: Арифметические и географические операторы
- •ИНДЕКС
Функция StyleAttr( )
Функция StyleAttr( )
Назначение:
Возвращает значение одной из компонент стиля оформления объекта: Pen, Brush, Font, или Symbol.
Синтаксис:
StyleAttr( style , attribute )
style L величина, выражающая стиль (величина типа Pen, Brush, Font или Symbol); attribute L цельночисленный код, управляющий результатом функции
Величина, полученная в результате:
Целое число или строка, в зависимости от значения параметра attribute.
Описание:
Функция StyleAttr( ) извлекает из величины типа Pen, Brush, Symbol или Font определенную компоненту.
Все типы в MapBasic являются сложносоставными. Например, определение стиля Brush состоит из трех компонентов: pattern, foreground color и background color. При вызове функции Style4 Attr( ), параметр attribute контролирует, какой из атрибутов возвращается.
Параметр attribute должен являться одним из кодов, показанных в нижеследующей таблице. Коды в левом столбце (например, PEN_WIDTH) определены в файле стандартных определений MAPBASIC.DEF.
Если параметр style является значением Pen, используйте одно значение из таблицы:
Значение attribute |
Результат StyleAttr( ): |
BRUSH_PATTERN |
Целое число (Integer), атрибут стиля Brush, |
|
задающий номер штриха. |
BRUSH_FORECOLOR |
Целое число (Integer), атрибут стиля Brush, |
|
задающий RGBLкод цвета штриха. |
BRUSH_BACKCOLOR |
Целое число (Integer), атрибут стиля Brush, |
|
задающий RGBLкод цвета фона штриха или L1, |
|
если фон прозрачный. |
FONT_NAME |
Атрибут стиля Font, задающий строку с именем |
|
шрифта. |
FONT_STYLE |
Целое число (Integer) от 0 до 7, атрибут стиля Font |
|
(0 = простой, 1 = жирный, и т.д.); см. Предложение |
|
Font для более подробной информации. |
FONT_POINTSIZE |
Целое число (Integer), атрибут стиля Font, |
|
задающий размер шрифта в точках. |
|
Замечание: Если текстовый объект принадлежит |
|
таблице, а не Отчету, то размер будет равен 0 и |
|
высота букв будет определяться текущим |
Справочник MapBasic |
559 |
Функция StyleAttr( )
|
масштабом Карты. |
FONT_FORECOLOR |
Целое число (Integer), атрибут стиля Font, |
|
задающий RGBLкод цвета символов строки. |
FONT_BACKCOLOR |
Целое число (Integer), атрибут стиля Font, |
|
задающий RGBLкод цвета фона строки или L1, если |
|
фон прозрачный. Если стиль шрифта включает |
|
кайму, то задает RGBLцвет каймы. |
Значение attribute |
Результат StyleAttr( ): |
PEN_WIDTH |
Целое число (Integer), атрибут стиля Pen, |
|
задающий ширину линии в точках. |
PEN_PATTERN |
Целое число (Integer), атрибут стиля Pen, |
|
задающий номер вида линии. |
PEN_COLOR |
Целое число (Integer), атрибут стиля Pen, |
|
задающий RGBLкод цвета линии. |
PEN_INTERLEAVE |
Логическое: TRUE если стиль пересекающихся |
|
линий. |
PEN_INDEX |
Целое число (Integer), представляющее индекс |
|
линии из библиотеки линий. |
SYMBOL_KIND |
Целое число (Integer), тип символа: 1 L символ Map |
|
Info версии 3.0; 2 L символ шрифта TrueType; 3 L |
|
символ из растрового файла. |
SYMBOL_CODE |
Целое число (Integer), атрибут стиля Symbol, |
|
задающий номер символа. Используется для типа |
|
символа версии MapInfo 3.0 и TrueType. |
SYMBOL_COLOR |
Целое число (Integer), атрибут стиля Symbol, |
|
задающий RGBLкод цвета символа. |
SYMBOL_POINTSIZE |
Целое число (Integer) от 1 до 48, атрибут стиля |
|
Symbol, задающий размер символа в пунктах. |
SYMBOL_FONT_NAME |
Строка (String), имя шрифта TrueType, который |
|
используется как библиотека символов. |
SYMBOL_FONT_STYLE |
Целое число (Integer), задающее написание |
|
символа TrueType (0 = нормальное написание, 1 = |
|
жирное, и т.д.). Смотрите описание предложения |
|
Symbol. |
SYMBOL_ANGLE |
Действительное число (Float), угол поворота |
|
символа TrueType. |
SYMBOL_CUSTOM_NAME |
Строка (String), имя растрового файла. |
SYMBOL_CUSTOM_STYLE |
Целое число (Integer), задающее стиль для |
|
растрового символа (0 = нормальное, 1 = показать |
|
фон и т.д.). Смотрите предложение Symbol. |
560 Справочник MapBasic
Функция StyleAttr( )
Ошибки:
ERR_FCN_ARG_RANGE, если неправильно значение аргумента.
Пример :
Воспользуемся функцией CurrentPen( ) для того, что бы узнать, какой установлен сейчас стиль линии в MapInfo, затем с помощью функции StyleAttr( ) узнаем толщину линии в пикселах.
Include ”mapbasic.def” Dim cur_width As Integer
cur_width = StyleAttr(CurrentPen(), PEN_WIDTH)
Смотрите также :
MakePen( ), MakeBrush( ), MakeFont( ), MakeSymbol( ) Pen( ), Brush( ), Font( ), Symbol( )
Справочник MapBasic |
561 |
Оператор Sub...End Sub
Оператор Sub...End Sub
Назначение:
Определяет процедуру, которую можно вызвать из другой процедуры оператором Call.
Синтаксис:
Sub subroutine [ ([ByVal] parameter As var_type [, ... ]) ] statement_list
End Sub
где
subroutine – имя процедуры; parameter – имя параметра процедуры;
var_type – стандартный в MapBasic тип переменных (например, Integer) или сложноL определенный тип, заранее объявленный оператором Type;
statement_list – список (от 0 и более) операторов процедуры.
Предупреждение:
Вы не можете использовать оператор Sub... End Sub в окне MapBasic.
Описание:
Оператор Sub... End Sub описывает процедуру в MapBasic. Как только subLпроцедура определена, к ней можно обращаться из любой другой части программы оператором Call.
Каждая процедура, задаваемая оператором Sub... End Sub, должна быть заранее объявлена оператором Declare Sub.
Каждая подпрограмма может иметь или не иметь параметры, значения которых передаются из процедуры, вызвавшей эту subLпроцедуру. В дальнейшем параметры используются процедурой наравне с локальными переменными, имена и типы которых объявляются оператором Dim.
Параметры для подпрограммы задаются списком через запятую, где каждый параметр определяется следующим образом:
[ByVal] parameter As var_type
где parameter – имя параметра. Каждое такое определение параметра процедуры должно быть уникально.
Если при определении параметра процедуры ключевое слово ByVal не участвует, то это значит, что параметр определен ссылкой ("by reference"). То есть программа, вызывая процедуру, параметры которой заданы ссылкой, должна использовать только имена переменных в качестве параметров вызова. Вы не можете передавать константы или выражения (такие как "Москва") ссылкой. Впоследствии, если subLпроцедура изменила значения этих параметров, то также изменятся значения переменных, использовавшихся как параметры вызова в операторе Call. Таким образом, параметр, передаваемый ссылкой, позволяет не только доставлять значение из вызывающей процедуры, но и возвращать значение обратно в этом же параметре.
562 |
Справочник MapBasic |
Оператор Sub...End Sub
Если при объявлении использовалось ключевое слово ByVal, то параметр процедуры определен для передачи процедуре значением ("by value"). Программа, вызывая процедуру, параметры которой заданы значением, может использовать как имена переменных, так и константы или выражения в качестве параметров вызова. Однако, если изменить значение такого параметра в теле процедуры, новое значение нельзя будет вернуть в вызывающий модуль. Параметр, определенный как "значение", не может передавать массивы, значения переменных сложного типа, созданного оператором Type и объявленных в предложении Alias.
SubLпроцедура может обрабатывать массивы. В списке параметров массив объявляется с помощью пустых скобок, следующих за именем переменной. В следующем примере в процедуре "ListProcessor" объявлен в качестве параметра массив целых величин "items".
Sub ListProcessor(items( ) As Integer)
При вызове такой процедуры оператором Call параметром вызова должно быть имя массива переменных целого типа без круглых скобок.
Следует помнить, что, если в процедуре объявляется локальная переменная с таким же именем, как у существующей уже глобальной переменной, то значение последней недоступно для использования в этой процедуре. Под данным именем в процедуре используется только локальная переменная.
Предложение Exit Sub заканчивает работу subLпроцедуры.
Пример:
Процедура Cube возводит число в куб (в третью степень) и возвращает результат. Процедура имеет два параметра: первый для возводимого степень вещественного числа, второй для результата.
Declare Sub Main
Declare Sub Cube(ByVal original As Float, cubed As Float)
Sub Main
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, Declare Sub, Dim, Exit Sub, Function... End Function, Global
Справочник MapBasic |
563 |