Assigned ist zwar eine Bedingung
aber keine hinreichende Bedingung
um auf die Existenz einer Instanz
zu schließen.
Delphi-Quellcode:
Procedure Wegdamit(o:tObject);
Begin
o.free;
end;
ObjVariable1 := TMeinObject.create;
ObjVariable2 := ObjVariable1;
Wegdamit(ObjVariable1);
(*
Hier viele Objekte erzeugen
*)
If assigned(ObjVariable2) then
Showmessage(ObjVariable2.MeinStringAttribut);
Hier wäre eine Zugriffsverletzung das Resultat.
Das ist aber nicht immer so nur wenn der Speicher,
der ja mit o.free freigegeben wurde, schon von anderen
Objekten überschrieben wurde tritt der Fehler auf.