AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VST - Knoten überspringen

Ein Thema von fanavity · begonnen am 27. Sep 2012 · letzter Beitrag vom 28. Sep 2012
Antwort Antwort
nuclearping

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

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
fanavity

Registriert seit: 2. Sep 2011
65 Beiträge
 
#2

AW: VST - Knoten überspringen

  Alt 27. Sep 2012, 11:59
Bei mir wird auch erst das "+" angezeigt wenn ich doppelt drauf klicke.. daher habe ich immer ein expand gemacht.. ister aber ziemlich nervig.. da man sich entweder den status der nodes merken muss oder der baum ist nach jeder aktion ein/ausgeklappt.. habe den quellcode des erstellens gerade nicht parat..

EDIT:

ich arbeite mit getNext

Und wie gesagt, zeigt er mir auch nur den oberen Punkt an. Das Plus erscheint erst mit klick auf den RootPunkt.. Dann sind alle sofort sichtbar. Ein onclick ereignis gibt es nicht!

Geändert von fanavity (27. Sep 2012 um 12:07 Uhr)
  Mit Zitat antworten Zitat
nuclearping

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

AW: VST - Knoten überspringen

  Alt 27. Sep 2012, 12:10
Was für eine Delphi-Version? Und was für eine Version vom VST? Vielleicht noch eine alte mit 'nem Bug? Wäre auch interessant zu sehen, wie du den Baum aufbaust.
  Mit Zitat antworten Zitat
fanavity

Registriert seit: 2. Sep 2011
65 Beiträge
 
#4

AW: VST - Knoten überspringen

  Alt 27. Sep 2012, 12:14
delphi 5 mit entsprechender version vom vst..

Ein bug ist es nicht. Da es in anderen Projekten klappt. Ich mache scheinbar irgendetwas falsch. Leider finde ich den fehler aber nicht, wie gesagt den quellcode des erstellen habe ich gerade nicht parat.

EDIT:

bin gerade echt am verzweifeln und suche mir nen wolf.. wenn jemand eine idee hat immer her damit

Geändert von fanavity (27. Sep 2012 um 12:41 Uhr)
  Mit Zitat antworten Zitat
nuclearping

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

AW: VST - Knoten überspringen

  Alt 27. Sep 2012, 12:45
Poste doch mal den Code vom Erstellen des Baums, sobald du kannst.
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#6

AW: VST - Knoten überspringen

  Alt 28. Sep 2012, 10:05
könnte es sein, dass die Child Nodes erst beim Aufklappen erzeugt und wieder beim schließen der Nodes gelöscht werden? Dann sollte sich das bei den entsprechenden Events finden lassen.
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#7

AW: VST - Knoten überspringen

  Alt 28. Sep 2012, 11:14
Die hier gezeigten Schleifen würde ich NICHT verwenden.
Der VST implementiert einen eigenen Vistor in der Methode Vst.IterateTree oder Vst.IterateSubTree.
Bin mir gerade nicht sicher wie die Methode genau heißt.

Vorteil der Methode ist, dass sie sehr schnell ist.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:59 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