阅读:2476回复:1
请教如何用DELPHI写一个Info工具呀
<P>如题,纠结两天了,我刚开始学,从网上找了几种方法都报错呀。</P>
<P>PT1:=CoPoint.Create;<BR> Pt1.Set_(X1,Y1);</P> <P> for i:=1 to Map1.Layers.Count do<BR> begin<BR> BVisible:=false;<BR> if Lyr.Visible=True then</P> <P> begin<BR> BVisible:=True;<BR> if Lyr.ZoomLayer then<BR> if (Map1.Zoom>=Lyr.ZoomMin) and (Map1.zoom<lyr.ZoomMax)then<BR> BVisible:=True<BR> else<BR> BVisible:=False;<BR> end;</P> <P> end;<BR> if BVisible then<BR> begin<BR> Ftrs:=Lyr.SearchAtPoint(PT1,miSearchResultAll);<BR> if Ftrs.count>0 then<BR> SOutPut:=SOutPut + Lyr.Name;</P> <P> for i:=1 to Ftrs.Count do<BR> begin<BR> SOutPut:=SOutPut + ',' +Ftr.Name;<BR> for j:=1 To Lyr.DataSets.Count do<BR> begin<BR> SoutPut:=SOutPut + ',' + ',' + ds.Name;<BR> RvsRow:=ds.RowValues[Ftr.FeatureKey];<BR> for k:=1 to RvsRow.Count do<BR> begin<BR> SOutPut:=SOutPut + ',,,'+RvCell.Value<BR> end;<BR> end;<BR> end;<BR> MessageDlg(SOutPut, mtError, [mbOK], 0);</P> <P> end;</P> |
|
1楼#
发布于:2011-01-24 13:39
<div>这么久了居然还没人回答?我自己回答吧。</div><div><br></div><div>CUSTOM_INFO_TOOL :</div><div> begin</div><div> // Create point object and set it to click XY</div><div> ValueListEditor1.Strings.Clear;</div><div> pt := CreateOleObject('MapX.Point.5');</div><div> pt.Set(X1,Y1);</div><div> // Perform a search at click point</div><div> //cxListView1.Items.Clear;</div><div> for i:=1 to Map1.Layers.Count do</div><div> begin</div><div> Lyr:=Map1.Layers.Item;</div><div> if Lyr.selectable then</div><div> begin</div><div> ftrs:=Lyr.SearchAtPoint(pt);</div><div> //ShowMessage(ftrs.Name);</div><div> if ftrs.count>0 then</div><div> begin</div><div> ValueListEditor1.InsertRow('í¼2ã',Lyr.Name,True);</div><div> ds:=Map1.DataSets.Add(miDataSetLayer,Lyr,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);</div><div> for k:=1 to ftrs.count do</div><div> begin</div><div> ValueListEditor1.InsertRow('ID:',inttostr(ftrs.Item[k].FeatureID),True);</div><div> //Lyr.selection.selectbyid(ftrs.item[1].featureid,0);</div><div> for j:=1 to ds.Fields.Count do</div><div> begin</div><div> Lyr.keyfield:=ds.Fields.Item[j].Name;</div><div> ValueListEditor1.InsertRow(ds.Fields.Item[j].Name,ftrs.item[k].KeyValue,True);</div><div> end;</div><div> end;</div><div><br></div><div><br></div><div> end;</div><div><br></div><div><br></div><div><br></div><div> end;</div><div> end;</div><div> </div><div><br></div><div> VarClear(pt);</div><div> end;</div>
|
|