我想在圖層上利用SuperMap1.Action:=scaEditCreatePolyLine畫線后,觸發AfterGeometryAdded事件,但是現在無法觸發,不知道該怎么處理了,求懂得GIS的朋友幫幫我吧。
畫線代碼如下:
procedure TfrmMain.mGeoLog_DrawGeoLineClick(Sender: TObject);
var
objLayer :solayer;
procedure freeSMObj;
begin
if objLayer<>nil then objLayer:=nil;
end;
begin
SuperMap1.Action:=scaNull;
objLayer:=SuperMap1.Layers.Item[cbblayer.Text];
if objLayer=nil then
begin
ShowMessage('選擇圖層出錯!');
freeSMObj;
exit;
end;
SuperMap1.Layers.SetEditableLayer(objlayer.Name);
if (SuperMap1.Layers.GetEditableLayer.Dataset.type_=scdLine)
or (SuperMap1.Layers.GetEditableLayer.Dataset.type_=scdCAD) then
begin
SuperMap1.Action:=scaEditCreatePolyLine;
bclickGeoLine:=True;
end
else
begin
ShowMessage('當前圖層不能畫折線');
freeSMObj;
exit;
end;
SuperMap1.Refresh;
end;
AfterGeometryAdded事件如下:
procedure TfrmMain.SuperMap1AfterGeometryAdded(ASender: TObject; nGeometryID: Long);
var
objdtv :soDatasetVector;
objrst :soRecordSet;
objLayer :soLayer;
begin
objLayer:=SuperMap1.Layers.Item[cbbLayer.Text];
if objLayer =nil then exit;
objdtv:=objLayer.Dataset as soDatasetVector;
if objdtv =nil then exit;
objrst:=objdtv.Query('',True,nil,'');
if objrst =nil then exit;
ShowMessage('OK');
objdtv :=nil;
objrst :=nil;
objLayer :=nil;
end;
只要能彈出對話框就OK了,急求大神幫助哇。
uj5u.com熱心網友回復:
SuperMap_GeometryAdded 又該怎么宣告使用呢?轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/134452.html
標籤:語言基礎/算法/系統設計
