hi leute,
danke für eure hilfe, again.
an schluß hat es funktioniert, und zwar mit TObjectlist. Ich fasse noch mal das wichtigste zusammen...
damit die objekte wieder freigegeben werden muß man folgendes beachten:
1.) die zu speichernden Objekte(klassen) brauchen ihr eigenen destrucktor (zu not mus man den überschreiben)
2.) Die eigenschaft
OwnsObjects muß auf
true gesetzt sein (ist default mäßig auch auf true)
TContainer ist von TObjectList abgeleitet...
die Elemente werden in die liste mit der TList Funktion Add ( wie gewohnlich )rein pumpt..
und so kann mann die elemente ohne rückstande wieder loswerden...
Delphi-Quellcode:
//--------------------------------------------------------------------------
{ Clear the list by deleting all objects in it. }
procedure TContainer.ClearList;
var I: Integer;
begin
OwnsObjects := true;
for I := (Count-1) downto 0 do
inherited Delete(I);
inherited Clear; // braucht man nicht unbedingt entweder delete oder Clear reicht aus
end;
die idee, die Einzelnen Elemente
TObject(Items[Index]).Free ist zwar nah an der lösung ist aber problematisch. Denn der Item counter der liste wird nicht erniedrigt. und wenn man es manuel auf 0 setzen will dann passiert etwas unerwartetes.
hofe richtig wiedergegeben zuhaben. vielen Dank für eure Hilfe.