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

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

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



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

СообщениеДобавлено: Чт Фев 11, 2016 1:54 pm    Заголовок сообщения: Формирование каталога координат мнгоконтурного ЗУ Добавить ответ со ссылкой на данный текст

Добру день!
Суть проблемы в следующем формирую таблицу "Каталог координат" туда заносятся номер точки, Х, У, длина линии, румб, дир.угол, и есть поле от точки до точки. Вопрос по полю "от точки до точки", по простому участку все просто "1-2, 2-3, 3-4, 4-1", а вот по мнококонтурному так не выходит, может кто подскажет как вставить пустую строку-разделитель в таблицу формировать сквозную нумерацию по контурам? "1-2, 2-3, 3-4, 4-1, 5-6, 6-7, 7-8, 8-5"?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
thegeo



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

СообщениеДобавлено: Чт Фев 11, 2016 9:54 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

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

sub testPrint(ob as object)
dim cnt,i,j,k,n,n0 as integer
dim xx(),yy() as float
dim x1,y1,x2,y2,s as float
dim sNum as string
cnt=ObjectInfo(ob,OBJ_INFO_NPOLYGONS)
print "Контур 1"
for i=1 to cnt
call getNodesInfo(ob,i,yy,xx)
k=ubound(xx)-1
for j=1 to k
n=n+1
if j=1 then n0=n end if
x1=xx(j)
y1=yy(j)
x2=xx(j+1)
y2=yy(j+1)
s = Sqr((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1))
if j<k then
sNum=str$(n) & " - " & str$(n+1)
else
sNum=str$(n) & " - " & str$(n0)
end if
print sNum & format$(s," #.#0")
next
if i<cnt then
print "Контур " & str$(i+1)
end if
next
end sub
'возвращает массив координат для контура
'ob - область
'nc - номер контура
Sub getNodesInfo(ob As object, ByVal nc As Integer, xx() As float, yy() As float)
Dim j, k As Integer
onerror goto ex
k = ObjectInfo(ob,OBJ_INFO_NPOLYGONS + nc)
redim xx(k)
redim yy(k)
For j = 1 To k
xx(j)=ObjectNodeX(ob,nc,j)
yy(j)=ObjectNodeY(ob,nc,j)
Next
Exit Sub
ex:
note Error$()
End Sub
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
kad3



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

СообщениеДобавлено: Пт Фев 12, 2016 7:18 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

thegeo писал(а):
Пример. В данном случае результат выводится в окно "Сообщение". Полагаю, что вы сможете приладить это для своих целей.

Спасибо. Попробую.
Все получилось! Ещё раз спасибо.
правда не так красиво как в примере, но главное работает.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
kad3



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

СообщениеДобавлено: Чт Фев 18, 2016 2:31 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Ещё возник один вопрос, можно ли сразу задать оформление таблицы в окне списка в коде программы. Например чтоб шрифт был Times New Roman CYR размером 10?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
thegeo



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

СообщениеДобавлено: Чт Фев 18, 2016 8:42 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Можно через оператор
Set Window browseID Font MakeFont("New Roman CYR",0,10,0,16777215)
здесь browseID идентификатор окна списка
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
kad3



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

СообщениеДобавлено: Чт Фев 18, 2016 8:59 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

thegeo писал(а):
Можно через оператор
Set Window browseID Font MakeFont("New Roman CYR",0,10,0,16777215)
здесь browseID идентификатор окна списка

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

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


Top.Mail.Ru