![]() |
Virtual Tree - Nodes prüfen
Hallo,
ich habe in meinem Programm einen Virtual String Tree eingebaut, funktioniert auch. In diesem Tree kann der Anwender Daten auswählen die er übernehmen möchte, per CheckBoxs. "If PVirtualNode.CheckState = csCheckedNormal Then" -Das ist mir bekannt, nur wie kann ich einzeln durch den Virtual Tree gehen? -ListBox.Items.Strings[i], sowas in der Art bräuchte ich. |
Re: Virtual Tree - Nodes prüfen
IterateSubtree müsste das Zauberwort sein:
In etwa so müsste es gehen (ungetestet):
Delphi-Quellcode:
Weitere Info's z.B. unter
Procedure TForm1.MyCallBack(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
Begin If Sender.CheckState[Node] = csCheckedNormal Then DoAnything End; Procedure TForm1.ButtonClick(Sender: TObject); Begin VST.IterateSubTree(nil, MyCallBack, nil); End; ![]() |
Re: Virtual Tree - Nodes prüfen
Vielen Dank! Ich werde es mal versuchen.
|
Re: Virtual Tree - Nodes prüfen
Moin,
Du kannst auch ohne dieses Callback (welches für diesen Zweck nicht unbedingt geeignet sein muss) durch den Tree iterieren, das tust du so:
Delphi-Quellcode:
Der Tree biete auch funktionen wie GetNextSelected, GetFirstSelected, GetNextSibling (um auf einer Tree-Ebene zu bleiben), etc.
procedure Foo;
var lNode: PVirtualNode; begin lNode := vstTree.GetFirst; while Assigned(lNode) do begin vstTree.Selected[lNode] := True; // zum Beispiel // Next Node lNode := vstTree.GetNext(lNode); end; // Hier ist die Schleife beendet end; Grüße, Max |
Re: Virtual Tree - Nodes prüfen
@Prototypjack
Ahh vielen Dank! Es klappt! :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz