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

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

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



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

СообщениеДобавлено: Вт Авг 21, 2007 1:06 pm    Заголовок сообщения: Как определить коодинаты курсора на карте? Добавить ответ со ссылкой на данный текст

Привет! Я встроил карту MapInfo в приложение Delphi. Подскажите пожалуйста, как определить расположение курсора на этой карте.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Radgard



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

СообщениеДобавлено: Ср Авг 22, 2007 2:40 am    Заголовок сообщения: я вот тут такое писал... Добавить ответ со ссылкой на данный текст

есть у меня код написанного мною на MapBasic небольшого модуля... делает он немного побольше чем тебе надо...
посмотри, может пригодится... по крайнгей мере работает без проблем (но под мапой)...
все взято из разных мануалов по mapbasic + некоторые ухищрения!!!
по крайней мере под mapinfo можно определить даже запись в таблице, объект которой мышкой выделен... комментарии в комплекте!
но если знаком с интегрированной картографией, то карты в руки:

Include "mapbasic.def"
Include "icons.def"

'Объявляем подпрограммы
Declare Sub Main
Declare Sub tool_sub
Declare Sub alex1
declare sub ok_sub
declare sub cansel_sub

Sub Main

'Создаем панель инструментов
Create ButtonPad "Поиск" As

'Создаем кнопку информации
ToolButton Calling tool_sub ID 1
Icon MI_ICON_REALESTATE_2
Cursor MI_CURSOR_ARROW
DrawMode DM_CUSTOM_POINT
HelpMsg "Укажите мышкой на Карту\nПоиск в точке"

'Создаем кнопку помощи
pushbutton
Icon MI_ICON_TRANSPORT_19
calling alex1
HelpMsg "Это вторая кнопка\nВторая кнопка"
'Separator
Width 2

Print "Работает программа поиска."
Print "Выберите инструмент из панели Поиск и укажите на Карту."

End Sub


Sub tool_sub

' Эта процедура вызывается, если пользователь действует
'одним из инструментов из панели Поиск.

Dim x, y As Float,
i, i_found, i_row_id, i_win_id, Pole as integer,
s_table As Alias

i_win_id = FrontWindow( )
If WindowInfo(i_win_id, WIN_INFO_TYPE) <> WIN_MAPPER Then
Note "Этот инструмент работает только в окне Карты."
Exit Sub
End If

' Определяем начальную точку действия инструмента.
x = CommandInfo(CMD_INFO_X)
y = CommandInfo(CMD_INFO_Y)

If CommandInfo(CMD_INFO_TOOLBTN) = 1 Then
' случай, когда действует точечный инструмент.
' определяем, сколько объектов содержат данную точку.
i_found = SearchPoint(i_win_id, x, y)
End If

If i_found = 0 Then
Print Chr$(12)
Beep ' Объектов в этом месте нет.
print "Пусто"

Else
Print Chr$(12)
end if

If CommandInfo(CMD_INFO_TOOLBTN) = 1 then
Print "Point: x=" + x + ", y= " + y
End If

' Обработка результатов поиска.
For i = 1 to i_found
' Определяем имя таблицы, содержащей найденный объект.
s_table = SearchInfo(i, SEARCH_INFO_TABLE)

' Определяем номер записи, содержащей найденный объект.
i_row_id = SearchInfo(i, SEARCH_INFO_ROW)
'Перемещаемся в выбранную строку
Fetch rec i_row_id From s_table

'Находим значение MI_PRINX
if s_table = "Building1" then
Pole = Building1.mi_prinx
print "mi_prinx равен: " + Pole
'Запускаем программу информации
run program "C:\Map_BASIC\1.exe"
end if

print "Имя таблицы: " + s_table
print "Номер записи: " + i_row_id

next

End sub

Sub alex1
Dialog Title "Запустить"
Control StaticText Title "Нужно ли запускать окно помощи?"
Control Okbutton calling ok_sub
Control CancelButton calling cansel_sub
end sub

sub ok_sub
end sub

sub cansel_sub

end sub
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Gazi



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

СообщениеДобавлено: Ср Фев 17, 2010 10:03 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

не могли бы Вы рассказать, что такое MI_PRINX? какая суть всего этого блока? а то в справке не нашел
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
FedorinoFF



Зарегистрирован: 01.02.2007
Сообщения: 272
Откуда: Санкт-Петербург

СообщениеДобавлено: Ср Фев 17, 2010 10:47 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

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

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


Top.Mail.Ru