// Single line text (property)Node.SimpleText := 'Quick text';// Multi-line text (TStringList)Node.Text.Clear;Node.Text.Add('First line');Node.Text.Add('Second line');Node.Text.Add('Third line');// Assign from TStringsNode.Text.Assign(Memo1.Lines);
// Access root nodesfor i := 0 to Tree1.Roots.Count - 1 do ProcessNode(Tree1.Roots[i]);// Access all nodesfor i := 0 to Tree1.Shapes.Count - 1 do ProcessNode(Tree1.Shapes[i]);// Using default array propertyNode := Tree1[0]; // First node in tree
procedure ProcessNode(Sender: TTreeNodeShape);begin // Process each node Sender.Color := clYellow;end;begin // Apply to all nodes Tree1.Shapes.ForEach(ProcessNode); // Apply to children only MyNode.Children.ForEach(ProcessNode);end;
var i: Integer;begin // Iterate all nodes for i := 0 to Tree1.Shapes.Count - 1 do begin Tree1.Shapes[i].Color := clWhite; end; // Iterate children for i := 0 to ParentNode.Count - 1 do begin ParentNode.Children[i].Visible := True; end;end;
Deleting a node automatically deletes all its children and associated connections.
// Delete node and childrenNode.Free;// Clear all childrenParentNode.Clear;// Remove specific childParentNode.RemoveChild(ChildNode);// Clear entire treeTree1.Shapes.Clear;
// Get depth level (0 for root)NodeLevel := Node.Level;// Check if inside tree boundsif Node.InsideTreeBounds then ShowMessage('Node is visible in tree viewport');