MAPX中修改图元的属性值

procedure TForm1.Map1ToolUsed(ASender: TObject; ToolNum: Smallint; X1,
  Y1, X2, Y2, Distance: Double; Shift, Ctrl: WordBool;
  var EnableDefault: WordBool);
Var
   i : Integer;
   fID : String;
   searchType : Integer;
   dist : OleVariant;
   pt : Variant;
   curFeatures : Variant;
   rc : Variant;
   obj : Variant;
   featureSearchLayer : Variant;

ftrNew: CmapXFeature;
arrVals: Variant; //leee 030621
idx,NodeCnt:integer;
NodeString:String;
 ds: CMapxDataset;
rv: CMapxRowvalue;
rvs: CMapxRowvalues;
ftr :CMapxFeature;
ftrLayer :CmapxLayer;
begin
     pt := CreateOleObject('MapX.Point.5');
     // Clear Search Results list

     if ToolNum <> SEARCH_POINT_TOOL then
        begin
           // Set SearchType based on what key user may have down
           if (Shift And Not Ctrl) then
              searchType := miSearchTypePartiallyWithin
           else if (Ctrl And Not Shift) then
              searchType := miSearchTypeEntirelyWithin
           else
              searchType := miSearchTypeCentroidWithin;
        end;
     if(ToolNum=miSelectTool ) then
     begin
        ftrLayer:=Map1.Layers.Item[1];
     if (ctrl) then

        ftrLayer.Selection.SelectByPoint(X1, Y1, miSelectionAppend,emptyparam)
     else if (Shift) then
            ftrLayer.Selection.SelectByPoint(X1, Y1, miSelectionRemove,emptyparam)
          else
              ftrLayer.Selection.SelectByPoint(X1, Y1, miSelectionNew,emptyparam);

     if (ftrLayer.selection.count >= 1) //0306 lee 设计
                                              then
     begin
        ds := Map1.Datasets.Add(miDataSetLayer, ftrLayer,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam);

        obj:=ftrLayer.Selection.Item[ftrLayer.selection.count]; //此处示例取得最后一个Feature ,也可用循环语句取得所有Feature


        // ftrLayer.BeginAccess( miAccessReadWrite);
        rvs:=ds.Rowvalues[obj];

        rvs._Item(1).value:=aaaaa;  //为第一个字段赋值(本例图元有三个属性)
        rvs._Item(2).value:=bbbbb;//为第二个字段赋值

        rvs._Item(3).value:=ccccc;//为第三个字段赋值


        obj.Update(true,rvs);
        // ftrLayer.EndAccess( miAccessEnd);

     end;

end;

end;

再在一个BUTTON的CLUCK事件中加入以下代码:
map1.CurrentTool:=miSelectTool;

当点击这个BUTTON后,再点选图元,被选中图元的属性就可以被修改

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值