Hier ist beispielhaft der Code mit dem ich den Baum aufbaue. Es wird ein Hauptnode mit 4 Child Nodes erzeugt. Die Childnodes sind alle gechecked. Trotzdem bleibt der Hauptnode ungecheckt, obwohl ich die Option toAutoTristateTracking auf true gesetzt habe. Ändere ich jetzt per Mausclick den Checkstate eines der Children, dann funktioniert das AutoTriStateTracking.
Delphi-Quellcode:
procedure BuildTree;
var
ixChild : integer;
Node, Node2: PVirtualNode;
begin
Tree.BeginUpdate;
Tree.Clear;
Node := Tree.AddChild(nil);
Tree.ValidateNode(Node, False);
Data := Tree.GetNodeData(Node);
Node .CheckType := ctTriStateCheckBox
for ixChild := 0 to 3 do
begin
// Füge Element der Liste hinzu
Node2 := Tree.AddChild(Node);
Node2.CheckState := csCheckedNormal
Node2.CheckType := ctCheckBox;
Tree.ValidateNode(Node2, False);
end;
SamplesVST.FullExpand;
SamplesVST.EndUpdate;
end;
Also nochmal die Frage: Wie kann ich den Tree dazu bewegen, bereits nach dem Neuaufbau des Trees den Checkstates automatisch an den Parentnode weiterzugeben.