Hallo
Zitat von
Skript:
gibt es mir trotz, dass ich das Ursprungsobjekt mit FreeAndNil vernichtet habe immer noch den Wert 10 aus, wieso? An der Speicherstelle dürften doch keine Daten mehr sein.
Solange der Speicher nicht über schrieben wird steht da auch die 10. Nur weil ein Objekt freigegeben wird wird doch nicht der Arbeitsspeicher an der Stelle gelöscht.
Dein Problem ist, das Du ein Object erzeugst und in einer Variablen eine Referenz darauf speicherst.
Jetzt gibst Du mit FreeAndNil das Object frei. Die ObjektInstanz zeigt jetzt auf Nil.
Aber was ist mit der Variablen. Die zeigt immer noch auf den Speicherbereich.
Wenn Du unbedingt die Objektreferenz in einer extra Variablen speichern möchtest/musst, dann
musst Du die Variable explizit auf Nil setzen, wenn Du das Objekt freigibst.
Ich halte Dein Vorgehen für einen groben Designfehler. Überlege nochmal
ob das wirklich nötig ist. Siehe auch den Beitrag von Christian Seehase.