Тема: MapX Delphi
Показать сообщение отдельно
  #1  
Старый 17.03.2011, 12:43
kiril_20 kiril_20 вне форума
Прохожий
 
Регистрация: 17.03.2011
Сообщения: 2
Репутация: 10
По умолчанию MapX Delphi

Работаю сейчас с библиотекой 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 на последней строчке( Может кто подскажет что не так делаю...
Ответить с цитированием