Autor Beitrag
Tachoron
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 27.01.09 16:15 
Hi,

wie der Titel schon sagt hab ich ein Problem mit der VirtualStringTree-Komponetne aus dem VirtualTreeView-Package.

Ich will eigentlich nur in einem Baum mit beliebiger Tiefe alle via Multieselect selektierten Knoten ermitteln.

Eigentlich ne ganz allgemeine Sache,
Nur hat die Komponente halt keine direkte Eigenschaft für die selektierten Einträge
und irgendwie hab ich nach ausgiebigem Stöbern weder hier, noch auf Delphi-Gems oder via Google einen wirklich passenden Hinweis gefunden.

Hat sowas schonmal jemand realisiert und kann mir da weiterhelfen?

MfG
Tachoron
Nico72
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50

Win XP, Vista
Delphi 7, Delphi 2006
BeitragVerfasst: Di 27.01.09 17:00 
Hallo,

du hast in der VirtualStringTree das Property Selected, die dir zurückgibt, ob ein Knoten selektiert ist:
ausblenden Delphi-Quelltext
1:
if VirtualStringTree.Selected[Node] then blabla					

Jetzt musst du also nur alle Knoten durchlaufen und dir halt die Selektierten zusammensammeln.
Tachoron Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 27.01.09 18:54 
Hmm, das hab ich fast vermutet.

Die Knoten kann ich aber nur rekursiv vom Rootnode durchlaufen oder gibt es eine Möglichkeit einfach alle Knoten des VST unabhängig von ihrer Tiefe zu durchlaufen?
Nico72
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50

Win XP, Vista
Delphi 7, Delphi 2006
BeitragVerfasst: Mi 28.01.09 15:18 
Hallo,

mit
ausblenden Delphi-Quelltext
1:
Node:=VirtualStringTree.GetNext(Node);					

bekommst du einfach den nächsten Knoten. Mit
ausblenden Delphi-Quelltext
1:
Node:=VirtualStringTree.GetNextSibling(Node);					

den nächsten im selben Level.

Ach, und übrigens mit
ausblenden Delphi-Quelltext
1:
Node:=VirtualStringTree.GetNextSelected(Node);					

den nächsten selektierten... (hatte ich ganz vergessen..) :roll:
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mi 28.01.09 15:22 
Wenn ich mich recht erinnere, gibt es beim VST auch ein VST.GetSortedSelectionArray (Name kann abweichen, müsste ich zu Hause nachsehen). Das liefert ein Array, in dem alle markierten Knoten enthalten sind. Man muss also nicht selbst den Baum durchgehen.

_________________
We are, we were and will not be.
Nico72
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50

Win XP, Vista
Delphi 7, Delphi 2006
BeitragVerfasst: Mi 28.01.09 16:09 
Na sowas. :shock: Tatsächlich!

Hätte ich mir ja auch viel Arbeit sparen können.... :autsch: