Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi VST - Ein Record für Parent- und Child-Nodes (https://www.delphipraxis.net/108844-vst-ein-record-fuer-parent-und-child-nodes.html)

chest3rs 20. Feb 2008 11:28


VST - Ein Record für Parent- und Child-Nodes
 
Hallo,

mal wieder eine Frage zum VirtualStringTree:

Ich möchte mit einem Record mehrere Nodes mit Daten befüllen.

Delphi-Quellcode:
TAppData = packed record
  FileName  : string[255];
  Path      : string[255];
  Decription : string[255];
+ FileName (Parent)
|________Path (Child)
|________Description (Child)


Der Knoten soll mit FileName beschriftet werden, die ChildNodes enthalten die restlichen Informationen, Path und Description.

Ich möchte nur ein Record für einen Knoten mit Untereinträgen verwenden. Alle Untereinträge (ChildNodes) sollen sich die Informationen aus dem Record des ParentNodes holen.

Habs so probiert:

Delphi-Quellcode:
var
  Data : TAppData;
begin
  if Node.Parent = Sender.RootNode then // Parent oder Child?
    Data := VST.GetNodeData(Node.Parent);
end;
Theoretisch holt sich Data die Daten vom ParentNode. Geht aber leider nicht so einfach...

Normal wäre es, wenn ich alle Daten für jede ChildNode neu setzten und zuordnen muss. Ich würde mir das gerne schenken, da ich ja dann drei mal das gleiche Datenpaket erstellen muss.

Kennt Ihr ne ähnliche Methode, mit der sich das Prinzip realisieren lässt, oder muss ich das immer mit einem Record pro Node umsetzten?

Hoffentlich versteht das einer... :gruebel:

Grüße

sakura 20. Feb 2008 11:50

Re: VST - Ein Record für Parent- und Child-Nodes
 
Sender.RootNode ist eine interne Node, auf welcher Du keine Daten geben kannst. Wenn Du mehrere RootNodes hast (RootNodeCount > 0, diese sind nicht Sender.RootNode), dann mache es wie folgend:
Delphi-Quellcode:
var
  Data : TAppData;
begin
  if Sender.GetNodeLevel(Node) = 1 then // Parent oder Child? 
    Data := VST.GetNodeData(Node.Parent);
end;
...:cat:...

chest3rs 21. Feb 2008 08:27

Re: VST - Ein Record für Parent- und Child-Nodes
 
Perfekt! :thumb: Deine Lösung funktioniert wunderbar! Sie erspart mir jede Menge unnötigen Quelltext!

Und ich hab auch schon die ganze Zeit nach NodeLevel gesucht... :wall:

sakura 21. Feb 2008 08:42

Re: VST - Ein Record für Parent- und Child-Nodes
 
Ich habe die letzten Wochen ausgesprochen viel mit der Komponente gearbeitet. Die hat eine steile Lernkurve, aber wenn man die durch hat, dann ist diese Control einfach genial praktisch und einfach zu nutzen :love:

...:cat:...

chest3rs 21. Feb 2008 08:53

Re: VST - Ein Record für Parent- und Child-Nodes
 
Da stimme ich dir 100% zu. Ich hab mich mit der Kompo auch sehr schnell angefreundet.

Hoffentlich wird sie noch öfter thematisiert. :hello:

Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz