Рисование через MapBasic

MapInfo, MapBasic
Ответить
dya8oll
Новоприбывший
Сообщения: 3
Зарегистрирован: 27 апр 2011, 13:16
Репутация: 0

Рисование через MapBasic

Сообщение dya8oll »

Здравствуйте.Стоит задача из диалогового окна вызвать рисование точки,затем нарисовав эту точку передать координаты в таблицу и заполнить остальные данные в таблице.Как это возможно сделать?подскажите пожалуйста.заранее спасибо.
пример диалога:
sub dan

Dialog
Title "Внесение данных"

Control groupbox
Title "Создание точки"
Height 35 width 170

Control OkButton
Title "Методом нанесения"
position 10,20
calling draw

Control OkButton
Title "По координатам"
position 100,20
calling dig

end sub
Аватара пользователя
asgs
Участник
Сообщения: 89
Зарегистрирован: 04 авг 2010, 06:35
Репутация: 1
Контактная информация:

Re: Рисование через MapBasic

Сообщение asgs »

Посмотрите вот эту программу asgs.narod.ru/downloads/programs/DirectGeo.rar, там используется примерно тот же принцип, что и в Вашей задаче. Если моя реализация устроит, напишите в личку, пришлю исходники.
Злобный йожег
dya8oll
Новоприбывший
Сообщения: 3
Зарегистрирован: 27 апр 2011, 13:16
Репутация: 0

Re: Рисование через MapBasic

Сообщение dya8oll »

У вас объект создаеться по координатам.это я тоже реализовал.а мне нужно чтобы из программы вызывался инструмент рисования точки и ты уже сам курсором ставишь объект.такое реально сделать?
kamennovs
Интересующийся
Сообщения: 21
Зарегистрирован: 08 фев 2011, 22:50
Репутация: 1
Откуда: Астрахань

Re: Рисование через MapBasic

Сообщение kamennovs »

Инструмент рисования точки вызывается командой Run Menu Command 1711, либо
Run Menu Command M_TOOLS_POINT. Смотрите руководство пользователя MB. Этой командой можно вызвать любой из инструментов пенала. Т.е. после ее выполнения конкретный инструмент будет нажат в пенале, вам нужно только нажать на окно карты, чтобы нанести соответствующий символ.
dya8oll
Новоприбывший
Сообщения: 3
Зарегистрирован: 27 апр 2011, 13:16
Репутация: 0

Re: Рисование через MapBasic

Сообщение dya8oll »

kamennovs писал(а):Инструмент рисования точки вызывается командой Run Menu Command 1711, либо
Run Menu Command M_TOOLS_POINT. Смотрите руководство пользователя MB. Этой командой можно вызвать любой из инструментов пенала. Т.е. после ее выполнения конкретный инструмент будет нажат в пенале, вам нужно только нажать на окно карты, чтобы нанести соответствующий символ.
Спасибо,помогло.еще такой вопрос возможно ли после нанесения соответсвующего символа вызывался диалог в котором можно было бы привязать данные к символу?
kamennovs
Интересующийся
Сообщения: 21
Зарегистрирован: 08 фев 2011, 22:50
Репутация: 1
Откуда: Астрахань

Re: Рисование через MapBasic

Сообщение kamennovs »

Это можно сделать. Необходимо использовать встроенную процедуру реагирующую на изменение в окне Sub WinChangedHandler. Создаете три глобальные переменные, например Global n, w as integer и sem As String Далее в Sub Main кидаете строчку n=TableInfo(Название вашей таблицы,TAB_INFO_NROWS), эта строчка передает в переменную n количество строчек вашей таблицы. Далее создаете процедуру
Sub WinChangedHandler
w=TableInfo(Название вашей таблицы,TAB_INFO_NROWS)
If n<w Then Goto eee
else Goto www
End If
eee:
Call Update
www:
End Sub
В процедуре описывается следующее, если количество строк, после изменения в окне карты, в таблице увеличилось, то вызываем процедуру Update. Под изменением мы понимаем создание символа. Далее создаем процедуру
Sub Update
w=TableInfo(Название вашей таблицы,TAB_INFO_NROWS)
Call Dialog "Ваш диалог"
Update Название вашей таблицы
Set NAME =sem "NAME название поля в которое будет заноситься информация, sem строчная переменная, в которую будет сохранятся введенная в Control EditText вашего диалога информация"
Where Rowid =w
call TableInfoS
End Sub

Sub TableInfoS
n=TableInfo(Название вашей таблицы,TAB_INFO_NROWS)
End Sub

В вашем диалоге создаете строчки
Control EditText
Position 55,50 "Позицию выберете сами"
Value "" Into sem "Значение вводится вручную, передается в переменную sem, а далее в новую строчку соответствующего поля, в нашем случае NAME"
Ответить

Вернуться в «MapInfo»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя