Einzelnen Beitrag anzeigen

fajac

Registriert seit: 1. Jul 2009
60 Beiträge
 
#13

Re: Freigabe von Objekten in Objekten

  Alt 22. Okt 2009, 15:45
Delphi-Quellcode:
var
  ObjektReferenz : TObjektTyp;

begin
  ObjektReferenz = TObjektTyp.Create();
Objektreferenz stellt einen Pointer dar, der auf eine Instanz von TObjektTyp zeigt (d.h.: Objektvariablen sind immer Pointer).
Durch den Aufruf wird eine Instanz von TObjektTyp erzeugt und ihre Speicheradresse Objektreferenz zugewiesen.
Wenn man nun
  ObjektReferenz = TObjektTyp.Create(); ein zweitesmal aufruft, wird eine neue Instanz erstellt und ihre Adresse ObjektReferenz zugewiesen - wodurch die erste Adress-Referenz überschrieben wird. Du "weisst" dann nicht mehr, wo die Objektinstanz ist, obwohl sie noch im Speicher ist. Daher kannst du sie auch nicht mehr freigeben.
  Mit Zitat antworten Zitat