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

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

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





СообщениеДобавлено: Пн Апр 10, 2006 11:21 am    Заголовок сообщения: Интегрированная картография Добавить ответ со ссылкой на данный текст

При интегрированной картографии (Delphi) выполняю оператор изменения центра карты :
Mi.Do('Set Map Center (..,..)');
Карта довольно большая и её обновление происходит несколько секунд.
Как отследить время завершения этого оператора?
Т.е. нужно чтобы программа ничего не делала пока этого обновления не произошло.
Вернуться к началу
Андрей Могильный



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

СообщениеДобавлено: Пн Апр 10, 2006 11:22 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Здесь возможен один хитрый workaround (другого пути я к сожалению пока не нашел). Пишется mb-программа, там реализуется обработчик RemoteQueryHandler. Далее в своей проге вызываете не MI.Do(), а MB.Eval() - где MB - наша mb-программа. MB.Eval() - это есть вызов RemoteQueryHandler в ней. Так вот, в Delphi не вернется управление пока не выполниться до конца вызов RemoteQueryHandler - ну а там собственно вы и вызываете Set Map Center (..,..) и прочие необходимые вам конструкции.
Этот хак нигде не описан, исследовал я его сам и вовсю используется в Инструментарии.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Sunzh
Гость





СообщениеДобавлено: Пн Апр 10, 2006 2:37 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Еще вопрос по интегрированной картографии.

Как известно ПК MapInfo предлагает концепцию внедрения возможностей MapInfo в другие приложения под названием Интегрированная Картография. Есть там в доке у объекта Application интересный метод DataObject(WindowId)позволяющий якобы получать доступ к метафайлу окна по ID, и довольно расплывчатое описание его использования. Библиотека типов MapInfo указанные интерфейсы IDataObject и др. не описывает, если кто-нибудь сталкивался, просветите пожалуйста как заполучить этот метафайл
Вернуться к началу
Андрей Могильный



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

СообщениеДобавлено: Пн Апр 10, 2006 2:37 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

В их библиотеке типов есть еще интерфейс IMIMapGen, у меня такое подозрение что это как раз то, что возвращает DataObject(WindowId). Попробуй, может получиться. О результатах доложить в студию!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Sunzh
Гость





СообщениеДобавлено: Вт Апр 11, 2006 2:29 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

А вот такой вопрос:
При объявлении предопределенных процедур SetStatusText и др. в COM объекте уведомления (callbackobject) в окне редактора библиотеки типов Delphi указываю возвращаемый тип как SCODE, а она мне говорит, что тип должен быть HResult, процедуры конечно работают и так, но хотелось бы привести все в наилучший вид, если кто знает заранее спасибо.
Вернуться к началу
Андрей Могильный



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

СообщениеДобавлено: Вт Апр 11, 2006 2:30 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Делайте в Delphi не COM-объект, а Automation Object.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
FedorinoFF



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

СообщениеДобавлено: Чт Фев 01, 2007 3:05 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Да, как-то пытался получить данные через DataObject(), но ничего вразумительного не происходило. Удавалось получить картинку требуемого окна, но она всегда была какого-то маленького размера. Про IMIMapGen тоже видел, но руки не дошли. Единственное что нашел в доке, так это требование инициализации этого интерфейса (возможно не точно выразился) путем присваивания свойста "Рабочий набор" (в рабочем окне должно быть одно единственное окно карты!!!!) В своей работе использую MI.Do, MI.Eval и т.п. Пока не совсем понял необходимость IMIMapGen (может он остался для обратной совместимости).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DEMON_UN



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

СообщениеДобавлено: Ср Окт 29, 2008 9:17 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Подниму тему :)

Можно ли поподробнее узнать как Вы использовали IDataObject? Непосредственно с COM объектом проблем нет, когда приходится выполнять "стандартные" действия, но вот (как я понимаю это единственная возможность заполучить граф. объект, исключая экспорт) при попытке получить ссылку на интерфейс получается ...No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

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


Top.Mail.Ru