Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2011, 13:20   #1
kirill_20
Новичок
Джуниор
 
Регистрация: 17.03.2011
Сообщений: 1
По умолчанию Delphi MapX

Работаю сейчас с библиотекой MapX 5.0. Есть задача создать новый слой и привязать к объектам этого слоя данные, например создать колонку содержащую имена этих объектов... Слой создает, объекты рисует (в данном случае точки), а вот данные привязать неполучается
Код:
Var
  NewObj: CMapXFeature;
  Style: CMapXStyle;
  mxPnt: CMapXPoint;
  n: integer;
  x,y: double;
  ADO: TADOCommand;
  mxFlds: CMapXFields;
  mxBdLr: CmApXBindLayer;
  ds: Dataset;
  mxRows: CMapXRowValues;
  mxRow: CMapXRowValue;
begin
  n:=100;
  FMapInfo.Layers.CreateLayer('test','C:\test',EmptyParam,EmptyParam,EmptyParam);
  ADO:=TADOCommand.Create(nil);
  mxFlds:=CoFields.Create;
  mxBdLr:=CoBindLayer.Create;
  mxRows:=CoRowValues.Create;
  mxRow:=CoRowValue.Create;
  for i:=1 to n do
  begin
    NewObj:=CoFeature.Create;
    mxPnt:=CoPoint.Create;
    Style:=CoStyle.Create;
    NewObj.Attach(FMapInfo.DefaultDispatch);
    NewObj.type_:=miFeatureTypeSymbol;
    Style.SymbolBitmapColor:=RGB(0,0,0);
    //получаем координаты...
    x:=x*180/pi;
    y:=y*180/pi;
    mxPnt.Set_(x,y);
    NewObj:=FMapInfo.FeatureFactory.CreateSymbol(mxPnt,Style);
    NewObj.KeyValue:=FBase.ID;
    FMapInfo.Layers.Item['test'].AddFeature(NewObj,EmptyParam);
    NewObj:=nil;
    Style:=nil;
    mxPnt:=nil;
  end;
  ADO.ConnectionString:='строка подключения к базе';
  ADO.CommandText:='SELECT NAME FROM TABLE';
  mxFlds.Add(ADO.Execute.Fields.Item['NAME'],'NAME',EmptyParam,EmptyParam);
  mxBdLr.LayerName:='test';
  mxBdLr.LayerType:=miBindLayerTypeNormal;
  ds:=FMapInfo.DataSets.Add(miDataSetADO,ADO.Execute,EmptyParam,'NAME',EmptyParam,mxBdLr,mxFlds,EmptyParam);
  FMapInfo.Layers.Item['test'].BeginAccess(miAccessReadWrite);
  mxRow.Dataset:=ds;
  mxRow.Field:=ds.Fields.Item['NAME'];
  mxRows.Add(mxRow);
  FMapInfo.Layers.Item['test'].UpdateFeature(FMapInfo.Layers.Item['test'].AllFeatures.Item[1],EmptyParam,mxRows);
end;
Постоянно exception на последней строчке( Может кто подскажет что не так делаю...
kirill_20 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MapX создание объектов Google[Bot] Компоненты Delphi 7 27.01.2012 08:33
Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism savva-paladin Софт 18 02.10.2010 20:24
Использование MapX Mobile (COM компонетн) в С# Элена Общие вопросы .NET 1 25.03.2009 22:35
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? redred Общие вопросы Delphi 10 11.12.2007 10:43
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54