Pointerspeichern bei Treeview
Hallo,
Ich habe momentan ein Problem: Ich will ein Treeview speichern. Das geht gut, jedoch wird nur die Struktur gespeichert. Da aber an jedem knoten ein Pointer hängt, ergibt sich ein Problem. Die Pointer enthalten nur Textdaten die ich auch selbst speichern könnte, jedoch muss ich dann die Struktur auch selbst speichern. Mittlerweile bin ich soweit, dass ich die Struktur in einer XML Datei speichern will. Teilweise funktioniert es auch nur leider funktioniert es nur 1-Dimensional, das heisst, wenn ein Knoten mehrere Unterknoten hat, werden diese Übergangen. Meine Frage ist: Wie kann ich am besten die Struktur eines Treeviews in einer XML Datei speichern? Ich stehe irgendwie gerade ziemlich auf dem Schlauch Gruß, Max |
Re: Pointerspeichern bei Treeview
Hallo Max,
du solltest deine Baumknoten rekursiv abspeichern. Im Beispiel verwende ich das XMLDocument aus der Palette:
Delphi-Quellcode:
Grüße vom marabu
procedure TDemoForm.GatherNodes(doc: IXMLDocument; eParent: IXMLNode; tn: TTreeNodes; nParent: TTreeNode);
var i: Integer; eChild: IXMLNode; nChild: TTreeNode; begin if Assigned(nParent) then nChild := nParent.getFirstChild else nChild := tn.GetFirstNode; while Assigned(nChild) do begin eChild := eParent.AddChild(nChild.Text); GatherNodes(xmlDocument, eChild, tn, nChild); nChild := nChild.getNextSibling; end; end; procedure TDemoForm.SaveButtonClick(Sender: TObject); begin with xmlDocument do begin Active := true; DocumentElement := CreateElement('root', ''); GatherNodes(xmlDocument, DocumentElement, TreeView.Items, nil); ShowMessage(xml.Text); end; end; |
Re: Pointerspeichern bei Treeview
Ahhh, genau!
Sowas hatte ich auch geplant, nur irgendwie stand ich voll auf dem Schlauch ;) Riesen Dankeschön! Max |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz