#define tvwFirst 0
#define tvwLast 1
#define tvwNext 2
#define tvwPrevious 3
#define tvwChild 4
public oForm
oForm = createobject('myForm')
oForm.show()
with oForm.Tree
.left = 10
.top = 10
.width = 200
.height = 200
.Nodes.add(,tvwFirst,"root0",'Main node 0')
.Nodes.add(,tvwFirst,"root1",'Main node 1')
.Nodes.add(,tvwFirst,"root2",'Main node 2')
* Add 2 child nodes to root1
.Nodes.add('root1',tvwChild,"child11",'Child11')
.Nodes.add('root1',tvwChild,"child12",'Child12')
*Add a child node to root2
.Nodes.add('root2',tvwChild,"child23",'Child23')
.Nodes.add('child11',tvwChild,"child113",'child113')
with .Nodes.add('child113',tvwPrevious,"child112",'child112')
.Bold=.t.
endwith
with .Nodes.add('child112',tvwPrevious,"child111",'child111')
.Bold = .t.
endwith
* Later decided to add another 2 nodes to root2
* Place first before child23
with .Nodes.add('child23',tvwPrevious,"child22",'Child22')
.Bold=.t.
.backcolor = rgb(0,255,255)
endwith
* Place next before child22
with .Nodes.add('child22',tvwPrevious,"child21",'Child21')
.Bold=.t.
.forecolor = rgb(192,192,192)
endwith
for each oNode in .Nodes && Expand all nodes for easy view
oNode.Expanded = .t.
endfor
endwith
define class myForm as form
add object Tree as myTreeView
enddefine
define class myTreeview as olecontrol olepublic
oleclass='MSComCtlLib.TreeCtrl'
procedure init
with this
.linestyle = 1
.font.name = 'Times New Roman'
.font.size = 10
.indentation = 5
.PathSeparator = '\'
.CheckBoxes = .t.
endwith
endproc
procedure NodeCheck
lparameters node
llChecked = node.Checked
this.CheckSubNodes(node, m.llChecked)
endproc
procedure CheckSubNodes
lparameters toNode, tlChecked
local loChildNode
if toNode.Children > 0
loChildNode = toNode.child
do while vartype( loChildNode ) = 'O'
loChildNode.Checked = m.tlChecked
this.CheckSubNodes( loChildNode, m.tlChecked )
loChildNode = loChildNode.next
enddo
endif
endproc
enddefine