Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MB6REFRU.pdf
Скачиваний:
10
Добавлен:
13.02.2015
Размер:
3.83 Mб
Скачать

Оператор 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 (например, новая XLкоордината); polygon_num – короткое целое число, идентификатор для одного полигона в объекте регион (область);

node_num – короткое целое число, идентификатор для одного узла в полилинии или полигоне; x, y – XL и YLкоординаты узла.

Описание:

Оператор Alter Object изменяет форму, местоположение, графический стиль существующего объекта. Эффект действия оператора Alter Object зависит от того, какое предложение используется в конструкции оператора: Info, Node, или Geography.

Если оператор использует предложение Info, то MapBasic изменяет графический стиль оформления объекта (например, стиль линии и штриха). Если оператор использует предложение Node, то MapL Basic добавляет, удаляет или передвигает узлы объекта типа "полилиния" или "область". Если оператор включает в себя предложение Geography, то MapBasic изменяет географические атрибуты всех объектов, не являющихся полилиниями и областями (например, XL или YLкоордината точечного объекта).

Предложение 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 "MAPBA4 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) в функции ObjectGeogra4 phy(_) и в операторе Alter Object.

В следующей таблице в первой колонке приводятся имена кодов для использования в предложении Geography в качестве параметра obj_geo_code. Имена присвоены целочисленным кодам для удобства использования их в операторе. Эти определения находятся в файле MAPBASIC.DEF и, если Вы хотите использовать имена, включите в начало Вашей программы оператор Include "MAP4 BASIC.DEF".

Значения obj_geo_code

Результат выполнения Alter Object

 

 

OBJ_GEO_MINX

Изменяет XLкоординату верхнего левого угла минимального

 

 

прямоугольного покрытия (МПП).

 

 

 

 

OBJ_GEO_MINY

Изменяет YLкоординату верхнего левого угла МПП.

OBJ_GEO_MAXX

Изменяет XLкоординату нижнего правого угла МПП.

OBJ_GEO_MAXY

Изменяет YLкоординату нижнего правого угла МПП.

OBJ_GEO_ARCBEGANGLE

Изменяет начальный угол дуги.

OBJ_GEO_ARCENDANGLE

Изменяет конечный угол дуги.

OBJ_GEO_LINEBEGX

Изменяет XLкоординату начальной точки линии.

OBJ_GEO_LINEBEGY

Изменяет YLкоординату начальной точки линии.

 

 

 

Справочник MapBasic

35

Оператор Alter Object

OBJ_GEO_LINEENDX OBJ_GEO_LINEENDY OBJ_GEO_POINTX OBJ_GEO_POINTY OBJ_GEO_ROUNDRADIUS

OBJ_GEO_TEXTLINEX

OBJ_GEO_TEXTLINEY

OBJ_GEO_TEXTANGLE

Предложение Node

Изменяет XLкоординату конечной точки линии.

Изменяет YLкоординату конечной точки линии.

Изменяет XLкоординату точечного объекта.

Изменяет YLкоординату точечного объекта.

Изменяет радиус закругления для объекта типа "скругленный прямоугольник".

Изменяет координату по оси X конца текстовой строки объекта.

Изменяет координату по оси Y конца текстовой строки объекта.

Изменяет угол поворота текстового объекта

Оператор 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

Смотрите также:

Create PLine, Create Region, ObjectGeography(_), ObjectInfo(_)

36

Справочник MapBasic

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]