Hallo,
soll Clear die Liste leeren oder nur die Objekte freigeben,
in ersterem Fall fehlt was
Delphi-Quellcode:
procedure TPageCollection.Clear;
var
i: Integer;
begin
for i := FInnerList.Count - 1 downto 0 do
begin
TObject(FInnerList.Items[i]).Free;
// das fehlt
FInnerList.Delete(i);
// oder ungetestet
// FInnerLIst.Remove(FInnerList.Items[i])
end;
end;
Durch Free des Objektes wird zwar as Objekt freigegeben,
aber nicht der Listeneintrag (Pointer),
Count bliebt also immer gleich, nur der Pointer zeugt ins Nirvana.
Ich würde per {$IFDEF DEBUG} eh immer FreeAndNIL benutzen,
dann bekommt du wenigstens (hoffentlich) ne bessere Fehlermeldung.
Heiko
PS: Schon mal TObjectlist versucht ?