delphi+mapx4.5如何动态增加图层字段??? (50分)

  • 主题发起人 主题发起人 wwllyl
  • 开始时间 开始时间
W

wwllyl

Unregistered / Unconfirmed
GUEST, unregistred user!
delphi+mapx4.5如何动态增加或删除表的字段???
不要到MAPINFO里!直接在应用程序中实现。
 
下面是mapx5.0的例子
//将新建图层加入到数据字典和数据集
P_Fields := cofields.Create;

P_Fields.AddStringField('zqs2',40,true);
P_Fields.AddStringField('zqs3',40,false);
//怎么加索引字段 ?
layerinfo1 := colayerinfo.Create;
LayerInfo1.Type_ :=miLayerInfoTypeNewTable;
layerinfo1.AddParameter('filespec',FileSpec);
LayerInfo1.AddParameter('Name',LayerName);
layerinfo1.AddParameter('fields',P_Fields);

//加上投影
if P_Csys <> nil then

LayerInfo1.AddParameter('CoordSys',P_Csys);
if Form1.bz then

Form1.P_Layer :=Form1.map1.layers.Add(LayerInfo1,1)
else

Form1.P_Layer1 :=Form1.map2.layers.Add(LayerInfo1,1);

LayerInfo1.Type_ :=miLayerInfoTypeNewTable;为新建.tab的类型,
如果是已经存在的用其他类型
 
to zqs10597249:
这样新增加一个表可以,
我的意思是在已有层中再增加一个字段
我原来的新增加一个表的程序跟你一差不多,当
LayerInfo1.Type_ :=miLayerInfoTypeNewTable
改为 miLayerInfoTypeTab 时提示已存在这个层了
我看MAPINFO里是将那个层关闭后再处理的
不知直接增加时 如果关闭表后再新建此表时原来表中的数据会否丢失?

lyr.Datasets.item(1).addfield('NERFIELD',S);
不能保存,why???
我再试。。。

 
后退
顶部