Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

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

Последний раз редактировалось kiril_20, 17.03.2011 в 13:10.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:12.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025