Hauptseite >Tips zu VB5/6 >  TreeView: NodeLevel
 
Oftmals ist es hilfreich, auf einfache Weise zu ermitteln, auf welcher Ebene ein Knoten in einem TreeView liegt. Leider gibt es dafür keine vorgefertigte Funktion, so dass einem nichts anderes übrigbleibt, als sich von Elternelement zu Elternelement zu hangeln und dabei einen Zähler mitlaufen zu lassen. Die folgende Routine erledigt dies.

Public Function NodeLevel(Node As Node) As Long
'Gibt das hierarchische Level eines Node-Objektes aus.
'Rückgabewerte:
' -1 = der übergebene Knoten ist Nothing
'  0 = der übergebene Knoten steht in oberster Ebene, d.h. er hat kein
'      Parent-Element (Node.Parent Is Nothing)
'  x = der übergebene Knoten ist x Level von der obersten Ebene entfernt,
'      d.h. er hat x Eltern-Ebenen
  Dim l As Long, n As Node

  Set n = Node
  Do While ObjPtr(n)
    l = l + 1
    Set n = n.Parent
  Loop
  NodeLevel = l - 1

End Function
            
Wie Sie vielleicht bemerkt haben, wird die Zählervariable l verwendet, ohne vorher auf einen Anfangswert gesetzt worden zu sein. VB initialisiert (im Gegensatz zu beispielsweise C/C++) automatisch jede Variable mit einem bestimmten Wert, bei numerischen Variablen ist das der Wert 0. Dieses Verhalten wird von der vorgestellten Routine bewusst genutzt.
Hauptseite >  Tips zu VB5/6 >  diese Seite