hey leute, muss euch schon wieder mit einem problem auf die pelle rücken.
ich habe eine
Tlist den ich zurlauf zeit
immer wieder befühle und auch leere; alles funktioniert wunderbar jedoch wächst mein durch das programm belegter speicher rasant ins unermäßliche.
also ich habe dann ein test routine eingebaut und es liegt daran das
Tlist, sei es durch den aufruf von
clear oder
Delete oder
Remove den speicher nicht wieder freigibt.
Tlist löscht anscheinend nur die internen verweise ;-( sorry "habe eigentlich keine ahnung was gemacht wird" ich vermute nur.
Ich habe in meiner verzweifelung mal folgendes probiert:
1. TContainer ist von Tlist abgeleitet: das programm läuft stabil. aber der speicher wird nie freigegeben obwohl TList.count = 0 ist.
Delphi-Quellcode:
{ Clear the list by deleting all objects in it. }
procedure TContainer.ClearList;
var i:integer;
begin
for I := (Count-1) downto 0 do begin
Delete(i);
end;
end;
2. TContainer ist von Tlist abgeleitet: das programm störzt unregelmäßig bei clear ab. aber der speicher wird wunderbar freigegeben.
Delphi-Quellcode:
{ Clear the list by deleting all objects in it. }
procedure TContainer.ClearList;
var i:integer;
begin
for I := (Count-1) downto 0 do begin
TObject(Items[I]).Free;
end;
inherited Clear;
end;
aber keines der lösungen ist wirklich befriedigend. ich bin dankbar für jede anmerkung, danke. Ich habe es auch mit TObjectList und TThreadList probiert, es ist immer das selbe problem.
danke für eure hilfe.