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 TTreeView - Ebene Abfragen? (https://www.delphipraxis.net/113629-ttreeview-ebene-abfragen.html)

Real-TTX 11. Mai 2008 23:40


TTreeView - Ebene Abfragen?
 
Huhu,

Gibt es eine Möglichkeit Abzufragen in welcher Ebene ein Object ist? Hier ein paar Schnippsel zum verstehen:

BSP:

So sieht mein Baum aus:

Delphi-Quellcode:
ROOT
-Gruppe1
--benutzer1
--benutzer2
--benutzer3
-Gruuppe2
--benutzer1
--benutzer2
--benutzer3
-Gruppe3
-Gruppe4
--benutzer1
--benutzer2
--benutzer3
Ich mach es im moment mit :

Delphi-Quellcode:
if (TreeViewLoad.Selected.Text = TreeViewLoad.Items.GetFirstNode.Text) then
  begin
    // ... was machen wenn "root" ausgewählt ist...
  end else
  begin
    if TreeViewLoad.Selected.HasChildren then
    begin
      // ... Wenn Gruppe Ausgewählt ist....
    end else
    begin
      // ... Wenn Benutzer Ausgewählt ist....
    end;
  end;
Geht auch, solange jede Gruppe auch Benutzer (Childs) hat. Wie kann ich das umgehen? Ich will die Ebene Abfragen. Bsp:

Root = 0
Gruppe = 1
Benutzer = 2 ... Ganz einfach...

Kennt jemand ein Trick dazu?

Danke Vielmals im vorraus...

Gruß, Real-TTX

Die Muhkuh 11. Mai 2008 23:48

Re: TTreeView - Ebene Abfragen?
 
Hi,

Delphi-Quellcode:
if TreeView1.Selected.Level = 0 then
  // Root

if TreeView1.Selected.Level = 1 then
  // Gruppe

if TreeView1.Selected.Level = 2 then
  // Benutzer

Real-TTX 12. Mai 2008 00:00

Re: TTreeView - Ebene Abfragen?
 
Zitat:

Zitat von Die Muhkuh
Hi,

Delphi-Quellcode:
if TreeView1.Selected.Level = 0 then
  // Root

if TreeView1.Selected.Level = 1 then
  // Gruppe

if TreeView1.Selected.Level = 2 then
  // Benutzer

Danke dir vielmals... Ich bin echt enttäuscht , dass ich nicht selber darauf gekommen bin... Dank dir ! :)

Die Muhkuh 12. Mai 2008 00:02

Re: TTreeView - Ebene Abfragen?
 
Kein Problem.

War mir eben selbst nicht ganz sicher, ob Level stimmt, ich verwechsel das gerne mit anderen Eigenschaften.

nicodex 12. Mai 2008 00:08

Re: TTreeView - Ebene Abfragen?
 
Wenn man den Konstanten "Namen" gibt, dann kann den Code in drei Tagen auch noch Lesen :)
Delphi-Quellcode:
type
  TMyTreeNodeLevel = (
    mytnlRoot = 0,
    mytnlGroup = 1,
    mytnlUser = 2
  );
//...
var
  Node: TTreeNode;
//...
begin
  //...
  case TMyTreeNodeLevel(Node.Level) of
    mytnlRoot:
      begin
        //...
      end;
    mytnlGroup:
      begin
        //...
      end;
    mytnlUser:
      begin
        //...
      end;
  end;
end;
Wenn die Hierarchie nichts mehr mit dem "Level" des Knotens zu tun hat, dann kommst du nicht umhin, die Informationen an den jeweiligen Knoten zu hängen.


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