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

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

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



Зарегистрирован: 27.07.2006
Сообщения: 14
Откуда: Кемерово

СообщениеДобавлено: Пн Авг 28, 2006 12:17 pm    Заголовок сообщения: как узнать координату точки Добавить ответ со ссылкой на данный текст

Здраствуйте,
Начал заниматься интегрированной картографией.много неудобств т.к. перевожу на с#.
МэпБэйсика у меня нет и ,соответственно, нету и примеров.Работаю по книге "среда разработки : мэп бэйсик" . Кое что уже сделал. Застопорился на следующем вопросе:Нужно определить координаты точки карты, куда ткнул мышкой.аргумент в функции commandwindow скорее всего неправильный, т.к. def файлов тоже нету.но это можно подобрать.
//обработчик кнопки "выбрать"
{
string s;
MI.RunMenuCommand(1701);
s=(string)MI.Eval("CommandInfo(15)");
}
выдает ошибку:аргумент 2 вышел за заданные пределы
что я не правильно делаю?Или вообще нужно подходить с другой стороны?Вообще поясните пожалуйста, что происхоит при нажатии мышкой на карту(в mapinfo -окно map basic никакой информации не выдает) для понимания принципа.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дмитрий



Зарегистрирован: 27.07.2006
Сообщения: 14
Откуда: Кемерово

СообщениеДобавлено: Чт Авг 31, 2006 12:58 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

пришел к выводу что неправильно все делаю..((

через ole командную строчку map-info интегрировать в свое приложение удалось сразу а вот определить коорднаты нет.
как по описанию
написал произвольную функцию-обработчик при применении инструмента
public void SelectXY(string str)
{
this.Text=MI.Eval("CommandInfo(CMD_INFO_X)");
this.Text+=MI.Eval("CommandInfo(CMD_INFO_Y)");

//или this.text=str;
}
нужно переопределить стандартные кнопки панели "Операции"
и им указать метод- Calling OLE f1
так вот в примерах везде делают через добавление новых кнопок на панель,тогда как будет вестись стандартная обработка??
ерунда типа этом не проходит
MI.Do("Alter ButtonPad ID 1 Alter Button Calling OLE SelectXY ");
всяко пробовал но всегда одна ошибка: переменная или поле не определена. Как будно map- info ждет свою какую-то функцию.
Ни одного нормальнго примера НЕТ!
Буду рад объяснению или нормальному примеру определения координаты клика.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дмитрий



Зарегистрирован: 27.07.2006
Сообщения: 14
Откуда: Кемерово

СообщениеДобавлено: Ср Сен 20, 2006 4:30 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Неужели никто не знает как получить координаты точки, где применили инструмент..! Я уже и в реестре регистрировал свою сборку.Строку состояния передает, а в произвльную функцию нет.И никто не может сказать что неправильно я делаю.
MI.Do("Alter ButtonPad ID 1 Alter Button Calling OLE \"SelectXY\" ID 1701 ");
..
..
public void SelectXY(string str)
{
this.Text=MI.Eval("CommandInfo(CMD_INFO_X)");
this.Text+=MI.Eval("CommandInfo(CMD_INFO_Y)");

//или this.text=str;
}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Андрей Могильный



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

СообщениеДобавлено: Ср Сен 20, 2006 8:28 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Ты строку состояния получил? Ну дык вот там и есть координаты (если она включена в этом режиме, если не включена, то включи сам)! Вычленяй их из строки состояния и храни у себя. При каждом изменении строки состояния (читай - координат курсора мыши), ты снова получишь строку состояния, снова вычленяй координаты и храни у себя, при необходимости на этом же событии делай обработку.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Дмитрий



Зарегистрирован: 27.07.2006
Сообщения: 14
Откуда: Кемерово

СообщениеДобавлено: Чт Сен 21, 2006 4:55 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

1)такая мысль была,но так я буду получать текущие координаты, но нужно то когда я применяю инструмент.Так как мой picturebox в котором отображается карта уже не реагирует на стандартные события(нажатие мыши в данном случае) и,поэтому я не буду здать в каком месте ткнул мышкой, поэтому хотелось бы способом , которым не получается .
2)а насчет приведенного кода..логика хоть правильная ?Если строка состояния передается, то, теоретически, программа может принимать сообщения от mapinfo(т.е. работает как ole сервер,дело в том что в c# нет оле или activeX проектов ) .... а нельзя ли выложить примеры mapbasic с интегрированной картографией, так как у меня нет совсем или на мыло nizinkin@mail.ru
Буду весьма признателен.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дмитрий



Зарегистрирован: 27.07.2006
Сообщения: 14
Откуда: Кемерово

СообщениеДобавлено: Пн Сен 25, 2006 7:29 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

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

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


Top.Mail.Ru