Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
23. Apr 2010
Erstell dir ein Interface und schon geht das auch in Delphi. :zwinker:
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
23. Apr 2010
Genau. Und jetzt stell dir mal vor das Free würde standardmäßig den Objektzeiger auf NIL setzen.
Schon könnte man hier das Objekt nicht mehr "ordentlich" freigeben. :stupid:
Egal ob man es über einen Compilerschalter an- oder ausstellen kann ... sowas wird ja global gesetzt und ein lokaler Compilerschalter ist Schwachsinn, denn da kann man auch gleich FreeAndNil verwenden, welches ich dann...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
23. Apr 2010
.Free wird niemal den Objektzeiger NILen, denn Methoden verändern nie den Objektzeiger und das ist auh gut so.
Einzig und alleine der Constructor macht das indirekt, aber nur weil dafür eine Zuweisung ( := ) verwendet wird.
FreeAndNil greift direkt auf den Objektzeiger (die Variable) zu und kann so deren Inhal ändern.
PS: Wenn jedes Free den Objektzeiger ändern könnte/würde, dann würde es...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
22. Apr 2010
Nur ob dieses dann unter Delphi 2012 noch läuft, ist eine andere Sache ... dann doch lieber gleich richtig .Free und FreeAndNil verwenden (jenachdem was benötigt wird).