Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Лебедев И.В.
Зарегистрирован: 30.05.2006 Сообщения: 14 Откуда: г.Ноябрьск
|
Добавлено: Вт Янв 30, 2007 10:13 am Заголовок сообщения: Оператор Ater Object и текстовый объект... |
|
|
Нарисовал примерно такую функцию:
Код: |
Function Textline(byVal Obje As Object) As Object
Set Map CoordSys NonEarth Units "m"
Dim X, Y As Float
Dim Ob As Object
Ob = Obje
X = ObjectGeography(Ob, OBJ_GEO_TEXTLINEX)
Y = ObjectGeography(Ob, OBJ_GEO_TEXTLINEY)
Alter Object Ob Geography OBJ_GEO_TEXTLINEX, X+100
Alter Object Ob Geography OBJ_GEO_TEXTLINEY, Y+100
Textline=Ob
End Function |
Она должна сдвинуть текстовый объект на определённое расстояние от исходной позиции (у нас на 141.42135623730950488016887242097 м :) ), однако никаких изменений не происходит. Те-же операции с точечными объектами и узлами полигонов проходят на "ура":
Код: |
Function Points(byVal Obje As Object) As Object
Set Map CoordSys NonEarth Units "m"
Dim X, Y As Float
Dim Ob As Object
Ob = Obje
X = ObjectGeography(Ob, OBJ_GEO_POINTX)
Y = ObjectGeography(Ob, OBJ_GEO_POINTY)
Alter Object Ob Geography OBJ_GEO_POINTX, X+100
Alter Object Ob Geography OBJ_GEO_POINTY, Y+100
Points=Ob
End Function |
В чём причина? |
|
Вернуться к началу |
|
|
asgs
Зарегистрирован: 22.08.2006 Сообщения: 21 Откуда: Новосибирск
|
Добавлено: Чт Фев 01, 2007 8:37 am Заголовок сообщения: Alter Object |
|
|
Читайте внимательно хелп:
OBJ_GEO_TEXTLINEX x coordinate of the end of a Text object's label line.
OBJ_GEO_TEXTLINEY y coordinate of the end of a Text object's label line.
ObjectGeography с такими параметрами возвращает координаты конца выноски к текстовому объекту. Alter Object честно пытается их же изменить.
В похожей задачкой я боролся так:
X = ObjectGeography(Res,OBJ_GEO_MAXX)
Y = ObjectGeography(Res,OBJ_GEO_MAXY)
X1 = ObjectGeography(Res,OBJ_GEO_MINX)
Y1 = ObjectGeography(Res,OBJ_GEO_MINY)
if not MoveGraphics then
NewX = CalcX(X,Y)
NewY = CalcY(X,Y)
NewX1 = CalcX(X1,Y1)
NewY1 = CalcY(X1,Y1)
else
NewX = MoveX(X)
NewY = MoveY(Y)
NewX1 = MoveX(X1)
NewY1 = MoveY(Y1)
end if
Alter Object Res
Geography OBJ_GEO_MAXX, NewX
Alter Object Res
Geography OBJ_GEO_MAXY, NewY
Alter Object Res
Geography OBJ_GEO_MINX, NewX1
Alter Object Res
Geography OBJ_GEO_MINY, NewY1
И кстати, пока вспомнил. На http://asgs.narod.ru я выложил в исходниках программу ReCalc, которая как раз занимается пересчетом графики в MapInfo. Пример, кстати, оттуда |
|
Вернуться к началу |
|
|
Лебедев И.В.
Зарегистрирован: 30.05.2006 Сообщения: 14 Откуда: г.Ноябрьск
|
Добавлено: Чт Фев 01, 2007 10:07 am Заголовок сообщения: |
|
|
Спасибо! Действительно стоило внимательней почитать MB_UG! И за ссылочку... |
|
Вернуться к началу |
|
|
|