Einzelnen Beitrag anzeigen

nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: VST - Knoten überspringen

  Alt 27. Sep 2012, 11:49
Hä? Wie baust du denn den Baum auf? Normal ist es dem VST völlig wurscht, ob er aufgeklappt ist, oder nicht, da er die ganze Struktur intern handelt.

Edit

Grad mal 'n Testprojekt gemacht. Geht. Irgendwas musst du falsch machen.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, VirtualTrees;

type
  TForm1 = class(TForm)
    VirtualStringTree1: TVirtualStringTree;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  i, a, b: Integer;
  Node, ParentNode: PVirtualNode;
begin
  Randomize;

  // Zufällige Baumstruktur erstellen
  ParentNode := nil;
  for i := 0 to 99 do
    begin
      Node := VirtualStringTree1.AddChild(ParentNode);
      if (i + 1) mod (Random(2) + 1) = 0 then
        begin
          ParentNode := Node;
        end
      else
        ParentNode := nil;
    end;
  a := VirtualStringTree1.TotalCount;

  // Baumstruktur durchlaufen
  b := 0;
  Node := VirtualStringTree1.GetFirst;
  while Assigned(Node) do
    begin
      Inc(b);
      Node := VirtualStringTree1.GetNext(Node);
    end;

  ShowMessage(IntToStr(a) + ' <> ' + IntToStr(b));
end;

end.
Nochmal Edit

Eigentlich hätte er nur einen Grund, nach dem Root aufzuhören, wenn er GetNextSibling auf ihn anwendet.

Geändert von nuclearping (27. Sep 2012 um 11:58 Uhr)
  Mit Zitat antworten Zitat