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 Treeview - child count eines nodes ermitteln (https://www.delphipraxis.net/102480-treeview-child-count-eines-nodes-ermitteln.html)

Van HelF 29. Okt 2007 19:23


Treeview - child count eines nodes ermitteln
 
hallo,
ich habe folgendes problem, ich möchte die anzahl der child einträge (nur eine ebene) eines treeview auslesen.

folgender code funktioniert, allerdings nur beim 1. item:
tv.item.item[0].count <- wert stimmt
tv.item.item[1].count <- wert stimmt nicht (immer 0)

Chemiker 29. Okt 2007 23:03

Re: Treeview - child count eines nodes ermitteln
 
Hallo Van HelF,

ich weis nicht ob ich es richtig verstanden habe, aber ich will es mal beschreiben wie ich es verstanden habe.

Gegeben ist ein TreeView mit folgendem Aufbau:

Code:
+Ebene1
 |     |
 |     -----Ebene11
 |     -----Ebene12
 |     -----Ebene13
 |
 +Ebene2
       |
       ----Ebene21
       ----Ebene22
       ----Ebene23
So, wenn ich die Frage jetzt ich richtig verstanden habe, willst Du jetzt die Anzahl ermitteln von Ebene11 – Ebene23, das heißt in dem Beispiel währe das Ergebnis 6.
Man kann mit der Eigenschaft Level von TTreeNode die Anzahl ermitteln.

In dem Beispiel wird der Text von Ebene11 - Ebene23 in eine Listbox ausgegeben.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Knoten: TTreeNode;
begin
  Knoten:= TreeView1.Items.GetFirstNode; // auf den ersten Knoten setzen.
  while Knoten <> NIL do
  begin
    if Knoten.Level=1 then  
    begin
      Listbox1.Items.Add(Knoten.Text); // Es werden nur die Knoten auf der 2 Ebene ausgeben.
    end;
    Knoten:= Knoten.GetNext
  end;
end;
Bis bald Chemiker

Garfield 30. Okt 2007 16:49

Re: Treeview - child count eines nodes ermitteln
 
Zitat:

Zitat von Van HelF
folgender code funktioniert, allerdings nur beim 1. item:
tv.item.item[0].count <- wert stimmt
tv.item.item[1].count <- wert stimmt nicht (immer 0)

Bei meinem Delphi funktioniert beides nicht. Da wäre - um Deinen Variablennamen zu verwenden - tv.items[0] der erste Eintrag des Treeviews und tv.items[1] der zweite. Wenn tv.items[0] Childs besitzt wäre tv.items[1] das erste Child.

oki 30. Okt 2007 22:34

Re: Treeview - child count eines nodes ermitteln
 
Hi,

schau mal in der Hilfe unter GetNextChild nach. Damit solltest du auch das Problem mit einer variablen "Ebene" in den Griff bekommen.

Du rufst zu deinem Knoten (der die Subknoten enthält) GetNextChild auf. ist der ungleich nil, so gibt es schon mal einen Subknoten. Dann kann deine while-Schleife mit abschließenden GetNext kommen. Ist das dann nil, hast du alle Subknoten(-Einträge).

Gruß oki


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz