Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#2

Re: TreeView gibt über Data nicht die richtigen Daten zurück

  Alt 21. Sep 2006, 09:43
NodeChanging wird vor dem Knotenwechsel aufgerufen (wie in der Hilfe angegeben). Der erste Code bezieht sich dabei überhaupt nicht auf den Node der dann gewählt wird, sondern nur auf die globale Variable Datensatz (warum die auch immer global ist?? Die Daten hängen am Knoten, da braucht man nichts globales -> sofort als lokale Variable anlegen!). Bei dem zweiten Versuch vorher einfach mal abfragen, ob Node und Data überhaupt ungleich Nil ist, und somit überhaupt Werte enthalten können. Node kann auch Nil sein, wenn ein aktueller Knoten deselektiert wird und genauso gut kann ein Knoten (z.B. Root-Knoten?) ausgewählt werden, welcher überhaupt keine Daten von dem Query enthält und somit auch ein leeres Data besitzt.

Auch empfehle ich, lieber so auf Data zu zu greifen:
Delphi-Quellcode:
PDatensatz = ^TDatensatz;
TDatensatz = record
    ID: string;
    Typ: integer;
  end;

...

ShowMessage(PDatensatz(Node.Data)^.ID);
Vor allem erstmal die globale Variable entfernen! Die birgt viel mehr Fehlerquellen und Unsicherheiten als Vorteile (wie man vllt. gerade sieht)
  Mit Zitat antworten Zitat