Страница 1 из 1
Рисование через MapBasic
Добавлено: 27 апр 2011, 13:23
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
Re: Рисование через MapBasic
Добавлено: 28 апр 2011, 08:45
asgs
Посмотрите вот эту программу
asgs.narod.ru/downloads/programs/DirectGeo.rar, там используется примерно тот же принцип, что и в Вашей задаче. Если моя реализация устроит, напишите в личку, пришлю исходники.
Re: Рисование через MapBasic
Добавлено: 28 апр 2011, 20:09
dya8oll
У вас объект создаеться по координатам.это я тоже реализовал.а мне нужно чтобы из программы вызывался инструмент рисования точки и ты уже сам курсором ставишь объект.такое реально сделать?
Re: Рисование через MapBasic
Добавлено: 28 апр 2011, 22:02
kamennovs
Инструмент рисования точки вызывается командой Run Menu Command 1711, либо
Run Menu Command M_TOOLS_POINT. Смотрите руководство пользователя MB. Этой командой можно вызвать любой из инструментов пенала. Т.е. после ее выполнения конкретный инструмент будет нажат в пенале, вам нужно только нажать на окно карты, чтобы нанести соответствующий символ.
Re: Рисование через MapBasic
Добавлено: 30 апр 2011, 20:27
dya8oll
kamennovs писал(а):Инструмент рисования точки вызывается командой Run Menu Command 1711, либо
Run Menu Command M_TOOLS_POINT. Смотрите руководство пользователя MB. Этой командой можно вызвать любой из инструментов пенала. Т.е. после ее выполнения конкретный инструмент будет нажат в пенале, вам нужно только нажать на окно карты, чтобы нанести соответствующий символ.
Спасибо,помогло.еще такой вопрос возможно ли после нанесения соответсвующего символа вызывался диалог в котором можно было бы привязать данные к символу?
Re: Рисование через MapBasic
Добавлено: 01 май 2011, 21:41
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"