0

如果使用此一MapView的被選擇的任何標記:窗體關閉後免與選定標記物的形式使程序崩潰(MapView類)

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); 
begin 
    Action := TCloseAction.caFree; 
end; 

該應用程序崩潰的權利。

但是,如果使用這樣的:

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); 
begin 
try 
MapView1.DisposeOf; 
finally 
Action := TCloseAction.caFree; 
end; 
end; 

的應用程序不會崩潰,但形式被關閉之後觸發訪問衝突的消息。什麼可能造成這種情況?有一些方法可以避免它?

問候

+0

我對此沒有多少意義。你正在關閉地圖控件的OnMarkerClick事件中的窗體(調用'Close')?或者你是否從控制事件中調用'Free'? – Victoria

+0

@Victoria表單正在通過Button.OnClick事件(Form1.Close;)或使用手機「後退」按鈕關閉。 –

+2

看起來像TMapView中存在一個錯誤。提供一個可重現的測試用例(最好有一個隨附的調用堆棧)並報告,請點擊:https://quality.embarcadero.com –

回答

0

編輯:

其實我添加標記,以在錯誤的道路地圖。您不能添加TMarkerDescriptor這樣的:

MapView1.AddMarker(MyMarker1); // MyMarker is a TMapMarkerDescriptor 

必須使用TMapMarker這樣的:

MMyMarker1 := MapView1.AddMarker(MyMarker1); // MMyMarker1 is a TMapMarker and MyMarker1 is a TMapMarkerDescriptor 

但是,你必須使用:

MMyMarker1.DisposeOf; 
OnFormClose

爲每次添加到標記避免碰撞的地圖,像這樣:

procedure TForm69.FormClose(Sender: TObject; var Action: TCloseAction); 
begin 
try 
MMyMarker1.DisposeOf; 
finally 
Action := TCloseAction.caFree; 
end; 
end;