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/)
-   -   Delphi Virtual Tree - Nodes prüfen (https://www.delphipraxis.net/108949-virtual-tree-nodes-pruefen.html)

BenniP 21. Feb 2008 16:32


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.

OG Karotte 21. Feb 2008 16:57

Re: Virtual Tree - Nodes prüfen
 
IterateSubtree müsste das Zauberwort sein:

In etwa so müsste es gehen (ungetestet):

Delphi-Quellcode:
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;
Weitere Info's z.B. unter http://support.soft-gems.net/forums/viewforum.php

BenniP 22. Feb 2008 16:26

Re: Virtual Tree - Nodes prüfen
 
Vielen Dank! Ich werde es mal versuchen.

Prototypjack 22. Feb 2008 16:38

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:
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;
Der Tree biete auch funktionen wie GetNextSelected, GetFirstSelected, GetNextSibling (um auf einer Tree-Ebene zu bleiben), etc.

Grüße,
Max

BenniP 24. Feb 2008 13:00

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