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

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

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



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

СообщениеДобавлено: Пт Окт 31, 2008 11:16 am    Заголовок сообщения: Программирование в среде Delphi Добавить ответ со ссылкой на данный текст

:). Суть проблемы в том что мне нужно получить Bitmap стилей линий, площадей, символов и текста.
На ум пока пришло импорт библиотек используемых MapInfo. Кто знает какую dll'ку и функцию нужно использовать?
Или есть какой другой способ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Андрей Могильный



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

СообщениеДобавлено: Ср Ноя 05, 2008 10:45 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Не так-то все просто. Стили линий хранятся в *.pen файлах, заливки площадей в miresXXX.dll, символы вообще черти где, а текст - текст это ж любые фонты Windows.
Так что задача выливается далеко в нетривиальную...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Const



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

СообщениеДобавлено: Чт Ноя 06, 2008 4:22 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Андрей Могильный писал(а):
Не так-то все просто. Стили линий хранятся в *.pen файлах, заливки площадей в miresXXX.dll, символы вообще черти где, а текст - текст это ж любые фонты Windows.
Так что задача выливается далеко в нетривиальную...

Ну с символами и текстом я то справлюсь. Не проблема. Да и задача не такая уж и нетривиальна. Несколько условий и нет проблемы. Тут то задача состоит в том, какие функции существуют и откуда их извлечь, чтобы вырисовывать объекты так как они отображаются в MapInfo. Конечно, я могу написать самостоятельно алгоритмы вырисовывающие объекты. Но вот это уже действительно нетривиальная задача и потребует очень много сил и времени.
----
Для справки. Я делаю редактор M2m-Файла для панарамавского модуля конвертации в MIF.
----
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Андрей Могильный



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

СообщениеДобавлено: Чт Ноя 06, 2008 10:50 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Велосипед? Ибо есть:
http://www.esti-map.ru/LinkClick.aspx?link=http%3a%2f%2fwww.esti-map.ru%2fplugins%2fpanorama.exe&tabid=53&mid=1134

А про нетривиальность я имел в виду именно то, что сначала придется выяснить формат хранения всех объектов, а потом уже писать самостоятельно их отрисовку.
Может быть чем-то поможет библиотека MITAB:
http://mitab.maptools.org/
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Чук и Гек



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

СообщениеДобавлено: Пн Фев 16, 2009 9:22 pm    Заголовок сообщения: API-функция MoveWindow Добавить ответ со ссылкой на данный текст

Подскажите пожалуйста новичкам, почему, когда изменяем размер формы с картой, форма не перерисовывается, хотя соответствующая апи-функция выполняет это действие. Только при выборе любого объекта на карте и последующем изменении размеров окна происходит перерисовка.
Вот обработчик на изменение размера окна с картой:
procedure TfrChild.FormResize(Sender: TObject);
var
MsgString : String;
result: String;
begin
MsgString := 'FrontWindow()';
result:= oleMapInfo.Eval(MsgString);
MsgString:='WindowInfo('+ result + ',' + '12' + ')';
result:= oleMapInfo.Eval(MsgString);
MapperID := StrToInt(result);
MoveWindow(MapperID, 0, 0, Panel1.ClientWidth, Panel1.ClientHeight, True);
end;

заранее благодарны
Very Happy
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Alex_Y



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

СообщениеДобавлено: Вт Мар 31, 2009 11:51 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Чук и Гек

Судя по TfrChild вы одновременно открываете несколько окон карты.
При изменении размера в делфи, в маринфо не меняется фокус окна, поэтому, скорее всего FrontWindow() вам возвращает указатель на другое окно карты. Когда же вы выбираете объект, то МИ меняет верхнее окно и все нормально работает.
В данном случае надо при создании окна карты, Сразу запоминать его указатель, и в MsgString := 'FrontWindow()'; использовате его, а не поиск верхнего окна.

Вроде так.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Чук и Гек



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

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

Спасибо большое ))) вроде разобрались Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Чук и Гек



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

СообщениеДобавлено: Ср Апр 29, 2009 8:00 am    Заголовок сообщения: Ошибка автоматизации Добавить ответ со ссылкой на данный текст

Всем привет! Если кто-нибудь сталкивался с сообщениями типа " Не удается выполнить исходящий вызов, так как приложение обрабатывает входящий синхронный вызов", подскажите какова может быть её причина и как с ней справиться...очень очень нужно!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
gizmo



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

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

Всем доброго времени суток! Может кто знает:
На какое событие удобнее повесить handler по определению доступности пунктов меню Mapinfo для MDI-приложения на Delphi? Есть ли функция, подобная MenuitemInfoByHandler, для определения доступности элементов управления-кнопок?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

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


Top.Mail.Ru