0

になります。 フリーフォームは、アプリのクラッシュ(のMapView)

しかし、この使用している場合:

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;)または電話の[戻る]ボタンを使用して閉じられています。 TMapViewにバグがありますように –

+2

が見えます。再現可能なテストケース(好ましくは付随するコールスタック付き)を用意し、報告してください。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; 
関連する問題