Nein muß ich nicht, aber wenn ich sie z.B. mit eim Items eines TTreeViews oder TStringList verbinde...
Und genau da liegt der Hacken!
Im Event OnDestroy lösche ich die Items der Liste mit einer Procedure, wobei ich sie als TObject zerstör, da in der Liste verschiedene Objecte sind...
Und da geht:
Delphi-Quellcode:
Procedure TfrmMain.CleatTVL;
Var i: Integer;
Obj: TObject;
Begin
// Elemente des tvRules löschen, falls vorhanden...
For i := tvRules.Items.Count - 1 DownTo 0 Do Begin
If Assigned( tvRules.Items[ i ].Data ) Then Begin
Obj := TObject( tvRules.Items[ i ].Data^ );
FreeAndNil( Obj );
End;
tvRules.Items[ i ].Delete;
End;
End;
Nicht wenn ich sie mit @xyz hinzufüge, aber
Delphi-Quellcode:
Procedure TfrmMain.CleatTVL;
Var i: Integer;
Obj: TObject;
Begin
// Elemente des tvRules löschen, falls vorhanden...
For i := tvRules.Items.Count - 1 DownTo 0 Do Begin
If Assigned( tvRules.Items[ i ].Data ) Then Begin
Obj := TObject( tvRules.Items[ i ].Data );
FreeAndNil( Obj );
End;
tvRules.Items[ i ].Delete;
End;
End;
Wenn ich sie mit Pointer( xyz ) hinzufüg...
aber warum das auf einmal?
WEnn ich das ohne Liste durspiel geht beides
Bye