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 Ich brauche Hilfe mit der Treeview und Node.level. (https://www.delphipraxis.net/85862-ich-brauche-hilfe-mit-der-treeview-und-node-level.html)

Wishmaster 6. Feb 2007 00:10


Ich brauche Hilfe mit der Treeview und Node.level.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi


Es geht darum den letzten Level bzw. Eintrag(index) einer Node rauszukriegen.

Beispielsweise wen ich den Node.Level 1 Selektiere, will ich wissen wie fiel Sub Levels dieser hat. Später will ich das ganze in eine schleife Verarbeiten.


Danke im voraus.

chaosben 6. Feb 2007 05:21

Re: Ich brauche Hilfe mit der Treeview und Node.level.
 
Hi!

Ich verstehe noch nicht ganz, worauf das hinauslaufen soll.
Willst du alle ChildNodes durchlaufen? Oder willst du nur alle ersten Kinder durchiterieren?

marabu 6. Feb 2007 07:21

Re: Ich brauche Hilfe mit der Treeview und Node.level.
 
Guten Morgen,

auch ich habe leichte Verständnisschwierigkeiten. Die Anzahl der Sublevels heißt in Fachkreisen Höhe des Teilbaums und ein solcher Teilbaum wird durch seinen Wurzelknoten repräsentiert. Jeder Knoten ist Wurzel eines Teilbaumes, dessen Höhe so bestimmt werden kann:

Delphi-Quellcode:
function GetHeight(tn: TTreeNode): Integer;

  function MaxLevel(tn: TTreeNode): Integer;
  var
    i, level: Integer;
  begin
    Result := tn.Level;
    if tn.Count > 0 then
    begin
      for i := 0 to Pred(tn.Count) do
      begin
        level := MaxLevel(tn.Item[i]);
        if Result < level then
          Result := level;
      end
    end;
  end;

begin
  if Assigned(tn)
    then Result := MaxLevel(tn) - tn.Level
    else Result := -1;
end;
Den letzten child node eines Knoten erhältst du mittels node.GetLastChild(), seinen Level und Index über die gleichnamigen properties.

Grüße vom marabu

Wishmaster 7. Feb 2007 03:08

Re: Ich brauche Hilfe mit der Treeview und Node.level.
 
Hi

@marabu danke für den Code das ist genau das was ich brauchte. :thumb: War wohl en denkfeiler meinerseits.

Ich lade ne DB in eine TreeView die ich dann auch editieren kann, nur mit dem löschen hatte ich so meine Probleme.


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