Hallo!
Zuerst einmal:
Ich habe folgendes Konstrukt (vereinfacht):
Delphi-Quellcode:
TKlasse2=class
procedure Foo2;
FKlasse1:TKlasse1;
constructor Create(Klasse1:TKlasse1);
end;
TKlasse1=class
FKlasse2:TKlasse2;
procedure Foo;
procedure DoException;
destructor Destroy; override;
end;
procedure TKlasse2.Foo2;
begin
FKlasse1.DoException;
//irgendwas
end;
procedure TKlasse1.Create(Klasse1:TKlasse1);
begin
FKlasse1:=Klasse1;
end;
procedure TKlasse1.Foo;
begin
FKlasse2.Foo2;
//irgendwas
end;
procedure TKlasse1.Destroy;
begin
FKlasse2.Free;
inherited;
end;
procedure TKlasse1.DoException;
begin
self.Free;
end;
So.
Hier werden zwar nach DoException die beiden Klassen freigegeben, aber das was bei irgendwas steht, wird danach immer noch ausgeführt. Wie kann ich das verhindern?