C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Знатоки MapX отзовитесь!  (Прочитано 18842 раз)
Max662
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 5


Знатоки MapX отзовитесь!
« : 19 Апрель 2007, 12:10:08 »

День добрый. Столкнулся с проблеммой в написании простенького приложения с использованием компоненты MapX. Смысл приложения в следующем: приложение должно получить запрос координат, отцентрировать карту по этим координатам и сохранить этот кусок карты в файл. Если у кого нибудь есть документация или примеры для MapX для C++ Builder то буду очень признателен. Все примеры для делфи, а под С++ нет  Сейчас мне пока удалось только загрузить слой в приложение:
Код:
AnsiString S=ExtractFilePath(ParamStr(0))+"\\res.TAB";
OleVariant o1, o2;
o1=(S);
o2=(1);
Map1->Layers->Add(o1,o2);

а вот даже просто вывод географических координат в строку состояния уже не работает.
Код:
void __fastcall TForm1::Map1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
float ScreenX,ScreenY;
double MX,MY;
 ScreenX = X;
 ScreenY = Y;
Map1->ConvertCoord(ScreenX,ScreenY,MX,MY,miScreenToMap); //тут ругается не несовместимость типов.
 StatusBar1->Panels->Items[0]->Text = "X:" + IntToStr(MX) + " Y:" + IntToStr(MY);
}

Вообще возможно сделать центровку карты по географическим координатам?
Кто вкурсе? Помогите хоть примерами...
« Последнее редактирование: 19 Апрель 2007, 15:54:44 от Max662 » Записан
Max662
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 5


Re: Знатоки MapX отзовитесь!
« Ответ #1 : 19 Апрель 2007, 15:51:22 »

Так с центровкой карты вроде разобрался... но определение координат под курсором мыши не работает всё равно. Пробывал сделать вместо Map1->ConvertCoord. Map1->ConvertCoordV с переменными типа OleVariant. ругаться перестал, но всё равно ничего не показывает. Просто возвращает пустые значения... вообще не врубаюсь  Ещё и триал кончается 
Записан
AVC
Администратор


Сказали спасибо: +28/-6
Offline

Сообщений: 1189


Re: Знатоки MapX отзовитесь!
« Ответ #2 : 19 Апрель 2007, 16:21:58 »

Цитировать
Знатоки MapX отзовитесь
Ждите Лену, она спец по картам.
Записан
Gedeon
Ы
Администратор


Сказали спасибо: +6/-0
Offline

Сообщений: 291


Re: Знатоки MapX отзовитесь!
« Ответ #3 : 19 Апрель 2007, 16:53:31 »

Цитата: AVC от 19 Апрель 2007, 16:21:58
Цитировать
Знатоки MapX отзовитесь
Ждите Лену, она спец по картам.
ПРочитав первый пост именно это хотел написать , ан нет, опередили )) .
Записан
Лена
Гость
Re: Знатоки MapX отзовитесь!
« Ответ #4 : 19 Апрель 2007, 19:20:32 »

Не помню. Пробуйте так:
Код
void __fastcall TForm1::Map1MouseMove(TObject *Sender, TShiftState Shift,
     int X, int Y)
{
CMapXPoint *pt;
pt = Map1->ConvertCoordP(OleVariant(X),OleVariant(Y),miMapToScreen);
Form1->sStatusBar1->Panels->Items[1]->Text = "X: " + String(pt->X) + "  Y: "+ String(pt->Y);
}
 

Замер растояний на карте (нашла среди своих записей):
Код
/*
Создать miToolTypePoly, например в OnCreate формы:
OleVariant unusedParam;
OleVariant unusedParam2;
unusedParam.VType=varError;
unusedParam.VError=2147614724;
unusedParam2=miCrossCursor;
Map1->CreateCustomTool(4, (ToolTypeConstants)miToolTypePoly, unusedParam2, unusedParam,unusedParam, unusedParam);
*/

 
//использовать:
void __fastcall TForm1::SpeedButton5Click(TObject *Sender)
{
Map1->CurrentTool=4;
}
 
 
 
void __fastcall TForm1::Map1PolyToolUsed(TObject *Sender, short ToolNum,
     long Flags, LPDISPATCH Points, VARIANT_BOOL bShift,
     VARIANT_BOOL bCtrl, VARIANT_BOOL *EnableDefault)
{
if ( ToolNum != 4)
    return;
 
if (Flags == miPolyToolEnd)
{
   Variant X;
   X =(Points);
   CMapXFeature  *f;
   f = Map1->FeatureFactory->CreateLine(X);
   int d = f->Length;
   sStatusBar1->Panels->Items[2]->Text = AnsiString("Расстояние: ") + AnsiString(d) + AnsiString(" м");
}
 
}
 
Записан
Max662
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 5


Re: Знатоки MapX отзовитесь!
« Ответ #5 : 20 Апрель 2007, 07:22:04 »

Цитата: Лена от 19 Апрель 2007, 19:20:32
Пробуйте так:

Спасибо огромное!   Есть ещё добрые люди  Я уже за...прыгался разбираться в этом MapX. Доков нет, если есть то для делфи, а код для делфи зачастую просто неработает в BCB 

P.s. Спасибо за замер растояний. У меня это конечно не используется, но с помощью вот таких примеров и есть хоть какой то шанс разобраться с MapX. Метод научного тыка уже надоел...
Записан
Лена
Гость
Re: Знатоки MapX отзовитесь!
« Ответ #6 : 20 Апрель 2007, 12:24:36 »

Цитата: Max662 от 20 Апрель 2007, 07:22:04
Спасибо за замер растояний. У меня это конечно не используется, но с помощью вот таких примеров и есть хоть какой то шанс разобраться с MapX. Метод научного тыка уже надоел...

Замер расстояний это очень удобная для картографии вещь. Инструмент miToolTypePoly позволяет посчитать любой маршрут, мне кажется, он просто необходим в любом картографическом проекте.
Что касается работы MapX и Builder, то должна вас огорчить, не все возможности MapX работают в Builder, поэтому разработчики и не декларируют поддержку MapX в С++ Builder. Вам не удастся, например,  создать анимационный слой AnimationLayer или слой рисования InsertionLayer. Вывод один: MapX не доработан в полном объеме для интеграции  с C++ Builder.
Тем не менее удается реализовать другие вещи (поиск и т.д.)
Записан
Max662
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 5


MWS
« Ответ #7 : 20 Апрель 2007, 12:44:30 »

Мне много возможностей и ненадо. У меня есть проект, который снимает лог с автомобилей и кладёт их в БД. А пользователь потом может посмотреть что с машиной происходило. Т.е. всё идёт через WEB интерфейс, т.ч. много возможностей и ненадо... Всё уже работает, кроме отображения местоположения на карте. Вот это я сейчас и хочу сделать. А как например загружать не по слоям, а сразу MWS файл? или это невозможно?
Записан
Лена
Гость
Re: Знатоки MapX отзовитесь!
« Ответ #8 : 20 Апрель 2007, 12:58:44 »

Что такое MWS? Я знаю про *.gst. Это файл который загружает одной строкой кода, просмотр всех нужных слоев. Файл создается в Geoset Meneger.

>всё идёт через WEB интерфейс

Напишите подробнее как это реализовано? Я не понимаю как MapX может работать в WEB. У разработчиков для этого есть MapXtreme.
Напишите, если будет время, подробнее что делает ваша программа, а то не понятно. Лучше на email.
Записан
Max662
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 5


Re: Знатоки MapX отзовитесь!
« Ответ #9 : 20 Апрель 2007, 13:13:13 »

Цитата: Лена от 20 Апрель 2007, 12:58:44
Напишите подробнее как это реализовано? Я не понимаю как MapX может работать в WEB. У разработчиков для этого есть MapXtreme.
Напишите, если будет время, подробнее что делает ваша программа, а то не понятно. Лучше на email.
Я WEB интерфейс писал сам отдельно на BCB. т.е. про MapX я тогда вообще ничего не слышал и не знал.

E-Mail у вас скрытый. Я его не вижу. Если скажете - то без проблемм расскажу, чтоб флуд не разводить тут. И вообще интересно было бы пообщаться 

MWS это файл MapXtreme типа WorkSpace. Просто видел один геосервер, дак он грузит именно *.mws файлы. Вот и спросил.
Записан
Лена
Гость
Re: Знатоки MapX отзовитесь!
« Ответ #10 : 20 Апрель 2007, 13:58:29 »

Отправила сообщение.
Записан
kig777
Участник


Сказали спасибо: +43/-0
Offline

Сообщений: 12


Re: Знатоки MapX отзовитесь!
« Ответ #11 : 01 Август 2013, 16:16:49 »

Решил проблему с InsertionLayer в С++ Builder 6 (RAD XE2) !!!!!!!!!!!(два дня мучился)
Поколдовал с файлами импортирования библиотеки.

Теперь у меня в ВСВ6 успешно работает код:
Код
    Variant vLayers = (IDispatch *)Map1->Layers;
   Variant noparam;
   noparam.vt = VT_ERROR;
   noparam.VError = DISP_E_PARAMNOTFOUND;
   Variant newLayer = vLayers.OleFunction("CreateLayer", "NewLayer",noparam,Variant(1));
   newLayer.OlePropertySet("Editable",true);
   vLayers.OleProcedure("InsertionLayer",newLayer);
   Map1->CurrentTool = miAddPointTool;

В RAD ХЕ2 в работает такой код (без изменения импортированных файлов):
Код
      CMapXLayer* newLayer = Map1->Layers->CreateLayer(L"NewLayer",TNoParam(),Variant(1));
 newLayer->Editable = true;
 Variant vLayers = (IDispatch *)Map1->Layers;
 vLayers.OleProcedure("InsertionLayer",newLayer);
« Последнее редактирование: 02 Сентябрь 2013, 20:27:05 от volvo877 » Записан
SilverFish
Участник


Сказали спасибо: +14/-6
Offline

Сообщений: 786


Re: Знатоки MapX отзовитесь!
« Ответ #12 : 02 Август 2013, 00:01:43 »

А использование InsertionLayer и AnimationLayer тоже работает?
« Последнее редактирование: 02 Август 2013, 00:09:43 от SilverFish » Записан
kig777
Участник


Сказали спасибо: +43/-0
Offline

Сообщений: 12


Re: Знатоки MapX отзовитесь!
« Ответ #13 : 03 Август 2013, 01:08:23 »

и InsertionLayer и AnimationLayer......Все работает!!!!!!

Как я заставил МарХ полностью работать в ВСВ6.... Я думаю эту технологию можно применить для любого СОМ, ActiveX компонента....если он в Delphi работает, а в С++ Builder не хочет...

Я одновременно импортировал библиотеку в ВСВ6 и Delphi7

в созданном, откомпилированном и установленном проекте ВСВ mapx.bpl удалил файлы OCX и TLB
импортировал в этот проект файл Delphi TLB.pas..... при этом ВСВ создал hpp-заголовок.. и заново запустил build!!!!! теперь у меня в ВСВ компонент Delphi..
в проектах подключается заголовок hpp.... в нем состав интерфейсов(классов) марХ не прописан (кроме TMap), но через Variant.Ole... все работает как в Delphi...

Для вызова свойств, методов, функций объектов в данном случае нужен указатель IDispatch*

В ВСВ6 по умолчанию классы, их свойства, методы, функции завернуты в кучу функций(шаблонов) и, поэтому поэтому его не достать (может и можно, но хлопотно)
В Delphi все классы интерфейсов объявлены как прямые потомки IDispath, поэтому легко преобразовать.

В ХЕ2 все заработало без этих фокусов:
Variant vLayers = (IDispatch *)Map1->Layers;
vLayers.OleProcedure("InsertionLayer",newLayer);
Т.е. можно работать как с обычными классами (с подсказками Code Insight ), а для глючных InsertionLayer и AnimationLayer через Variant;

Почему такие сложности?
Думаю причина в МарХ....
Даже в описании МарХ 5.0 в одном месте пишется, что InsertionLayer и AnimationLayer - это свойства, а в другом месте - методы.
(заметьте, я вызываю методы (OleProcedure), а Builder импортирует свойства...)
Кстати, в Делфи (и ВСВ6 после шаманства) эти эти значения после присвоения тоже равны нулю (неопределены) , хотя все работает....
В делфи код: ISLayername := Map1.Layers.AnimationLayer.Name не работает...
А в примерах на Визуал Бейсике подобное я видел.
Что-то там внутри MapX перекрутили... да и Builder не совершенен....(когда-то нам приходилось менять заголовочные файлы STL ВСВ5 для того, чтобы стандартные шаблоны мар правильно работали..и некоторые переделанные ОСХ и TLB файлы я долго бережно храню....так как не уверен, что смогу их повторно "причесать" при необходимости)...
Но если ActiveX-компонент работает в одном средстве разработки, он ДОЛЖЕН работать и в других.
Для этого СОМ-технология и разрабатывалась...
Записан
kig777
Участник


Сказали спасибо: +43/-0
Offline

Сообщений: 12


Re: Знатоки MapX отзовитесь!
« Ответ #14 : 04 Август 2013, 02:07:44 »

Блин, если в ВСВ6 отключить Build with runtime packages код:
Variant vLayers = (IDispatch *)Map1->Layers; перестает работать....во время исполнения ошибка...

Правильней писать так:

Код
  Variant vMap = Map1->DefaultDispatch;
 Variant vLayers = vMap.OlePropertyGet("Layers");
 vLayers.OleProcedure("LayersDlg");

Тогда все ОК!

А теперь дойдя до этого.....я понял, что извращаться над импортированием в ВСВ6 НЕ НУЖНО....

РЕШЕНИЕ ВОТ: Variant vMap = Map1->DefaultDispatch;   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! И ВСЕ!!!!!!!!!!!!!!!!!!!!!!!!!

тогда можно работать с классами как обычно, а для глючных InsertionLayer и AnimationLayer через Variant;
« Последнее редактирование: 02 Сентябрь 2013, 20:27:22 от volvo877 » Записан
SilverFish
Участник


Сказали спасибо: +14/-6
Offline

Сообщений: 786


Re: Знатоки MapX отзовитесь!
« Ответ #15 : 04 Август 2013, 13:40:48 »

Как окончательно выглядит код создания и использования AnimationLayer в С++ Builder XE2-XE4?
Спасибо.
Записан
kig777
Участник


Сказали спасибо: +43/-0
Offline

Сообщений: 12


Re: Знатоки MapX отзовитесь!
« Ответ #16 : 04 Август 2013, 14:36:08 »

Цитата: SilverFish от 04 Август 2013, 13:40:48
Как окончательно выглядит код создания и использования AnimationLayer в С++ Builder XE2-XE4?
Спасибо.
В любом С++ Builder должен работать  универсальный код:
Код
    Variant vMap = Map1->DefaultDispatch;
   Variant vLayers = vMap.OlePropertyGet("Layers");
   Variant noparam;
   noparam.vt = VT_ERROR;
   noparam.VError = DISP_E_PARAMNOTFOUND;
   Variant vNewLayer = vLayers.OleFunction("CreateLayer", "NewLayer",noparam,Variant(1));
   vNewLayer.OlePropertySet("Editable",true);
   vLayers.OleProcedure("InsertionLayer",vNewLayer);
   Map1->CurrentTool = miAddPointTool; // Чтобы проверить...

можно писать vMap.OlePropertyGet("Layers").OleProcedure("InsertionLayer",vNewLayer);
но тогда каждый раз будут вызываться запросы IDispath, поиск ID методов по Имени (накладные расходы)...

В ХЕ2 у меня работает код:
Код
        CMapXLayer* newLayer = Map1->Layers->CreateLayer(L"NewLayer",TNoParam(),Variant(1));
 newLayer->Editable = true;
 Variant vLayers = (IDispatch *)Map1->Layers;
 vLayers.OleProcedure("InsertionLayer",newLayer);
Верхний код больше потому, что в ВСВ6 не удается получить DefaultDispatch у интерфесов МаpХ (кроме ТМаp - как потомка TOleControl (кстати объявленного PASCALIMPLEMENTATION в OleCtrls.hpp)

Смысл в том, чтобы для InsertionLayer и AnimationLayer не давать Builder вызывать свойста/методы по ID..... а чтобы в Variant через  IDispatch само находилось в СОМ-объекте то, что надо....

Можно, конечно, попытаться переписать вызовы свойств/методов InsertionLayer и AnimationLayer в OCX и TLB файлах..........тогда все должно работать без Variant.....
мне связываться с этим не не хочется....РАБОТАЕТ? - ЗНАЧИТ НЕ ТРОГАЙ!
« Последнее редактирование: 02 Сентябрь 2013, 20:27:59 от volvo877 » Записан
kig777
Участник


Сказали спасибо: +43/-0
Offline

Сообщений: 12


Re: Знатоки MapX отзовитесь!
« Ответ #17 : 04 Август 2013, 17:25:40 »

ну вот..... что и требовалось доказать..... поменял всего одно название в TLB файле и Variant уже не нужен!!!!!!!!!!!!!!!!

Код
  void __fastcall set_InsertionLayer(Mapxlib_tlb::CMapXLayer* /*[VT_USERDEFINED:1]*/ Value)
 {
_TDispID _dispid(/* InsertionLayer */ DISPID(15));
TAutoArgs1> _args;
_args[1] = (LPDISPATCH) /*[VT_DISPATCH:1]*/ (Mapxlib_tlb::CMapXLayer* /*[C2]*/)Value;
//   OlePropertyPut(_dispid, _args);   ---- то что было
 OleProcedure(_dispid, _args);  //  --  тор что стало
 }

Теперь все как надо!!!: (в ХЕ2):
Код
   CMapXLayer* newLayer = Map1->Layers->CreateLayer(L"NewLayer",TNoParam(),Variant(1));
 newLayer->Editable = true;
 Map1->Layers->InsertionLayer = newLayer;

РАБОТАЕТ!!!

Ну а ВСВ6 ругается..... там надо помучиться
« Последнее редактирование: 03 Сентябрь 2013, 08:19:45 от S0mbre » Записан
kig777
Участник


Сказали спасибо: +43/-0
Offline

Сообщений: 12


Re: Знатоки MapX отзовитесь!
« Ответ #18 : 04 Август 2013, 18:04:15 »

И для полного счастья:

Код
  Mapxlib_tlb::CMapXLayer* /*[VT_USERDEFINED:1]*/ __fastcall get_InsertionLayer()
 {
_TDispID _dispid(/* InsertionLayer */ DISPID(15));
TAutoArgs0> _args;
// OlePropertyGet(_dispid, _args);  Было
OleFunction(_dispid, _args);     // Стало
return (Mapxlib_tlb::CMapXLayer* /*[C3]*/)(LPDISPATCH)_args.GetRetVariant();
 }

И теперь работает код:
Код
          AnsiString name = Map1->Layers->InsertionLayer->Name;

Все работает! Пользуйтесь!
« Последнее редактирование: 03 Сентябрь 2013, 08:19:14 от S0mbre » Записан
kig777
Участник


Сказали спасибо: +43/-0
Offline

Сообщений: 12


Re: Знатоки MapX отзовитесь!
« Ответ #19 : 04 Август 2013, 19:17:39 »

В ВСВ6 тоже все работает!!!!! Нужно только оставлять флажок Disable inline expansion

Думаю, что нужно еще не одно свойство переделывать так, как указано выше....но это в процессе работы с МарХ.

Главное, что все работает, как это и должно быть.....
Записан
kig777
Участник


Сказали спасибо: +43/-0
Offline

Сообщений: 12


Re: Знатоки MapX отзовитесь!
« Ответ #20 : 02 Сентябрь 2013, 15:43:09 »

На windows8  MapX не хочет работать в режиме разработки (на win7 x64 запустил)
системы  вроде ничем принципиальным не отличаются....
Буду ковырять.....когда время будет...
Записан
S0mbre
Глобальный модератор


Сказали спасибо: +1113/-22
Offline

Сообщений: 2132

S0mbre


Re: Знатоки MapX отзовитесь!
« Ответ #21 : 03 Сентябрь 2013, 08:20:39 »

@kig777
Меньше эмоций, пожалуйста. Почистил посты.
Записан
Klark_Kent
новенький


Сказали спасибо: +0/-0
Offline

Сообщений: 1


Re: Знатоки MapX отзовитесь!
« Ответ #22 : 08 Январь 2014, 01:48:35 »

Доброго времени суток!
Пишу на delphi, но не суть. Как можно поменять координаты существующей точки? Проблема в том,что delphi пишет что centerX и centerY только Read-Only!
Пример:
Код
Form1.Map1.Layers.Item['datchiki'].GetFeatureByID(1).centerx:=1;
или так:
Код
feat:=Form1.map1.Layers.Item['datchiki'].AllFeatures;
feat.Item[1].CenterX:=1;
feat.Item[1].CenterY:=2;

Свойства обьекта centerx можно только прочитать.А если мне нужно сдвинуть программно обьект?
« Последнее редактирование: 09 Январь 2014, 08:23:08 от S0mbre » Записан
kig777
Участник


Сказали спасибо: +43/-0
Offline

Сообщений: 12


Re: Знатоки MapX отзовитесь!
« Ответ #23 : 10 Июль 2014, 11:30:22 »

...Запустил все-таки в Winows 8.1    Mapx5  в   ВСВ6.....все работает, только компонент динамически создавать надо...
Записан
SilverFish
Участник


Сказали спасибо: +14/-6
Offline

Сообщений: 786


Re: Знатоки MapX отзовитесь!
« Ответ #24 : 10 Июль 2014, 11:58:28 »

Можно подробную, пошаговую инструкцию, как правильно, на сегодняшний день, установить MapX в С++ Builder XE6 и какие окончательные правке где внести типа:
//OlePropertyGet(_dispid, _args);  Было
OleFunction(_dispid, _args);
Т.е. хотелось бы иметь полную пошаговую инструкцию-руководство по правильной интеграции MapX в С++ Builder XE6.
Спасибо.
Записан
kig777
Участник


Сказали спасибо: +43/-0
Offline

Сообщений: 12


Re: Знатоки MapX отзовитесь!
« Ответ #25 : 10 Июль 2014, 12:59:21 »

....то что касается написания кода достаточной информации я раньше написал.... нужно либо править файлы импортирования либо через Variant vMap = Map1->DefaultDispatch; и т.д.

Проблемы возникают с запуском ActiveX компонента в режиме разработки на новых ОС....
На Window7 x64 в ВСВ6 удалось запустить только после обновления MapX до 5.02.38 (которое чудом нашел у японцев)....
На Windows8.1 x64 в ВСВ6 удалось использовать созданный в win7 bpl, но только при динамическом создании Объекта в FormCreate: Map = new(Form1); Map->Parent = Form1; (при перемещении на форму выдает ошибку лицензии)..
.....еще для bcb.exe, mapx50.dll и файл лицензии .lic открывал доступ....(может тоже помогло)...

вообще MapX продукт древний....... древний установщик InstallShields может тупить (у меня конфликтовал вроде с PGP), но на чистую винду ставиться вроде без проблем... еще могут быть конфликты со средствами безопасности win7-8.1....... лучше все запускать от имени администратора...

Я работаю с ВСВ6 (программа на нем написана).... На сколько я пробовал, в других новых средах разработки все тоже самое....
Записан
kig777
Участник


Сказали спасибо: +43/-0
Offline

Сообщений: 12


Re: Знатоки MapX отзовитесь!
« Ответ #26 : 17 Июль 2014, 09:41:56 »

Прикольно.....

в WinXP МарХ нормально работает с dll версии 5.02.25

в Win7 писать проги можно только используя обновление 5.02.38..... а созданные - в зависимости от версии dll .....(для запуска надо менять dll в зависимости от используемой dll при создании)

в Win8 в режиме разработчика МарХ запустить не удалось...... а откомпилированные проги со статически созданными компонентами - работают.....

в Win8.1 все заработало с версией 5.02.38!!!!!!!!! менять dll уже не надо!!!!.... только компонент МарХ надо динамически создавать...

от чего такая хрень - не понятно....
.....проверено не один раз......
Записан
kig777
Участник


Сказали спасибо: +43/-0
Offline

Сообщений: 12


« Ответ #27 : 18 Сентябрь 2015, 10:40:04 »

Запустил МарХ и ВСВ6 на Windows10  ....  все заработало даже без патча-обновления МарХ.... только объект карты надо динамически создавать.... Статически не дает...

  Map1 = new TMap(Form1);
  Map1->Parent = Form1;
  Map1->Align = alClient;
  CMapXLayer* newLayer = Map1->Layers->CreateLayer(L"NewLayer",TNoParam(),Variant(1));
  newLayer->Editable = true;
  Map1->Layers->InsertionLayer = newLayer;
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.246 секунд. Запросов: 21.