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 Zählen, wieviel Nodes in Treeview sind (https://www.delphipraxis.net/43839-zaehlen-wieviel-nodes-treeview-sind.html)

TheMiller 9. Apr 2005 13:36


Zählen, wieviel Nodes in Treeview sind
 
Hi,

möchte herausfinden, (also, den Computer herausfinden lassen), wieviele Nodes in der Treeview sind. Zähle ich mit Items.Count-1 zählt er ja auch die untergeordneten Nodes mit. Will aber nur die "haupt"-Nodes.

Danke im Voraus

SirThornberry 9. Apr 2005 13:37

Re: Zählen, wieviel Nodes in Treeview sind
 
selbst eine schleife schreiben die nur die childs des root-nodes durchzählt.
bzw.: Bevor irgend ein Item erstellt wurde mit
Delphi-Quellcode:
TreeView1.Items.GetFirstNode
das root-item ermitteln und in ner private-variablen sichern.
Und dan wenn du mal die anderen Items erstellt hast kannst du über
Delphi-Quellcode:
gesichtertesFirstNode.Count
die anzahl ermitteln

TheMiller 9. Apr 2005 13:39

Re: Zählen, wieviel Nodes in Treeview sind
 
Genau das will ich ja. Nur ich weiß nicht wie...

[EDIT: Das verstehe ich nicht...]

Orbmu2k 9. Apr 2005 13:55

Re: Zählen, wieviel Nodes in Treeview sind
 
Müsste so gehen...!?

Delphi-Quellcode:
function GetRootNodeCount(Treeview: TTreeview): Integer;
var
  i:Integer;
begin
  Result := 0;
  for i:= 0 to Pred(Treeview.Items.Count) do
    if not Assigned(Treeview.Items[i].Parent) then
      Inc(Result);
end;

SirThornberry 9. Apr 2005 14:10

Re: Zählen, wieviel Nodes in Treeview sind
 
ok, falls es nochjemand nicht verstanden hat, hier der entscheidente teil der bei der pn-unterhaltung den ausschlag zum verständnis gab
Zitat:

ok, i merk grad das es müll war was ich geschrieben hab
so gehts aber wirklich (grad getestet und ich poste es auch gleich)
Items einfach vorher anlegen und damit kannst du dann später die items zählen
Delphi-Quellcode:
var LRoot: TTreeNode;
    LCount: Integer;
begin
  LCount := 0;
  LRoot := TreeView1.Items.GetFirstNode;
  while (LRoot <> nil) do
  begin
    LRoot := LRoot.getNextSibling;
    inc(LCount);
  end;
  showmessage(inttostr(LCount));

das ganze als fertige funktion würde dann so aussehen
Delphi-Quellcode:
function CountFirstLevelItems(ATreeView: TTreeView): Integer;
var LRoot: TTreeNode;
begin
  result := 0;
  LRoot := ATreeView.Items.GetFirstNode;
  while (LRoot <> nil) do
  begin
    LRoot := LRoot.getNextSibling;
    inc(result);
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:03 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