Zitat von
quendolineDD:
Bei Destroy wird afaik kein Speicherplatz freigegeben...
Du meinst wohl "afai
dk". Destroy gibt den Speicher auch frei. Nur soll man Destroy nicht direkt aufrufen und das schon seit Delphi 1. Das steht so auch in der Hilfedatei. Für die genauen Gründe kann man sich ja mal Allen Bauers (CodeGear) Blog anschauen.
Beim Code fehlen nicht nur die try/finally Blöcke, sondern wird auch unnötig der Stream geleert bevor er freigegeben wird. Das erinnert mich an folgenden Code:
Delphi-Quellcode:
var
List: TStringList;
begin
List := TStringList.Create;
List.Clear; // Die Liste könnte ja schon nach dem Erzeugen gefüllt sein, man weiß ja nie :-)
...
List.Clear; // Es könnte ja sein, dass der Destruktor nur zur Gaudi vorhanden ist.
List.Free;
end;