Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: TreeView - AddObject Pointerproblem

  Alt 8. Mai 2007, 17:09
tmp ist eine lokale Variable. Durch dein Add bekommst du ein TAnswer zurück und weißt es tmp zu. Den Zeiger auf Tmp weißt du dann data zu (durch AddObject). Und genau da ist der Fehler!
Letzendlich weißt du einen Pointer auf den Stack zu. Nach verlassen der procedure wird tmp vom stack entfernt und dein Pointer zeigt auf eine Stelle im Stack wo nichts mehr liegt bzw. inzwischen was anderes.

Letztendlich machst du es dir einfach zu schwer. TAnswer ist eine ObjectInstanz und somit ein Pointer! Du brauchst also nicht den Pointer auf den Pointer zuweisen sondern kannst auch direkt die Objectinstanz auf Data zuweisen. Dementsprechend brauchst du dann auch nicht auf PAnswer casten und zu dereferenzieren sondern kannst gleich auf TAnswer casten.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat