доброго времени суток, говорю заранее, я на бейсике только начинаю программировать
подскажите ,пожалуйста, как в treeview 6-м определить глубину вложения выделенного нода в ветке от верхнего уровня?
Хакер писал(а):Поискать свойство. Если свойство не найдётся, итеративно спуститься вниз до достижения корня, посчитав количество итераций.
alibek писал(а):Подняться.
alibek писал(а):TreeView имеет однозначный визуальный образ.
Хакер писал(а):Что значит 6-ой TreeView? Шестая версия comctl32.dll? Или шестая версия враппера (mscomctl.ocx)?
Хакер писал(а):Поискать свойство. Если свойство не найдётся, итеративно спуститься вниз до достижения корня, посчитав количество итераций.
alibek писал(а):Есть еще индусский вариант, заменить символ "\" на пустую строку в Path и определить, насколько путь стал короче.
Private Function NodeLevel(ByVal node As MSComctlLib.node) As Long
If (Not node.Parent Is Nothing) Then
NodeLevel = NodeLevel(node.Parent) + 1
End If
End Function
hclubmk писал(а):Если у Node есть Parent тогда Level = Level + 1, и всё сначала, типа такого:
- Код: Выделить всё
Private Function NodeLevel(ByVal node As MSComctlLib.node) As Long
If (Not node.Parent Is Nothing) Then
NodeLevel = NodeLevel(node.Parent) + 1
End If
End Function
Private Function NodeLevel(ByVal node As MSComctlLib.node) As Long
Do Until node.Parent Is Nothing
Set node = node.Parent
NodeLevel = NodeLevel + 1
Loop
End Function
обоснуй.Хакер писал(а):Дурь
hclubmk писал(а):обоснуй.
alibek писал(а):идеи, которые претендуют на разумность
alibek писал(а):рекурсия ухудшает качество кода
Сейчас этот форум просматривают: AhrefsBot и гости: 55