Einzelnen Beitrag anzeigen

Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Was ist der Unterschied @Obj und Pointer( Obj )

  Alt 4. Mär 2005, 12:11
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
Christian
  Mit Zitat antworten Zitat