Hallo,
Zitat von
akrichel:
(Tip: wenn man in einer Stringliste nicht clear aufruft sondern die Elemente deleted, dann wird der Speicher auch freigegeben. Delete vom letzten Element an bietet sich aus Geschwindigkeitsgründen an).
Das ist so nicht ganz richtig. Die Methode TStringList.Clear sieht folgendermaßen aus:
Delphi-Quellcode:
if FCount <> 0 then
begin
Changing;
Finalize(FList^[0], FCount);
FCount := 0;
SetCapacity(0);
Changed;
end;
Es werden also sowohl die Strings als auch die Liste freigegeben. Das Problem ist eher, dass TMemo.Lines keine TStringList ist, sondern eine eigene Implementierung der abstrakten Klasse TStrings. TMemo ist nämlich nur ein Wrapper um ein Windows-Control, welches den Speicher für seinen Inhalt selbst verwaltet.
Gruß
xaromz