Dann wirst du wohl der anderen Klasse irgendwie miteilen müssen, daß die Klasse sich jetzt selbst löscht.
und die andere Klasse die entsprechende Referenz auf nil setzen soll.
Delphi-Quellcode:
Type
TKlasse1 = Class; {forward declaration}
TKlasse2 = Class(TForm)
Klasse1: TKlasse1;
End;
TKlasse1 = Class(TForm)
ElternKlasse: TKlasse2;
Procedure WM_NCDestroy(Var Message: TWMNCDestroy); message WM_NCDestroy;
End;
Procedure TKlasse2.irgendwas;
Begin
Klasse1 := TKlasse1.Create;
Klasse1.ElternKlasse := Self; // dieses hier würde sich aber auch ganz gut
// in einem Constructor von Klasse1 machen
End;
Procedure TKlasse1.WM_NCDestroy(Var Message: TWMNCDestroy);
Begin
Inherited;
ElternKlasse.Klasse1 := nil; // wobei es sich hier gut macht, wenn man dieses
// in eine Prozedur von TKlasse2 auslagert
Self.Free;
End;