www.map-info.ru :: Просмотр темы - CreateCircle
                               РќР° главную страницу сайта

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

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



Зарегистрирован: 31.05.2012
Сообщения: 1

СообщениеДобавлено: Чт Май 31, 2012 12:21 pm    Заголовок сообщения: CreateCircle Добавить ответ со ссылкой на данный текст

Здравствуйте. Помогите пожалуйста разобраться. Задача создать окружность с возможностью изменять радиус, изменяя значение в таблице.
С помощью вот такого кода научился создавать окружность в нужном месте и нужного радиуса:

Open Table "rad"
Insert Into rad (obj)
Values ( CreateCircle(-72, 42, 10000) )

Но я не могу найти как добавить в таблицу значение радиуса для последующего интерактивного редактирования. Буду очень благодарен за подсказку
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
sysrepos



Зарегистрирован: 22.10.2012
Сообщения: 39

СообщениеДобавлено: Вс Дек 02, 2012 5:52 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

инструмент, который изменяет радиус выбранной окружности (по значению из таблицы, колонка sortcode)

Include "mapbasic.def"
Include "icons.def"
Declare Sub Main
Declare Sub clear
Declare Sub proc1
Declare Sub proc2
Sub Main

Set Distance Units "m"
set CoordSys NonEarth Units "m" Bounds (-2979, -5284) (10306, 5274)

Create ButtonPad "Мои Кнопки" As pushButton
Icon MI_ICON_arrow
Calling proc2
HelpMsg "proc2"

pushButton
Icon MI_ICON_ZOOM_QUESTION
Calling clear
HelpMsg "clear"

show

End Sub

Sub proc2
dim i as integer
dim vtt as string
dim kolonka as alias
dim fx, fy as float
dim kol as integer
dim ob as object
dim tekrad, zr, dr as float
dim minx1, miny1, maxx1, maxy1 as float
dim minx2, miny2, maxx2, maxy2 as float

vtt=tableinfo(1,tab_info_name)
kolonka=str$(vtt)+"."+"obj"
Select * From vtt
Where str$(kolonka)="ellipse" into q0

kol=tableinfo(q0,tab_info_nrows)

for i=1 to kol
select * from q0 where rowid=i into q1
fetch first from q1
ob=q1.obj

tekrad=abs(ObjectGeography( ob,obj_geo_maxx)-ObjectGeography( ob,obj_geo_minx))/2
print "текущий радиус "+tekrad

zr=q1.sortcode
print "заданный радиус "+zr
print ""

dr=zr-tekrad

minx1=ObjectGeography( ob,obj_geo_minx)
miny1=ObjectGeography( ob,obj_geo_miny)
maxx1=ObjectGeography( ob,obj_geo_maxx)
maxy1=ObjectGeography( ob,obj_geo_maxy)

minx2=minx1-dr
miny2=miny1-dr
maxx2=maxx1+dr
maxy2=maxy1+dr

alter object ob
Geography OBJ_GEO_MINX, minx2

alter object ob
Geography OBJ_GEO_MINy, miny2

alter object ob
Geography OBJ_GEO_maxX, maxx2

alter object ob
Geography OBJ_GEO_maxy, maxy2

update q1 set object=ob

next

End Sub


Sub clear
print chr$(12)
End Sub
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

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


Top.Mail.Ru