Тема: VBS + WSO реализация TreeView
Пытаюсь использовать такую замечательную штуку как WSO. О этой технологии тут уже писали. http://forum.script-coding.com/viewtopic.php?id=3906
Возник такой вопрос. В данном примере TreeView реализована простановка "галочек" по всем дочерним элементам дерева. Данный пример прислал мне сам автор, за что ему большое спасибо.
Здравствуйте
Инструмент для перебора есть, но нет события, которое вызывается в момент смены переключателя.
Будет добавлено в будущем.Пока как-то так можно:
Set o = WScript.CreateObject("Scripting.WindowSystemObject")
Set f = o.CreateForm(0,0,0,0)
f.ClientWidth = 500
f.ClientHeight = 300
f.CenterControl()
Set TreeView = f.CreateTreeView(0,0,0,0)
TreeView.Align = o.Translate("AL_CLIENT")
TreeView.CheckBoxes = true
Set Root = TreeView.Items.Add("1")
For counter = 1 To 10
Set Item = Root.Add(CStr(counter))
For i = 1 To 10
Set Item1 = Item.Add(CStr(counter)+"."+CStr(i))
Next
Next
Root.Expand(true)
Set t = o.CreateTimer()
t.Interval = 100
t.OnExecute = GetRef("OnTimer")
t.Active = true
Sub OnTimer(Sender)
UpdateItems TreeView.Items
End Sub
Sub InitItems(Value)
Dim Item
Dim SubItem
Dim i
Set Item = Value
Item.UserData = Item.Checked
If Item.Count > 0 Then
For i = 1 To Item.Count
Call InitItems(Item.Item(i-1))
Next
End If
End Sub
Sub UpdateItems(Value)
Dim Item
Dim SubItem
Dim i
Set Item = Value
If Item.UserData <> Item.Checked Then
Item.UserData = Item.Checked
If Item.Count > 0 Then
For i = 1 To Item.Count
Item.Item(i-1).Checked = Item.Checked
Next
End If
End If
If Item.Count > 0 Then
For i = 1 To Item.Count
Call UpdateItems(Item.Item(i-1))
Next
End If
End Sub
InitItems TreeView.Items
f.Show()
o.Run()
Теперь собственно вопрос к знатокам.
Как перебрать все элементы коллекции и узнать где "галочка" стоит, а где нет?

