www.map-info.ru :: Просмотр темы - Оператор Ater Object и текстовый объект...
                               РќР° главную страницу сайта

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  

 
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
Лебедев И.В.



Зарегистрирован: 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. Пример, кстати, оттуда
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Лебедев И.В.



Зарегистрирован: 30.05.2006
Сообщения: 14
Откуда: г.Ноябрьск

СообщениеДобавлено: Чт Фев 01, 2007 10:07 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Спасибо! Действительно стоило внимательней почитать MB_UG! И за ссылочку...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Top.Mail.Ru