Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

VST Node mit Child Nodes hinzufügen (InitChildren)

  Alt 18. Mai 2019, 17:25
Ich arbeite gerade mit einer VirtualStringTree und möchte gerne Nodes mit Childnodes hinzufügen.
Code:
node
  subnode
  subnode
  subnode
node
  subnode
  subnode
  subnode
Wie macht man das?

Ich initialisere Nodes so
Delphi-Quellcode:
procedure TMainForm.VSTInitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
begin
 Node.SetData<TNodeData>(NodeList[Node.Index]);
end;
Mein VSTInitChildren sieht so aus
Delphi-Quellcode:
procedure TMainForm.VSTInitChildren(Sender: TBaseVirtualTree; Node: PVirtualNode; var ChildCount: Cardinal);
begin
 ChildCount := 1;
end;
Damit bekomme ich aber so ein Resultat
Code:
A
  B
    C
      D
So zeige ich Texte an
Delphi-Quellcode:
procedure TMainForm.VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
var
 NodeData: TNodeData;
begin
 NodeData := Node.GetData<TNodeData>;
 if not Assigned(NodeData) then
  Exit;

 case Sender.GetNodeLevel(Node) of
  0:
   CellText := NodeData.A;
  1:
   CellText := NodeData.B;
  2:
   CellText := NodeData.C;
  3:
   CellText := NodeData.D;
 end;
end;
Daten für einen neuen Node füge ich meiner Klassenliste so hinzu. Aber wie bekomme ich Childnodes dazu und auch noch angezeigt?
Delphi-Quellcode:
NodeData := TNodeData.Create;
NodeData.A := 'A';
NodeData.B := 'B';
NodeData.C := 'C';
NodeData.D := 'D';

NodeList.Add(NodeData);
VST.RootNodeCount := NodeList.Count;

Geändert von DieDolly (18. Mai 2019 um 18:58 Uhr)
  Mit Zitat antworten Zitat