Ich habe Dein Programm einmal mit folgenden Veränderungen getestet:
Delphi-Quellcode:
type
TfrmDirections = class(TForm)
[...]
private
[...]
FCanClose, FDoClose: Boolean;
public
[...]
end;
procedure TfrmDirections.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if FCanClose then
begin
Action:=caFree;
frmDirections:=nil;
end else
begin
Action:=caNone;
FDoClose:=true; //Anforderung zum Schließen des Fensters merken
end;
end;
procedure TfrmDirections.OnShowCallback(var aMsg: TMessage);
begin
fWBGoogleMaps.LoadDefaultGoogleMapsDocument;
fAllowResizeHandler:=true;
FormResize(nil);
FCanClose:=true; //ab hier darf das Fenster geschlossen werden
if FDoClose //Fenster sollte schon vorher geschlossen werden
then Close; //-> jetzt nachholen
end;
Damit traten bei mir keine Zugriffsverletzungen mehr auf.