Thema: Delphi AV - Warum?

Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#18

Re: AV - Warum?

  Alt 24. Sep 2005, 18:02
Zitat von glkgereon:
ich kann die Nodes ja nicht "in" der TreeView selber speichern, oder?
afaik müssen die ja in einem seperaten array abgelegt sein.
oder liegt da der denkfehler?
Nodes werden NUR in der TreeView gespeichert, Daten NIE.

Hinzufügen geschieht so:

Delphi-Quellcode:
with TreeView.Items.AddChild(parentNode, nodeText) do
begin
  Data := Pointer(DataSet.RecNo);
  // alternativ kannst du den primary key an Data zuweisen
  ...
end;
Auf diese Weise verknüpfe ich eine Gliederung, die ich in einer Datenbanktabelle abgelegt habe, mit der TreeView. Liegen deine Daten nicht in einer Datenbank, dann verwaltest du sie vielleicht in einer Liste (TList, TObjectList, ...) oder einem array of pointer. Du kannst dann der Data property eines Nodes den Zeiger auf dein DataItem zuweisen und im Ereignis TTreeNode.OnDeletion gibst du den Speicher dann wieder frei:

Delphi-Quellcode:
procedure TDemoForm.TreeViewDeletion(Sender: TObject; Node: TTreeNode);
begin
  if Assigned(Node.Data) then
    TStringList(Node.Data).Free;
end;
marabu
  Mit Zitat antworten Zitat