Forum: Object-Pascal / Delphi-Language
Delphi
by sx2008,
8. Jan 2010
Objekt-Variablen sind in Delphi Zeiger (Referenzen).
constructor Txyz.Create(GridName : TNextGrid);
begin
inherited Create; // nicht vergessen!!
FPrivVariable := GridName;
end;
Das Objekt das im Parameter GridName übergeben wird schon existieren bevor ein Objekt der Klasse Txyz erzeugt wird.
var
ng : TNextGrid;
xyz : Txyz;
Forum: Object-Pascal / Delphi-Language
Delphi
by sx2008,
8. Jan 2010
Die 1. Version ist richtig; die 2. Version erzeugt ein Speicherleck.
>>warum funktioniert die 1. Version auch, obwohl FPrivVariable gar nicht "erstellt" wurde?
Weil der Speicher für das Objekt der Klasse Txyz schon reserviert wurde, bevor der Constructor aufgerufen wird.
Generell ist der Ablauf bei Delphi so:
1.) Speicher für neues Objekt reservieren
2.) Speicher mit Nullen füllen
3.)...