- •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( )
Оператор Alter Menu Item
Оператор Alter Menu Item
Назначение:
Изменяет состояние элемента списка меню.
Синтаксис:
Alter Menu Item { handler | ID menu_item_id }
{ [ |
Check | Uncheck ] |
| |
[ |
Enable | Disable ] |
| |
[ |
Text itemname ] |
| |
[ |
Calling handler | As |
menuname ] } |
где
handler – имя sub-процедуры или код для стандартной команды MapInfo;
menu_item_id – целочисленный идентификатор элемента меню, который задается при создании списка меню (оператором Create Menu или Alter Menu);
menuname – заголовок списка меню;
itemname – новый текст для элемента меню (может содержать управляющие коды).
Описание:
Оператор Alter Menu Item изменяет значения атрибутов одного или более элементов списка меню. Например, оператор может сделать команду недоступной для выбора (на экране она закрашивается серым).
Элемент меню может задаваться либо именем обработчика handler, который запускается при выборе элемента в списке меню, либо идентификатором в предложении ID. Заметим, что один и тот же обработчик могут вызывать разные элементы меню. Поэтому, если оператор Alter Menu Item использует имя процедуры-обработчика handler, то MapInfo будет менять все элементы, вызывающие этот обработчик, из всех меню. Если Вы используете предложение ID, то MapInfo изменит атрибуты только одного элемента меню.
Оператор Alter Menu Item может использовать идентификатор только для тех элементов, для которых при создании списка меню он был определен. Приложение MapBasic не может использовать идентификатор, который был задан другим приложением MapBasic.
Оператор Alter Menu Item позволяет вносить изменения в систему меню MapInfo. Если меню, подвергаемое изменению, уже находится в строке заголовков, то Вы можете увидеть изменения немедленно, открыв соответствующее меню.
Если задан режим Check, то при выборе элемента меню в списке меню напротив его имени устанавливается галочка. Это возможно, если при создании этого элемента оператором Create Menu он был назначен как избираемый ("checkable"). Режим Uncheck убирает галочку.
Режимы Disable и Enable определяют доступность выбора элемента меню. Недоступные элементы закрашиваются серым цветом. Заметим, что MapInfo автоматически делает некоторые элементы меню доступными и недоступными в соответствии с текущим состоянием в среде программы MapInfo. Например, команда ФАЙЛ > ЗАКРЫТЬ становится серой, если не открыто ни одной таблицы. Поэтому, приложение MapBasic не может изменять доступность стандартного элемента MapInfo.
Вы можете обращаться к инструментальным средствам как к элементам меню (например, M_TOOLS_RULER в MENU.DEF), но не можете сделать их недоступными с помощью оператора
Справочник MapBasic |
31 |
Оператор Alter Menu Item
Alter Menu Item.
В предложении Text можно изменить имя элемента.
Предложение Calling задает имя процедуры-обработчика, вызываемой элементом меню. Если пользователь выберет этот элемент в меню, то MapInfo запустит на выполнение эту процедуру.
Пример 1:
Cоздается меню ДАННЫЕ, содержащее четыре команды, и затем добавляется в строку заголовков меню MapInfo.
Declare Sub addsub
Declare Sub editsub
Declare Sub delsub
Create Menu "Данные" As
"Добавить" Calling addsub, "Правка" Calling editsub, "Удалить" ID 100 Calling delsub, "Удалить все" ID 101 Calling delsub
'Удаляется меню Справка...
Alter Menu Bar Remove ID 7
'Добавляется меню Данные, а затем восстанавливается меню Справка Alter Menu Bar Add "Данные", ID 7
Пример 2:
Следующий оператор Alter Menu Item переименовывает команду ПРАВКА в команду ПРАВКА...
Alter Menu Item editsub Text "Правка..."
Пример 3:
Следующий оператор делает команду УДАЛИТЬ ВСЕ недоступной.
Alter Menu Item ID 101 Disable
Пример 4:
Следующий оператор делает недоступными две команды: УДАЛИТЬ ВСЕ и УДАЛИТЬ, так как они используют один и тот же обработчик.
Alter Menu Item delsub Disable
Смотрите также:
Alter Menu, Alter Menu Bar, Create Menu
32 |
Справочник MapBasic |
Оператор Alter Object
Оператор Alter Object
Назначение:
Изменяет форму, положение или графический тип существующего объекта.
Синтаксис: |
|
|
Alter Object obj |
|
|
{ Info object_info_code , new_info_value |
| |
|
Geography object_geo_code , new_geo_value |
| |
Node { Add [ Position polygon_num , node_num ] ( x, y ) |
Set Position polygon_num , node_num ( x, y ) | Remove Position polygon_num , node _num
}
}
где
obj – переменная типа Object;
object_info_code – целое число, код, возвращаемый функцией ObjectInfo(_) (например, OBJ_INFO_PEN);
new_info_value – новое значение для кода object_info_code (например, новая величина типа Pen); object_geo_code – целое число, код, возвращаемый функцией ObjectGeography(_);
(например, OBJ_GEO_POINTX);
new_geo_value – новое значение для кода object_geo_code (например, новая X-координата); polygon_num – короткое целое число, идентификатор для одного полигона в объекте регион (область);
node_num – короткое целое число, идентификатор для одного узла в полилинии или полигоне; x, y – X- и Y-координаты узла.
Описание:
Оператор Alter Object изменяет форму, местоположение, графический стиль существующего объекта. Эффект действия оператора Alter Object зависит от того, какое предложение используется в конструкции оператора: Info, Node, или Geography.
Если оператор использует предложение Info, то MapBasic изменяет графический стиль оформления объекта (например, стиль линии и штриха). Если оператор использует предложение Node, то MapBasic добавляет, удаляет или передвигает узлы объекта типа "полилиния" или "область". Если оператор включает в себя предложение Geography, то MapBasic изменяет географические атрибуты всех объектов, не являющихся полилиниями и областями (например, X- или Y-координата точечного объекта).
Предложение Info
Оператор Alter Object с предложением Info изменяет стиль оформления объекта (например, стиль линии и штриха). В предложении изменяются атрибуты, значения которых можно получить от функции ObjectInfo(_). Например, Вы можете определить текущий стиль штриха (величину типа Brush), вызвав функцию ObjectInfo(_):
Dim b_fillstyle As Brush
b_fillstyle = ObjectInfo(Selection.obj, OBJ_INFO_BRUSH)
И, наоборот, следующий оператор Alter Object восстанавливает прежнее значение стиля штриховки:
Справочник MapBasic |
33 |
Оператор Alter Object
Alter Object obj_variable_name
Info OBJ_INFO_BRUSH, b_fillstyle
Заметьте, что Вы используете один и тот же код (OBJ_INFO_BRUSH) в функции ObjectInfo(_) и в операторе Alter Object.
В следующей таблице в первой колонке приводятся имена кодов для использования в предложении Info в качестве параметра obj_info_code. Имена присвоены целочисленным кодам для удобства использования их в операторе. Эти определения находятся в файле MAPBASIC.DEF и, если Вы хотите использовать имена, включите в начало Вашей программы оператор Include "MAPBA SIC.DEF".
Значения obj_info_code
OBJ_INFO_PEN
OBJ_INFO_BRUSH
OBJ_INFO_TEXTFONT
OBJ_INFO_SYMBOL
OBJ_INFO_SMOOTH
OBJ_INFO_FRAMEWIN
OBJ_INFO_FRAMETITLE
OBJ_INFO_TEXTSTRING
OBJ_INFO_TEXTSPACING
OBJ_INFO_TEXTJUSTIFY
Результат выполнения Alter Object
Изменяется стиль линии или контура. Параметр new_info_value должен иметь значение типа Pen.
Изменяется стиль штриховки объекта. Параметр new_info_value должен иметь значение типа Brush.
Изменяется стиль шрифта. Параметр new_info_value должен иметь значение типа Font.
Изменяется стиль символа. Параметр new_info_value должен иметь значение типа Symbol.
Изменяется режим сглаживания углов для полилиний.
Параметр new_info_value должен иметь значение логического типа (TRUE или FALSE).
Меняет содержимое рамки на изображение другого окна.
Параметр new_info_value должен быть целочисленным идентификатором окна.
Заменяет заголовок в рамке. Параметр new_info_value должен иметь значение типа String.
Меняет текст в текстовом объекте. Параметр new_info_value должен иметь значение типа String.
Изменяет расстояние между строками в текстовом
объекте. Параметр new_info_value должен иметь значение типа Float равным 1, 1.5, или 2.
Изменяет значение выравнивания для текстовых
объектов. Параметр new_info_value должен иметь одно из следующих целочисленных значений:
0 – выравнивание влево,
1 – центрирование,
2 – выравнивание вправо.
34 |
Справочник MapBasic |
|
|
Оператор Alter Object |
|
|
|
|
|
|
|
|
|
OBJ_INFO_TEXTARROW |
Изменяет вид указки для текстового объекта. Параметр |
|
|
|
new_info_value должен иметь одно из следующих |
|
|
|
целочисленных значений: |
|
|
|
0 |
– нет указки, |
|
|
1 |
– только линия, |
|
|
2 |
– линия со стрелкой. |
|
|
|
|
|
Предложение Geography
Оператор Alter Object с предложением Geography изменяет расположение объекта. Предложение Geography действительно для всех типов объектов за исключением полилиний и областей. Для изменения расположения объектов последних двух типов используйте предложение Node, которое описано ниже. В предложении Geography изменяются атрибуты, текущие значения которых можно получить от функции ObjectGeography(_). Например, Вы можете получить координаты конца объекта "линия":
Dim o_cable As Object
Dim x, y As Float
x = ObjectGeography(o_cable, OBJ_GEO_LINEENDX)
y = ObjectGeography(o_cable, OBJ_GEO_LINEENDY)
Оператор Alter Object изменяет координаты концов линейного объекта:
Alter Object o_cable
Geography OBJ_GEO_LINEENDX, x
Alter Object o_cable
Geography OBJ_GEO_LINEENDY, y
Заметим, что используется один и тот же код (OBJ_GEO_LINEENDX) в функции ObjectGeogra phy(_) и в операторе Alter Object.
В следующей таблице в первой колонке приводятся имена кодов для использования в предложении Geography в качестве параметра obj_geo_code. Имена присвоены целочисленным кодам для удобства использования их в операторе. Эти определения находятся в файле MAPBASIC.DEF и, если Вы хотите использовать имена, включите в начало Вашей программы оператор Include "MAP BASIC.DEF".
Значения obj_geo_code
OBJ_GEO_MINX
OBJ_GEO_MINY
OBJ_GEO_MAXX
OBJ_GEO_MAXY OBJ_GEO_ARCBEGANGLE OBJ_GEO_ARCENDANGLE OBJ_GEO_LINEBEGX OBJ_GEO_LINEBEGY
Результат выполнения Alter Object
Изменяет X-координату верхнего левого угла минимального прямоугольного покрытия (МПП).
Изменяет Y-координату верхнего левого угла МПП.
Изменяет X-координату нижнего правого угла МПП.
Изменяет Y-координату нижнего правого угла МПП.
Изменяет начальный угол дуги.
Изменяет конечный угол дуги.
Изменяет X-координату начальной точки линии.
Изменяет Y-координату начальной точки линии.
Справочник MapBasic |
35 |
Оператор Alter Object
OBJ_GEO_LINEENDX |
Изменяет X-координату конечной точки линии. |
OBJ_GEO_LINEENDY |
Изменяет Y-координату конечной точки линии. |
OBJ_GEO_POINTX |
Изменяет X-координату точечного объекта. |
OBJ_GEO_POINTY |
Изменяет Y-координату точечного объекта. |
OBJ_GEO_ROUNDRADIUS |
Изменяет радиус закругления для объекта типа |
|
"скругленный прямоугольник". |
OBJ_GEO_TEXTLINEX |
Изменяет координату по оси X конца текстовой строки |
|
объекта. |
OBJ_GEO_TEXTLINEY |
Изменяет координату по оси Y конца текстовой строки |
|
объекта. |
|
|
OBJ_GEO_TEXTANGLE |
Изменяет угол поворота текстового объекта |
|
|
Предложение Node
Оператор Alter Object с предложением Node добавляет, перемещает или убирает узлы полилиний и многоугольников (полигонов), составляющих области.
Add используется для создания в объекте нового узла. Remove Position удаляет заданный узел. Set Position меняет местоположение узла.
Обычно оператор Alter Object с предложением Node используется в связке с операторами Create Pline или Create Region (создание полилинии и полигона). Операторы Create позволяют создать объекты полилинии или полигона из образца. Операторы Create требуют точного задания количества узлов объекта на этапе компиляции; но в ряде случаев Вы не можете знать, сколько узлов будет содержать объект при работе программы.
Если Ваша программа не знает точное количество узлов, Вы можете, используя операторы Create Region или Create PLine, создать "пустые" объекты (т. е. количество узлов объекта будет нулевым). Когда понадобится, Вы с помощью оператора Alter Object... Node Add можете добавить к созданному объекту любое количество узлов.
Параметры polygon_num и node_num могут принимать значения от 1 и более. Параметр polygon_num определяет номер изменяемого многоугольника в области. Параметр node_num – номер узла в многоугольнике и в ломаной (полилинии). Если объект является полилинией, то параметр polygon_num должен быть всегда единицей.
Пример:
Dim myobj As Object, i As Integer
Create Region Into Variable myobj 0
For i = 1 to 10
Alter Object myobj
Node Add (Rnd(1) * 100, Rnd(1) * 100)
Next
Объекты Группа точек и Коллекция
Оператор Alter Object расширен поддержкой следующих новых типов объектов.
Группа точек: устанавливает символ группы точек , как показано ниже:
36 |
Справочник MapBasic |
Оператор Alter Object
Alter Object obj_variable_mpoint
Info OBJ_INFO_SYMBOL, NewSymbol
Коллекция: Используя оператор Alter Object с предложением Info, можно переустановить части коллекции (регион, полилиния или группа точек) внутри объекта "коллекция". Предложение Info позволяет видоизменять те же атрибуты, которые Вы можете запрашивать через функцию ObjectInfo( ). Например, можно определить часть регионов объекта коллекция вызывом функции ObjectInfo( ):
Dim ObjRegion As Object
ObjRegion = ObjectInfo(Selection.obj, OBJ_INFO_REGION)
Таким образом, следующий оператор Alter Object позволяет переустановить часть регионов,
входящих в коллекцию:
Alter Object obj_variable_name
Info OBJ_INFO_REGION, ObjRegion
Внимание: Вы используете тот же самый код ( OBJ_INFO_REGION) и в функции
ObjectInfo( ) и в операторе Alter Object.
К оператору Alter Object добавлена поддержка, позволяющая вставлять и удалять узлы из объектов типа "группа точек".
Alter Object obj Node .
Чтобы вставить узлы в группу точек:
Dim mpoint_obj as object
Create Multipoint Into Variable mpoint_obj 0
Alter Object mpoint_obj Node Add (0,1)
Alter Object mpoint_obj Node Add (2,1)
Внимание: Узлы для группы точек всегда добавляются в конец таблицы. Чтобы удалить узлы из группы точек:
Alter Object mpoint_obj Node Remove Position polygon_num, node_num
mpoint_obj объект типа "группа точек".
polygon_num 0 игнорируется для группы точек, рекомендуется установить значение 1.
node_num 0 число удаляемых узлов.
Чтобы установить точки внутри группы точек:
Alter Object mpoint_obj Node Set Position polygon_num, node_num (x,y)
mpoint_obj объект типа "группа точек".
polygon_num 0 игнорируется для группы точек, рекомендуется установить значение 1.
node_num 0 число узлов, которые будут изменены.
(x,y) 0 новые координаты узла node_num.
В новой версии также можно определять замкнутые области, не являющиеся полигонами 0 для этой цели используется оператор Objects Check.
Objects Check From tablename
[SelfInt [Symbol Clause] ]
[Overlap [Pen Clause] [Brush Clause] ]
[Gap Area [Unit Units] [Pen Clause] [Brush Clause] ] ]
Справочник MapBasic |
37 |
Оператор Alter Object
Пустоты (бреши) 0 это замкнутые области, которые не образуют полигонов. В таблице с границами, полигоны должны иметь общие границы. В идеальном случае в таблице не должны встречаться перекрытия полигонов и пустоты между ними. В некоторых случаях пустоты между полигонами имеют смысл и право на существование. Например, Великие озера на карте мира являются "пустотой" между Канадой и США. Однако, в большинстве случаев пустоты являются результатом плохого согласования общих границ между полигонами. Такие бреши обычно имеют малые размеры.
Чтобы успешно отделить допустимые пустоты (например, Великие озера) от заведомо ненужных брешей, используется предложение Area. Любые пустоты больше заданной площади будут оставляться без изменения. Единицы измерения площади Area задаются предложением Units. Если подпредложение Units не задано, то площадь брешей Area будет измеряться в текущих единицах измерения MapBasic.
Пустоты выделяются и превращаются в полигоны, линии границ и заливка которых определяются предложениями Pen и Brush, следующими за ключевым словом Gap. По умолчанию, эти полигоны изображаются с синей заливкой и тонкой черной границей.
Пример
Этот пример запускает оператор Objects Check для таблицы "TestFile" и сохраняет результат в таблице "DumpFile". Также применяется параметр Overlap и изменяются стандартные стили точечных и площадных объектов.
objects check from TestFile into table Dumpfile Overlap SelfInt Symbol (67, 16711680, 28)
Overlap Pen (1,2,0) Brush (2, 16776960,0)
Gap 100000 Units "sq mi" Pen (1,2,0) Brush (2,255,0)
Смотрите также:
Create PLine, Create Region, ObjectGeography(_), ObjectInfo(_)
38 |
Справочник MapBasic |