Hi generic,
dank für die Antwort. Ich hatte mir parallel das PDF zum VirtualTree genauer zu Gemüte geführt und dabei die Eigenschaft NodeState gefunden. Genau wie du beschrieben hast verwende ich jetzt den Typ vsVisible der Nodes zum Ein-/Ausblenden.
Da ich das über einen zentralen Schalter mache kann ich den gesamten Tree einmal abarbeiten und die entsprechenden Nodes bearbeiten.
Hier mein Code:
Delphi-Quellcode:
procedure TSettingsStyleForm.VisualizeAllNodes(Value: Boolean);
var
ANode: PVirtualNode;
AData: ^TVTData;
begin
ANode := VTree.GetFirst;
if ANode = nil then
Exit;
try
VTree.BeginUpdate;
while not (ANode = nil) do begin
AData := VTree.GetNodeData(ANode);
if AData.DataType = snt_Param then begin // ich möchte dies nur für Nodes tun die meinem eigenen Typ snt_Param entsprechen
if not Value then begin // nur die Nodes anzeigen, die in den eingeblendeten Checkboxen angewählt sind
if ANode.CheckState = csUncheckedNormal then
ANode.States := ANode.States - [vsVisible]
else
ANode.States := ANode.States + [vsVisible];
end else
ANode.States := ANode.States + [vsVisible]; // alle anzeigen
end;
ANode := VTree.GetNext(ANode);
end;
finally
VTree.EndUpdate;
end;
end;
Dank für deine Hilfe. Damit ist die Frage beantwortet,
Gruß oki