Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Потомки в ListView
 
 автор: pstrkim   (25.12.2006 в 17:12)   личное сообщение
 
 

Пишу программу для вывода потомков выбранного из TreeView узла в ListView:
Dim anyNode As Node
Dim kidNode As Node
Dim inCounter As Integer
' lv - это ListView, tvM - это TreeView


Set anyNode = tvM.SelectedItem
If anyNode.Children <> 0 Then

Set kidNode = anyNode.Child

inCounter = kidNode.FirstSibling.Index

While inCounter <> kidNode.LastSibling.Index
Set itmX = lv.ListItems.Add(, , tvM.Nodes(inCounter).Text)
inCounter = tvM.Nodes(inCounter).Next.Index
Wend

End If

Проблема в том, что выводятся все потомки кроме одного последнего
Где здесь может быть ошибка?

  Ответить  
 
 автор: Serge Gavrilov   (25.12.2006 в 17:25)   личное сообщение
 
 

>Проблема в том, что выводятся все потомки кроме одного последнего
но вы же сами написали
While inCounter <> kidNode.LastSibling.Index
вот последний и не выводится .
Вариантов много, например

Do 
    Set itmX = lv.ListItems.Add(, , tvM.Nodes(inCounter).Text)
    if inCounter = kidNode.LastSibling.Index then exit Do
    inCounter = tvM.Nodes(inCounter).Next.Index
Loop 

  Ответить  
 
 автор: pstrkim   (25.12.2006 в 22:32)   личное сообщение
 
 

Здорово, a почему не получается вот так:
While inCounter <= kidNode.LastSibling.Index
Set itmX = lv.ListItems.Add(, , tvM.Nodes(inCounter).Text)
inCounter = tvM.Nodes(inCounter).Next.Index - Ошибка! Object variable not set
Wend

  Ответить  
 
 автор: Serge Gavrilov   (25.12.2006 в 23:30)   личное сообщение
 
 

Мне не очень понятно как можно объяснять очевидное.
Если вы от LastSibling пытаетесь получить Next, то что вы ожидаете?

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList