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/)
-   -   VirtualStringTree - VisibleChildNodes count? (https://www.delphipraxis.net/213507-virtualstringtree-visiblechildnodes-count.html)

taveuni 9. Aug 2023 10:40

VirtualStringTree - VisibleChildNodes count?
 
Hallo zusammen,
Ich suche mir einen Wolf. Ein Tree wird per Eingabe gefiltert. Das geht sehr schnell über den IterateSubtree. Darin wird die Sichtbarkeit der betreffenden Nodes via dem Filterkriterium gesetzt.

Delphi-Quellcode:
Sender.IsVisible[Node]:= Match;


Diese gefilterten Nodes haben jeweils einen Parent. Nun möchte ich den Parent wenn er keine visible Childnodes mehr hat auch invisible setzen. Also:

Delphi-Quellcode:
Sender.IsVisible[Node.Parent] := Node.Parent.VisibleChildCount;


Leider gibt es dies nicht. Klar könnte ich nun bei jedem Iterate noch mal durch alle Childnodes des Parent iterieren und schauen ob es noch visible Nodes hat. Vermutlich geht das aber einfacher und ich finde es einfach nicht?

Uwe Raabe 9. Aug 2023 11:39

AW: VirtualStringTree - VisibleChildNodes count?
 
Direkt den VisibleChildCount abfragen geht offenbar wirklich nicht, aber man kann sich zumindest etwas helfen:
Delphi-Quellcode:
  var parentVisible := False;
  for var dummy in Sender.VirtualChildNodes(Node.Parent) do begin
    parentVisible := True;
    Break;
  end;
  Sender.IsVisible[Node.Parent] := parentVisible;

taveuni 9. Aug 2023 12:03

AW: VirtualStringTree - VisibleChildNodes count?
 
Hallo Uwe,

Vielen Dank. Ich hab doch noch einen gefunden. Kaum habe ich nach Stunden die Frage hier gestellt.

Delphi-Quellcode:

Sender.IsVisible[Node.Parent] := Not (vsAllChildrenHidden IN Node.Parent.States);


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:41 Uhr.

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