56
ImageSize property on 32 (specifies the size of the control' icons)

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as P
Dim var_Node2 as P
Dim var_Nodes as P
Dim var_Nodes1 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.ImageSize = 32
oXMLGrid.Font.Size = 16
oXMLGrid.NodeHeight = 32
oXMLGrid.Template = "LevelWidth(-1) = ImageSize" // oXMLGrid.LevelWidth(-1) = oXMLGrid.ImageSize
oXMLGrid.Images("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")
var_Node = oXMLGrid.Nodes.Add("Parent <b>1")
	var_Nodes = var_Node.Nodes
		var_Node1 = var_Nodes.Add("Child 1")
			var_Node1.Value = "<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1"
			var_Node1.Selected = .t.
		var_Nodes.Add("Child 2")
	var_Node.ExpandAll()
var_Node2 = oXMLGrid.Nodes.Add("Parent <b>2")
	var_Nodes1 = var_Node2.Nodes
		var_Nodes1.Add("Child 1")
		var_Nodes1.Add("Child 2")
oXMLGrid.ExpandBarVisible = .t.
oXMLGrid.ExpandButtons = 3
oXMLGrid.Template = "ExpandButtonsCustom(False) = 1" // oXMLGrid.ExpandButtonsCustom(.f.) = 1
oXMLGrid.Template = "ExpandButtonsCustom(True) = 2" // oXMLGrid.ExpandButtonsCustom(.t.) = 2
oXMLGrid.EndUpdate()

55
ImageSize property on 16 (specifies the size of the control' icons)

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as P
Dim var_Node2 as P
Dim var_Nodes as P
Dim var_Nodes1 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.ImageSize = 16
oXMLGrid.Images("gBJJgBAIDAAEg4ACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjMLjABAAgjUYkUnlUrlktl0vmExmUzmk1m03nE5nU7nkrQCAntBoVDolFo1HoM/ADAplLptImdMYFOqdSqlXq1QrVbrlGpVWsFNrNdnNjsk7pQAtNroFnt0sh8Yr9iulTuNxs1Eu8OiT/vsnsNVutXlk/oGGtVKxGLxWNtsZtN8iUYuNvy0Zvd+xNYwdwvl4p870GCqc8vOeuVttmp1knyOayWVy+WzN/ze1wOElenm+12WUz/Bv2/3UyyWrzeutux2GSyGP2dQ33C1ur3GD3M4zUNzHdlWjq/E3nGzVpjWv4HA7fRy/Tv2IrN8rPW6nZ3ve7mUlfu20Z8acvQyb+vY9jasYoDwMm+LytVBDqKG3z8O3Cb8P+mkAuY9cCQ2uL4KaxDKvkp8RNLEjqugnrwQo/UWPzFyeQw5sNLZFENrI4kOqU66pw8uzmOKvTqNqjULJvGL1JO48GtTGsbLdEL3scxLlyiw8dQeoUVxdLTtyKmUjwGlslRPJsnK1HbAKbKCrsQo8uQk/CeP44iaR/ATnTNPLvyxPU+z9P9AUDQVBowiofJXQ6Oo+kKMpIkjztE4TKn4P6JowfgPnwD5/nAjB8AOeAPo0eAA1IAFH07UhAIMpYAVIYFHqBUhwVjV1S1EtQAHxW65V0AZwAeuQAnwB5gAPYViEDVhwAHTQBkCjB4gOhwDmCyhH0sACAg==")
var_Node = oXMLGrid.Nodes.Add("Parent <b>1")
	var_Nodes = var_Node.Nodes
		var_Node1 = var_Nodes.Add("Child 1")
			var_Node1.Value = "<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1"
			var_Node1.Selected = .t.
		var_Nodes.Add("Child 2")
	var_Node.ExpandAll()
var_Node2 = oXMLGrid.Nodes.Add("Parent <b>2")
	var_Nodes1 = var_Node2.Nodes
		var_Nodes1.Add("Child 1")
		var_Nodes1.Add("Child 2")
oXMLGrid.ExpandBarVisible = .t.
oXMLGrid.ExpandButtons = 3
oXMLGrid.Template = "ExpandButtonsCustom(False) = 1" // oXMLGrid.ExpandButtonsCustom(.f.) = 1
oXMLGrid.Template = "ExpandButtonsCustom(True) = 2" // oXMLGrid.ExpandButtonsCustom(.t.) = 2
oXMLGrid.EndUpdate()

54
How can I create a new node with attribute, something like <newnode attr1='at1'/>

Dim d as P
Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.Images("gBJJgBAICAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf+Pt2RrmazF3zlez+duGhsGk0Vp01i1On0GV1dU1ev1lf2VWymX2e53W73m9327iw+lfCj0gkUkAEllHKnG13j/cHQjb/eHU6b4f74jbwOncjbAB3gjaAB/k8flB8oA4A9cb9ftjXv9Xs+fwAHk80a/HpjTAD7/O2P54D+jaAg=")
var_Node = oXMLGrid.Nodes.Add("newnode")
	var_Node.Image = 1
	' var_Node.Nodes.Add("attr1","at1").Image = 2
	var_Node1 = var_Node.Nodes.Add("attr1","at1")
	oXMLGrid.TemplateDef = "dim var_Node1"
	oXMLGrid.TemplateDef = var_Node1
	oXMLGrid.Template = "var_Node1.Image = 2"

oXMLGrid.ExpandAll()
d = OLE.Create("MSXML.DOMDocument")
oXMLGrid.SaveXML(d)
? d.xml 

53
Is it possible to load the XML with a different version of XML DOM
Dim d as P
Dim oXMLGrid as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
d = OLE.Create("Msxml2.DOMDocument.3.0")
	d.loadXML("<customer><first_name>Joe</first_name><last_name>Smith</last_name></customer>")
oXMLGrid.LoadXML(d)
oXMLGrid.ExpandAll()

52
Is there a way to define a default Editor which is assigned to each node when the string is loaded (method 2)

' Fires when the user changes the selection.
function SelectionChanged as v ()
	' SelectedNode(0).Editor = "edit"
	oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
end function

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Node3 as local
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.Editors.Add("edit",1)
oXMLGrid.Nodes.Add("Parent 1")
var_Node = oXMLGrid.Nodes.Add("Parent 2")
	var_Node.Picture = "pic1"
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		' var_Nodes.Add("Child <b>2").Value = 102
		var_Node2 = var_Nodes.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 102"

		' var_Nodes.Add("Child <b>3").Value = 103
		var_Node3 = var_Nodes.Add("Child <b>3")
		oXMLGrid.TemplateDef = "dim var_Node3"
		oXMLGrid.TemplateDef = var_Node3
		oXMLGrid.Template = "var_Node3.Value = 103"

	var_Node.Expanded = .t.

51
How can I specify a default editor

' Occurs when a node is added to the nodes collection.
function AddNode as v (NewNode  as  OLE::Exontrol.XMLGrid.1::INode)
	' NewNode.Editor = "calc"
	oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
end function

Dim oXMLGrid as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.Editors.Add("calc",20)
oXMLGrid.LoadXML("<numbers><first_number>100</first_number><second_number>200</second_number></numbers>")
oXMLGrid.ExpandAll()

50
Is there a way to define a default Editor which is assigned to each node when the string is loaded (method 1)

' Occurs when a node is added to the nodes collection.
function AddNode as v (NewNode  as  OLE::Exontrol.XMLGrid.1::INode)
	' NewNode.Editor = "edit"
	oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
end function

Dim oXMLGrid as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.SelForeColorChild = 8421504
oXMLGrid.Editors.Add("edit",1)
oXMLGrid.LoadXML("http://www.exontrol.net/testing.xml")
oXMLGrid.ExpandAll()

49
How can I assign editors to nodes

Dim oXMLGrid as P
Dim var_Editor as P
Dim var_Editor1 as P
Dim var_Editor2 as P
Dim var_Editors as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Node3 as local
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.AllowDuplicateEntries = .t.
var_Editors = oXMLGrid.Editors
	var_Editor = var_Editors.Add("name",1)
		var_Editor.Appearance = 4
	var_Editor1 = var_Editors.Add("phone",8)
		var_Editor1.Mask = "(###)-######"
		var_Editor1.Appearance = 4
	var_Editor2 = var_Editors.Add("date",7)
		var_Editor2.Appearance = 4
var_Node = oXMLGrid.Nodes.Add("Customer")
	var_Node.Picture = "mihai"
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Name","Mihai Filimon").Editor = "name"
		var_Node1 = var_Nodes.Add("Name","Mihai Filimon")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Editor = `name`"

		' var_Nodes.Add("Phone","(0744)-845287").Editor = "phone"
		var_Node2 = var_Nodes.Add("Phone","(0744)-845287")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Editor = `phone`"

		' var_Nodes.Add("BirthDay",{12/31/1971}).Editor = "date"
		var_Node3 = var_Nodes.Add("BirthDay",{12/31/1971})
		oXMLGrid.TemplateDef = "dim var_Node3"
		oXMLGrid.TemplateDef = var_Node3
		oXMLGrid.Template = "var_Node3.Editor = `date`"

	var_Node.Expanded = .t.
oXMLGrid.Template = "LevelWidth(0) = 82" // oXMLGrid.LevelWidth(0) = 82
oXMLGrid.EndUpdate()

48
I use LoadXml, then inside onNodeAdd event, I add the picture. But the picture doesnt show up. Does the picture have to be a bitmap

' Occurs when a node is added to the nodes collection.
function AddNode as v (NewNode  as  OLE::Exontrol.XMLGrid.1::INode)
	' NewNode.Picture = LoadPicture("c:\exontrol\images\colorize.gif")
	oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
end function

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Node3 as local
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.Nodes.Add("Parent 1")
var_Node = oXMLGrid.Nodes.Add("Parent 2")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		' var_Nodes.Add("Child <b>2").Value = 102
		var_Node2 = var_Nodes.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 102"

		' var_Nodes.Add("Child <b>3").Value = 103
		var_Node3 = var_Nodes.Add("Child <b>3")
		oXMLGrid.TemplateDef = "dim var_Node3"
		oXMLGrid.TemplateDef = var_Node3
		oXMLGrid.Template = "var_Node3.Value = 103"

	var_Node.Expanded = .t.

47
How can I assign a picture to a node ( method 3 )

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Node3 as local
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.Template = "HTMLPicture(`pic1`) = `c:\exontrol\images\zipdisk.gif`" // oXMLGrid.HTMLPicture("pic1") = "c:\exontrol\images\zipdisk.gif"
oXMLGrid.Nodes.Add("Parent 1")
var_Node = oXMLGrid.Nodes.Add("Parent 2")
	var_Node.Picture = "pic1"
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		' var_Nodes.Add("Child <b>2").Value = 102
		var_Node2 = var_Nodes.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 102"

		' var_Nodes.Add("Child <b>3").Value = 103
		var_Node3 = var_Nodes.Add("Child <b>3")
		oXMLGrid.TemplateDef = "dim var_Node3"
		oXMLGrid.TemplateDef = var_Node3
		oXMLGrid.Template = "var_Node3.Value = 103"

	var_Node.Expanded = .t.

46
How can I save the control's content using a different version of XML DOM
Dim d as P
Dim oXMLGrid as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
d = OLE.Create("Msxml2.DOMDocument.3.0")
oXMLGrid.LoadXML("<customer><first_name>Joe</first_name><last_name>Smith</last_name></customer>")
oXMLGrid.SaveXML(d)
? d.xml 
oXMLGrid.ExpandAll()

45
How can I load the control's content using a different version of XML DOM
Dim d as P
Dim oXMLGrid as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
d = OLE.Create("Msxml2.DOMDocument.3.0")
	d.async = .f.
	d.loadXML("<customer><first_name>Joe</first_name><last_name>Smith</last_name></customer>")
oXMLGrid.LoadXML(d)
oXMLGrid.ExpandAll()

44
How can I get the XML string from the control's content
Dim d as P
Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as P
Dim var_Node2 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
d = OLE.Create("MSXML.DOMDocument")
var_Node = oXMLGrid.Nodes.Add("Root")
	var_Node.Image = 1
	var_Node1 = var_Node.Nodes.Add("Child1")
		var_Node1.Image = 2
		var_Node1.Value = "Value <b>1"
	var_Node2 = var_Node.Nodes.Add("Child2")
		var_Node2.Image = 2
		var_Node2.Value = "Value <b>2"
oXMLGrid.ExpandAll()
oXMLGrid.ResizeToFit(0)
oXMLGrid.SaveXML(d)
? d.xml 

43
How can I load the control from a XML DOM object

Dim d as P
Dim oXMLGrid as P
Dim var_IXMLDOMAttribute as local
Dim var_IXMLDOMAttribute1 as local
Dim var_IXMLDOMNamedNodeMap as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
d = OLE.Create("Msxml2.DOMDocument.3.0")
	d.appendChild(d.createElement("Root"))
	var_IXMLDOMNamedNodeMap = d.childNodes.item(0).attributes
		var_IXMLDOMNamedNodeMap.setNamedItem(d.createAttribute("Item-1"))
		' var_IXMLDOMNamedNodeMap.item(0).value = "value <b>1"
		var_IXMLDOMAttribute = var_IXMLDOMNamedNodeMap.item(0)
		oXMLGrid.TemplateDef = "dim var_IXMLDOMAttribute"
		oXMLGrid.TemplateDef = var_IXMLDOMAttribute
		oXMLGrid.Template = "var_IXMLDOMAttribute.value = `value <b>1`"

		var_IXMLDOMNamedNodeMap.setNamedItem(d.createAttribute("Item-2"))
		' var_IXMLDOMNamedNodeMap.item(1).value = "value <b>2"
		var_IXMLDOMAttribute1 = var_IXMLDOMNamedNodeMap.item(1)
		oXMLGrid.TemplateDef = "dim var_IXMLDOMAttribute1"
		oXMLGrid.TemplateDef = var_IXMLDOMAttribute1
		oXMLGrid.Template = "var_IXMLDOMAttribute1.value = `value <b>2`"

oXMLGrid.LoadXML(d)
oXMLGrid.ExpandAll()
oXMLGrid.ResizeToFit(0)
? d.xml 

42
How can I load XML from http or URL

Dim oXMLGrid as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.LoadXML("http://www.exontrol.net/testing.xml")
oXMLGrid.ExpandAll()

41
How can I load XML from a supplied string

Dim oXMLGrid as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.LoadXML("<customer><first_name>Joe</first_name><last_name>Smith</last_name></customer>")
oXMLGrid.ExpandAll()

40
How do I programatically search for a node
Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Node3 as local
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.Nodes.Add("Parent 1")
var_Node = oXMLGrid.Nodes.Add("Parent 2")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		' var_Nodes.Add("Child <b>2").Value = 102
		var_Node2 = var_Nodes.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 102"

oXMLGrid.Nodes.Add("Parent 3")
' oXMLGrid.Search("Child 1",-1).Selected = .t.
var_Node3 = oXMLGrid.Search("Child 1",-1)
oXMLGrid.TemplateDef = "dim var_Node3"
oXMLGrid.TemplateDef = var_Node3
oXMLGrid.Template = "var_Node3.Selected = True"


39
How can I show the control's selection using your EBN technology

Dim oXMLGrid as P
Dim var_Appearance as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Node3 as P
Dim var_Node4 as local
Dim var_Node5 as local
Dim var_Nodes as P
Dim var_Nodes1 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
var_Appearance = oXMLGrid.VisualAppearance
	var_Appearance.Add(1,"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")
	var_Appearance.Add(2,"gBFLBCJwBAEHhEJAEGg4BFIDg6AADACAxRDAMgBQKAAzQFAYahsGCGAAGIYxUgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHLUXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQGhsCYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU8lORLUi+M4zSBPcZVTRtGShPDBKTjMKKYgkG4lVpRNa0PC1GTzQ6mazkKQLRADDIDVbAeL3LiMBy9LyLLItSIrFqqaJma7ccgRDj4AY7Ua+czufBZbozOqDYzAey7TDWLRXFDNIzzTgQAyHHrETbHGqzFxMAEa5YGqYpVj2HwzDuQ5oHKIQgggSRAlIYw6B0ThGFGDIAFUDAhBMfZRiGNAkFECZnG4IQdneJwmnsSQrGAAhWAIJBJBIQgFCQIBiEIAglgqYo0i4V4MEgRI9gSToYFSb4Fk6Y4+BmBZhFOJgTC8TBogQAArgqco4muCZOkOMJtgmYpIjYKg7GKE4uCUK4AAKKg2DwI4DiCZw5k6KJ2D6D4OHiag4DwIxiiQAArAqMosnEPBPAOIhOg+DozjIJ4PGSY4iEwPAkhKLhHUUSQsnKFCnkYU9MjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaICokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEsHJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQgpDOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMhZKEwA5jC6SIyEqfh0kuD4MjAAAwcwBw0iKDwjlKVozmyChPDSThyiMDxGk6awbB6XY1iwfQInkPg0GMEAADEdRDmcVovm8ex3FkPJrH0WJ5w4UAAkcMYMHOaxmjGTxNGcao1jWbYMkcAAMk2RJ7lycxMgMdpEHMTZMnuXBM7uMAOAG1jAED8HAQ47wGjDHgPwEI+RggcGOAmAAqxDj8DoHMTY3BUi7GWPOCAKg3jIBOEIXggBAEBA")
oXMLGrid.ShowFocusRect = .f.
oXMLGrid.SelBackColor = 16777216
oXMLGrid.SelForeColor = -1
oXMLGrid.SelBackColorCollapse = 33554432
oXMLGrid.SelBackColorChild = -1
oXMLGrid.SelForeColorChild = -1
oXMLGrid.AllowDuplicateEntries = .t.
oXMLGrid.Nodes.Add("Parent 1")
var_Node = oXMLGrid.Nodes.Add("Parent 2")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		' var_Nodes.Add("Child <b>2").Value = 102
		var_Node2 = var_Nodes.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 102"

	var_Node.Expanded = .t.
	var_Node.Selected = .t.
var_Node3 = oXMLGrid.Nodes.Add("Parent 3")
	var_Nodes1 = var_Node3.Nodes
		' var_Nodes1.Add("Child <b>1").Value = 103
		var_Node4 = var_Nodes1.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node4"
		oXMLGrid.TemplateDef = var_Node4
		oXMLGrid.Template = "var_Node4.Value = 103"

		' var_Nodes1.Add("Child <b>2").Value = 104
		var_Node5 = var_Nodes1.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node5"
		oXMLGrid.TemplateDef = var_Node5
		oXMLGrid.Template = "var_Node5.Value = 104"

oXMLGrid.Nodes.Add("Parent 4")
oXMLGrid.EndUpdate()
oXMLGrid.Template = "LevelWidth(0) = 96" // oXMLGrid.LevelWidth(0) = 96

38
Is it possible to assing a picture to a node (method 2)

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Node3 as P
Dim var_Node4 as local
Dim var_Node5 as local
Dim var_Nodes as P
Dim var_Nodes1 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.Template = "HTMLPicture(`pic1`) = `c:\exontrol\images\zipdisk.gif`" // oXMLGrid.HTMLPicture("pic1") = "c:\exontrol\images\zipdisk.gif"
oXMLGrid.AlignChildContent = .t.
oXMLGrid.AllowDuplicateEntries = .t.
oXMLGrid.SelBackMode = 1
oXMLGrid.Nodes.Add("Parent 1")
var_Node = oXMLGrid.Nodes.Add("Parent 2")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		' var_Nodes.Add("Child <b>2").Value = 102
		var_Node2 = var_Nodes.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 102"

	' var_Node.BackgroundExt(-1) = "left[18],client[text=`<img>pic1</img>`,align=0x20]"
	oXMLGrid.TemplateDef = "dim var_Node"
	oXMLGrid.TemplateDef = var_Node
	oXMLGrid.Template = "var_Node.BackgroundExt(-1) = `left[18],client[text=``<img>pic1</img>``,align=0x20]`"

	var_Node.Expanded = .t.
var_Node3 = oXMLGrid.Nodes.Add("Parent 3")
	var_Nodes1 = var_Node3.Nodes
		' var_Nodes1.Add("Child <b>1").Value = 103
		var_Node4 = var_Nodes1.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node4"
		oXMLGrid.TemplateDef = var_Node4
		oXMLGrid.Template = "var_Node4.Value = 103"

		' var_Nodes1.Add("Child <b>2").Value = 104
		var_Node5 = var_Nodes1.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node5"
		oXMLGrid.TemplateDef = var_Node5
		oXMLGrid.Template = "var_Node5.Value = 104"

	' var_Node3.BackgroundExt(-1) = "left[18],client[text=`<img>pic1</img>`,align=0x20]"
	oXMLGrid.TemplateDef = "dim var_Node3"
	oXMLGrid.TemplateDef = var_Node3
	oXMLGrid.Template = "var_Node3.BackgroundExt(-1) = `left[18],client[text=``<img>pic1</img>``,align=0x20]`"

	' var_Node3.BackgroundExt(0) = "right[4],client[text=`<img>pic1:19</img>`,align=0x12]"
	oXMLGrid.TemplateDef = "dim var_Node3"
	oXMLGrid.TemplateDef = var_Node3
	oXMLGrid.Template = "var_Node3.BackgroundExt(0) = `right[4],client[text=``<img>pic1:19</img>``,align=0x12]`"

oXMLGrid.Nodes.Add("Parent 4")
oXMLGrid.EndUpdate()
oXMLGrid.Template = "LevelWidth(0) = 96" // oXMLGrid.LevelWidth(0) = 96

37
Is it possible to assing a picture to a node (method 1)

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Node3 as local
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.Template = "HTMLPicture(`pic1`) = `c:\exontrol\images\zipdisk.gif`" // oXMLGrid.HTMLPicture("pic1") = "c:\exontrol\images\zipdisk.gif"
oXMLGrid.AlignChildContent = .t.
oXMLGrid.AllowDuplicateEntries = .t.
oXMLGrid.SelBackMode = 1
oXMLGrid.Nodes.Add("Parent 1")
var_Node = oXMLGrid.Nodes.Add("Parent 2")
	var_Node.Picture = oXMLGrid.HTMLPicture("pic1")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		' var_Nodes.Add("Child <b>2").Value = 102
		var_Node2 = var_Nodes.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 102"

		' var_Nodes.Add("Child <b>3").Value = 103
		var_Node3 = var_Nodes.Add("Child <b>3")
		oXMLGrid.TemplateDef = "dim var_Node3"
		oXMLGrid.TemplateDef = var_Node3
		oXMLGrid.Template = "var_Node3.Value = 103"

	var_Node.Expanded = .t.
oXMLGrid.Nodes.Add("Parent 3")
oXMLGrid.EndUpdate()

36
I get "The key already exists" when adding a new node. What can I do ( method 2 )
Dim oXMLGrid as P
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
var_Nodes = oXMLGrid.Nodes
	var_Nodes.Add("Item",,"Key1")
	var_Nodes.Add("Item",,"Key2")
	var_Nodes.Add("Item",,"Key3")
oXMLGrid.EndUpdate()

35
I get "The key already exists" when adding a new node. What can I do ( method 1 )
Dim oXMLGrid as P
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.AllowDuplicateEntries = .t.
var_Nodes = oXMLGrid.Nodes
	var_Nodes.Add("Item")
	var_Nodes.Add("Item")
	var_Nodes.Add("Item")
oXMLGrid.EndUpdate()

34
How can I mark the node only, without its child

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.AlignChildContent = .t.
oXMLGrid.AllowDuplicateEntries = .t.
oXMLGrid.SelBackMode = 1
oXMLGrid.Nodes.Add("Parent 1")
var_Node = oXMLGrid.Nodes.Add("Parent 2")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		' var_Nodes.Add("Child <b>2").Value = 102
		var_Node2 = var_Nodes.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 102"

	' var_Node.BackgroundExt(-1) = "top[20,frame=RGB(0,0,0),framethick]"
	oXMLGrid.TemplateDef = "dim var_Node"
	oXMLGrid.TemplateDef = var_Node
	oXMLGrid.Template = "var_Node.BackgroundExt(-1) = `top[20,frame=RGB(0,0,0),framethick]`"

	' var_Node.BackgroundExt(0) = var_Node.BackgroundExt(-1)
	oXMLGrid.TemplateDef = "dim var_Node"
	oXMLGrid.TemplateDef = var_Node
	oXMLGrid.Template = "var_Node.BackgroundExt(0) = BackgroundExt(-1)"

	var_Node.Expanded = .t.
oXMLGrid.Nodes.Add("Parent 3")
oXMLGrid.EndUpdate()

33
How can I mark the entire node

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.AlignChildContent = .t.
oXMLGrid.AllowDuplicateEntries = .t.
oXMLGrid.SelBackMode = 1
oXMLGrid.Nodes.Add("Parent 1")
var_Node = oXMLGrid.Nodes.Add("Parent 2")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		' var_Nodes.Add("Child <b>2").Value = 102
		var_Node2 = var_Nodes.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 102"

	' var_Node.BackgroundExt(-1) = "[frame=RGB(0,0,0),framethick]"
	oXMLGrid.TemplateDef = "dim var_Node"
	oXMLGrid.TemplateDef = var_Node
	oXMLGrid.Template = "var_Node.BackgroundExt(-1) = `[frame=RGB(0,0,0),framethick]`"

	' var_Node.BackgroundExt(0) = var_Node.BackgroundExt(-1)
	oXMLGrid.TemplateDef = "dim var_Node"
	oXMLGrid.TemplateDef = var_Node
	oXMLGrid.Template = "var_Node.BackgroundExt(0) = BackgroundExt(-1)"

	var_Node.Expanded = .t.
oXMLGrid.Nodes.Add("Parent 3")
oXMLGrid.EndUpdate()

32
How can I specify aditional information for a node, when it is expanded

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as P
Dim var_Node2 as local
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.AlignChildContent = .t.
oXMLGrid.SelBackMode = 1
var_Node = oXMLGrid.Nodes.Add("Parent")
	var_Nodes = var_Node.Nodes
		var_Node1 = var_Nodes.Add("Child <b>1")
			var_Node1.Value = 100
			' var_Node1.BackgroundExt(0) = "top[2],bottom[2],left[2],right[2],client[pattern=6,frame]"
			oXMLGrid.TemplateDef = "dim var_Node1"
			oXMLGrid.TemplateDef = var_Node1
			oXMLGrid.Template = "var_Node1.BackgroundExt(0) = `top[2],bottom[2],left[2],right[2],client[pattern=6,frame]`"

		' var_Nodes.Add("Child <b>2").Value = 102
		var_Node2 = var_Nodes.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 102"

	' var_Node.BackgroundExt(-1) = "top[4],bottom[4],left[17],right[4],client[text=`<font ;6><fgcolor A0A0A0>Count: 2`,align=0x20]"
	oXMLGrid.TemplateDef = "dim var_Node"
	oXMLGrid.TemplateDef = var_Node
	oXMLGrid.Template = "var_Node.BackgroundExt(-1) = `top[4],bottom[4],left[17],right[4],client[text=``<font ;6><fgcolor A0A0A0>Count: 2``,align=0x20]`"

	' var_Node.BackgroundExt(0) = "top[4],bottom[4],left[4],right[4],client[text=`<font ;6><fgcolor A0A0A0>Count: 2`,align=0x02]"
	oXMLGrid.TemplateDef = "dim var_Node"
	oXMLGrid.TemplateDef = var_Node
	oXMLGrid.Template = "var_Node.BackgroundExt(0) = `top[4],bottom[4],left[4],right[4],client[text=``<font ;6><fgcolor A0A0A0>Count: 2``,align=0x02]`"

	var_Node.Expanded = .t.
oXMLGrid.ResizeToFit(0)
oXMLGrid.EndUpdate()

31
Is it possible to show aditional information for a node

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.AlignChildContent = .t.
oXMLGrid.SelBackMode = 1
var_Node = oXMLGrid.Nodes.Add("Parent")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		' var_Nodes.Add("Child <b>2").Value = 102
		var_Node2 = var_Nodes.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 102"

	' var_Node.BackgroundExt(-1) = "top[4],bottom[4],left[4],right[4],client[text=`<font ;6><fgcolor A0A0A0>Count: 2`,align=0x02]"
	oXMLGrid.TemplateDef = "dim var_Node"
	oXMLGrid.TemplateDef = var_Node
	oXMLGrid.Template = "var_Node.BackgroundExt(-1) = `top[4],bottom[4],left[4],right[4],client[text=``<font ;6><fgcolor A0A0A0>Count: 2``,align=0x02]`"

	' var_Node.BackgroundExt(0) = var_Node.BackgroundExt(-1)
	oXMLGrid.TemplateDef = "dim var_Node"
	oXMLGrid.TemplateDef = var_Node
	oXMLGrid.Template = "var_Node.BackgroundExt(0) = BackgroundExt(-1)"

	var_Node.Expanded = .t.
oXMLGrid.ResizeToFit(0)
oXMLGrid.EndUpdate()

30
How can I hide the expanding bars under each parent node (method 2)

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as P
Dim var_Node3 as local
Dim var_Node4 as P
Dim var_Node5 as local
Dim var_Node6 as local
Dim var_Nodes as P
Dim var_Nodes1 as P
Dim var_Nodes2 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.Template = "Background(0) = -1" // oXMLGrid.Background(0) = -1
oXMLGrid.Template = "Background(1) = -1" // oXMLGrid.Background(1) = -1
oXMLGrid.AlignChildContent = .t.
var_Node = oXMLGrid.Nodes.Add("Parent")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		var_Node2 = var_Nodes.Add("Child <b>2")
			var_Nodes1 = var_Node2.Nodes
				' var_Nodes1.Add("Sub Child <b>2.1").Value = 101
				var_Node3 = var_Nodes1.Add("Sub Child <b>2.1")
				oXMLGrid.TemplateDef = "dim var_Node3"
				oXMLGrid.TemplateDef = var_Node3
				oXMLGrid.Template = "var_Node3.Value = 101"

				var_Node4 = var_Nodes1.Add("Sub Child <b>2.2")
					var_Nodes2 = var_Node4.Nodes
						' var_Nodes2.Add("Sub Child <b>2.1.1").Value = 101
						var_Node5 = var_Nodes2.Add("Sub Child <b>2.1.1")
						oXMLGrid.TemplateDef = "dim var_Node5"
						oXMLGrid.TemplateDef = var_Node5
						oXMLGrid.Template = "var_Node5.Value = 101"

						' var_Nodes2.Add("Sub Child <b>2.2.2").Value = 102
						var_Node6 = var_Nodes2.Add("Sub Child <b>2.2.2")
						oXMLGrid.TemplateDef = "dim var_Node6"
						oXMLGrid.TemplateDef = var_Node6
						oXMLGrid.Template = "var_Node6.Value = 102"

					var_Node4.Expanded = .f.
			var_Node2.Expanded = .t.
	var_Node.Selected = .t.
	var_Node.Expanded = .t.
oXMLGrid.Template = "LevelWidth(0) = 64" // oXMLGrid.LevelWidth(0) = 64
oXMLGrid.Template = "LevelWidth(1) = 96" // oXMLGrid.LevelWidth(1) = 96
oXMLGrid.Template = "LevelWidth(2) = 96" // oXMLGrid.LevelWidth(2) = 96
oXMLGrid.EndUpdate()

29
How can I align the child nodes

Dim oXMLGrid as P
Dim var_Node as local
Dim var_Node1 as P
Dim var_Node2 as local
Dim var_Node3 as local
Dim var_Node4 as P
Dim var_Node5 as local
Dim var_Node6 as local
Dim var_Nodes as P
Dim var_Nodes1 as P
Dim var_Nodes2 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.AlignChildContent = .t.
var_Nodes = oXMLGrid.Nodes
	' var_Nodes.Add("Parent A").Value = 100
	var_Node = var_Nodes.Add("Parent A")
	oXMLGrid.TemplateDef = "dim var_Node"
	oXMLGrid.TemplateDef = var_Node
	oXMLGrid.Template = "var_Node.Value = 100"

	var_Node1 = var_Nodes.Add("Parent B")
		var_Nodes1 = var_Node1.Nodes
			' var_Nodes1.Add("Child<font ;6><off -4><b>1").Value = 101
			var_Node2 = var_Nodes1.Add("Child<font ;6><off -4><b>1")
			oXMLGrid.TemplateDef = "dim var_Node2"
			oXMLGrid.TemplateDef = var_Node2
			oXMLGrid.Template = "var_Node2.Value = 101"

			' var_Nodes1.Add("Child<font ;6><off -4><b>2").Value = 102
			var_Node3 = var_Nodes1.Add("Child<font ;6><off -4><b>2")
			oXMLGrid.TemplateDef = "dim var_Node3"
			oXMLGrid.TemplateDef = var_Node3
			oXMLGrid.Template = "var_Node3.Value = 102"

			var_Node4 = var_Nodes1.Add("Child<font ;6><off -4><b>3")
				var_Nodes2 = var_Node4.Nodes
					' var_Nodes2.Add("Node<font ;6><off -4><b>1").Value = 103
					var_Node5 = var_Nodes2.Add("Node<font ;6><off -4><b>1")
					oXMLGrid.TemplateDef = "dim var_Node5"
					oXMLGrid.TemplateDef = var_Node5
					oXMLGrid.Template = "var_Node5.Value = 103"

					' var_Nodes2.Add("Node<font ;6><off -4><b>2").Value = 104
					var_Node6 = var_Nodes2.Add("Node<font ;6><off -4><b>2")
					oXMLGrid.TemplateDef = "dim var_Node6"
					oXMLGrid.TemplateDef = var_Node6
					oXMLGrid.Template = "var_Node6.Value = 104"

		var_Node1.Expanded = .t.
		var_Node1.Selected = .t.

28
How do I change the control's visual appearance using the UI Visual Designer
Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Node3 as P
Dim var_Node4 as local
Dim var_Node5 as local
Dim var_Nodes as P
Dim var_Nodes1 as P
Dim var_Nodes2 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.AllowDuplicateEntries = .t.
oXMLGrid.ShowFocusRect = .f.
oXMLGrid.GridLinesColor = 8421504
var_Nodes = oXMLGrid.Nodes
	var_Node = var_Nodes.Add("Parent A")
		var_Nodes1 = var_Node.Nodes
			' var_Nodes1.Add("Child<font ;6><off -4><b>1").Value = 100
			var_Node1 = var_Nodes1.Add("Child<font ;6><off -4><b>1")
			oXMLGrid.TemplateDef = "dim var_Node1"
			oXMLGrid.TemplateDef = var_Node1
			oXMLGrid.Template = "var_Node1.Value = 100"

			' var_Nodes1.Add("Child<font ;6><off -4><b>2").Value = 101
			var_Node2 = var_Nodes1.Add("Child<font ;6><off -4><b>2")
			oXMLGrid.TemplateDef = "dim var_Node2"
			oXMLGrid.TemplateDef = var_Node2
			oXMLGrid.Template = "var_Node2.Value = 101"

			var_Node3 = var_Nodes1.Add("Child<font ;6><off -4><b>3")
				var_Nodes2 = var_Node3.Nodes
					' var_Nodes2.Add("Node<font ;6><off -4><b>1").Value = 102
					var_Node4 = var_Nodes2.Add("Node<font ;6><off -4><b>1")
					oXMLGrid.TemplateDef = "dim var_Node4"
					oXMLGrid.TemplateDef = var_Node4
					oXMLGrid.Template = "var_Node4.Value = 102"

					' var_Nodes2.Add("Node<font ;6><off -4><b>2").Value = 103
					var_Node5 = var_Nodes2.Add("Node<font ;6><off -4><b>2")
					oXMLGrid.TemplateDef = "dim var_Node5"
					oXMLGrid.TemplateDef = var_Node5
					oXMLGrid.Template = "var_Node5.Value = 103"

		var_Node.Expanded = .t.
		var_Node.Selected = .t.
	var_Nodes.Add("Parent B").Nodes.Add(1)
oXMLGrid.Template = "LevelWidth(0) = 96" // oXMLGrid.LevelWidth(0) = 96
oXMLGrid.VisualDesign = "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"
oXMLGrid.EndUpdate()

27
How do I specify to search for name of the nodes only, when the user filters the control

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Node3 as local
Dim var_Node4 as local
Dim var_Nodes as P
Dim var_Nodes1 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.FilterBarPromptVisible = -1
var_Node = oXMLGrid.Nodes.Add("Parent")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child<font ;6><off -4><b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child<font ;6><off -4><b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		' var_Nodes.Add("Child<font ;6><off -4><b>2").Value = 101
		var_Node2 = var_Nodes.Add("Child<font ;6><off -4><b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 101"

		var_Nodes1 = var_Nodes.Add("Child<font ;6><off -4><b>3").Nodes
			' var_Nodes1.Add("Node<font ;6><off -4><b>1").Value = 102
			var_Node3 = var_Nodes1.Add("Node<font ;6><off -4><b>1")
			oXMLGrid.TemplateDef = "dim var_Node3"
			oXMLGrid.TemplateDef = var_Node3
			oXMLGrid.Template = "var_Node3.Value = 102"

			' var_Nodes1.Add("Node<font ;6><off -4><b>2").Value = 103
			var_Node4 = var_Nodes1.Add("Node<font ;6><off -4><b>2")
			oXMLGrid.TemplateDef = "dim var_Node4"
			oXMLGrid.TemplateDef = var_Node4
			oXMLGrid.Template = "var_Node4.Value = 103"

	var_Node.Expanded = .t.
oXMLGrid.AutoSearch = 1
oXMLGrid.FilterBarPromptType = 35 'exFilterPromptApplyOnName + exFilterPromptStartWith
oXMLGrid.FilterBarPromptPattern = "No"
oXMLGrid.EndUpdate()

26
Is it possible to include child-nodes, when do filtering

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Node3 as local
Dim var_Node4 as local
Dim var_Nodes as P
Dim var_Nodes1 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.FilterBarPromptVisible = -1
oXMLGrid.HideSelection = 1
var_Node = oXMLGrid.Nodes.Add("Parent")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child<font ;6><off -4><b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child<font ;6><off -4><b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		' var_Nodes.Add("Child<font ;6><off -4><b>2").Value = 101
		var_Node2 = var_Nodes.Add("Child<font ;6><off -4><b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 101"

		var_Nodes1 = var_Nodes.Add("Child<font ;6><off -4><b>3").Nodes
			' var_Nodes1.Add("Node<font ;6><off -4><b>1").Value = 102
			var_Node3 = var_Nodes1.Add("Node<font ;6><off -4><b>1")
			oXMLGrid.TemplateDef = "dim var_Node3"
			oXMLGrid.TemplateDef = var_Node3
			oXMLGrid.Template = "var_Node3.Value = 102"

			' var_Nodes1.Add("Node<font ;6><off -4><b>2").Value = 103
			var_Node4 = var_Nodes1.Add("Node<font ;6><off -4><b>2")
			oXMLGrid.TemplateDef = "dim var_Node4"
			oXMLGrid.TemplateDef = var_Node4
			oXMLGrid.Template = "var_Node4.Value = 103"

	var_Node.Expanded = .t.
oXMLGrid.AutoSearch = 3
oXMLGrid.FilterBarPromptType = 226 'exFilterPromptIncludeChild + exFilterPromptApplyOnValue + exFilterPromptApplyOnName + exFilterPromptContainsAny
oXMLGrid.FilterBarPromptPattern = "Child3"
oXMLGrid.EndUpdate()

25
How can I change the control's filtering so it searches for Contains rather than Start

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Node3 as local
Dim var_Node4 as local
Dim var_Nodes as P
Dim var_Nodes1 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.FilterBarPromptVisible = -1
var_Node = oXMLGrid.Nodes.Add("Parent")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child<font ;6><off -4><b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child<font ;6><off -4><b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		' var_Nodes.Add("Child<font ;6><off -4><b>2").Value = 101
		var_Node2 = var_Nodes.Add("Child<font ;6><off -4><b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 101"

		var_Nodes1 = var_Nodes.Add("Child<font ;6><off -4><b>3").Nodes
			' var_Nodes1.Add("Node<font ;6><off -4><b>1").Value = 102
			var_Node3 = var_Nodes1.Add("Node<font ;6><off -4><b>1")
			oXMLGrid.TemplateDef = "dim var_Node3"
			oXMLGrid.TemplateDef = var_Node3
			oXMLGrid.Template = "var_Node3.Value = 102"

			' var_Nodes1.Add("Node<font ;6><off -4><b>2").Value = 103
			var_Node4 = var_Nodes1.Add("Node<font ;6><off -4><b>2")
			oXMLGrid.TemplateDef = "dim var_Node4"
			oXMLGrid.TemplateDef = var_Node4
			oXMLGrid.Template = "var_Node4.Value = 103"

	var_Node.Expanded = .t.
oXMLGrid.AutoSearch = 3
oXMLGrid.FilterBarPromptType = 98 'exFilterPromptApplyOnValue + exFilterPromptApplyOnName + exFilterPromptContainsAny
oXMLGrid.FilterBarPromptPattern = "Child3"
oXMLGrid.EndUpdate()

24
How do I enable the control's filtering support

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Node3 as local
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.FilterBarPromptVisible = -1
oXMLGrid.HideSelection = 1
var_Node = oXMLGrid.Nodes.Add("Parent")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		' var_Nodes.Add("Child <b>2").Value = 101
		var_Node2 = var_Nodes.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 101"

		' var_Nodes.Add("Child <b>3").Value = 102
		var_Node3 = var_Nodes.Add("Child <b>3")
		oXMLGrid.TemplateDef = "dim var_Node3"
		oXMLGrid.TemplateDef = var_Node3
		oXMLGrid.Template = "var_Node3.Value = 102"

	var_Node.Expanded = .t.
oXMLGrid.EndUpdate()

23
How can I hide the expanding bars under each parent node (method 1)

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as P
Dim var_Node3 as local
Dim var_Node4 as P
Dim var_Node5 as local
Dim var_Node6 as local
Dim var_Nodes as P
Dim var_Nodes1 as P
Dim var_Nodes2 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.VisualAppearance.Add(1,"gBFLBCJwBAEHhEJAAChABDEMACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXIUBxAAqXZZFUaKAgOMJDTLBAzUTCUKx7HynQACCCaTpGVo8hYhEoDJKMdB1HIZIwyBBcqBNWTFdLAAJFKTdKAMIyiGp4DbudjyXg6V5OTblez9P7AMBvS6nKrhcp2PrhTSYWr+Gp5R7IMhyLI8Uw/DS/Yq1GDYIiuOoIQhCUD0LQ9EyXJqnaJnaC5aiuCT7VRjWDYFgFdTpQC8bZuGz7Trmd59XTadhYHSsAyNRDCL6tayLDxSZabZ5aOa6HoOS4kjGY4vnQeAEBaCYOkQYYslYCpvA+D5FmSc55j0PhfF8eYHlwQZ2nQTImDsFRaioVB9j8Hx/k+c53n4fogAeTJFHuXY3HCTAygyAociMKBKEKBIeCiCZyHYEAnCEOBUh+BQhBgNIegKCgYBySAgh2SAUgINAMmMNIgCcCYjn4KoKmKSI2C6CpiHIagkDMYgCAoIg1A0IxEhsJgJFiPg+g+Y4yFYOA0GMWIIloNhNGIaIXCUI5CE4SwkEkchOFCFIlBkThQCUCQZDYSglCQcxaEUX5IBmBJhDeDZZDYOwlgmQhghaGZmkmKhnhoZo5ioTYYk2WYEgEYAnGOGJlDkCQyECDqfCkNoCCUSQ6A6BYhCgCZ0g6HoOEmWR9GFYw4m0OwIlIJIHCRc4shGJhpjoaocieaZiC6GAimkUgehIOwnGYEYGGiah6jaE4rg6SpCjKK5rEOMYjGGGIChKOgglmdoij6L5aEYfo6CkGIEAQgIA==")
oXMLGrid.VisualAppearance.Add(2,"gBFLBCJwBAEHhEJAAChABC0MACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXIUBxAAqXZZFUaKAgOMJDTLBAzUTCUKx7HynQACCCaTpGVo8hYhEoDJKMdB1HIZIwyBBcqBNWTFdLAAJFKTdKAMIyiGp4DbudjyXg6V5OTblez9P7AMBvS6nKrhcp2PrhTSYWr+Gp5R7IMhyLI8Uw/DS/Yq1GDYIiuOoIQhCUD0LQ9EyXJqnaJnaC5aiuCT7VRjWDYFgFdTpQC8bZuGz7Trmd59XTadhYHSsAyNRDCL6tayLDxSZabZ5aOa6HoOS4kjGY4vnQeAEBaCYOkQYYslYCpvA+D5FmQf56D0PhPF+G5Fl4YZ3BAfY9BMKYOkUVoqhUH4PleZ53mkehfjgBZ9H4XxTBWcR2l2QwwkoMgKHKDIhCkCgSHiIgnkmWBMhwf5egglInGEAh6A0KBgiMIICHdLIIlAM4MlKAIcCaIYIjYLoLGKIhqCcMxiR8JQ1A0IxEhsJgJFiPg+guI4yFYOA0GMWIUloNhNGIaIXCUI5CE4SwkEkchMhGCxlBkQIUCQZJZCiFIRk0aQVH8IBmAOBJeDcZJYmyFgnAmAhaGaCxmGmIhqhoZJZgiXYYAgFgCHQOYOFOEITCQCJpCyEoTVUNoACUZJiFCEoekiaZgmSHQXlYEh0DuDpTjCDQiEgchAg0IpJBoXoZiYKYqHaHAimkYguhMIZpAOMh0GEGBmg6JYqmkGowmyK4rAqNoyDsGg2BmCApCuAgNh8agrkqdYkGea4ChGCBAEAgI")
oXMLGrid.VisualAppearance.Add(3,"gBFLBCJwBAEHhEJAAChABa8GACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIzkKJpAAiCRQGiYZyHKcxMYgQrAZBEbKMLwrAYUIRCCaofAAGIaRDIcZPXQjZSMdSkHRpKi6Mo2TpPUpSDpUM6VCL3KhqKxXeq1cp2XpfWBYNhVbTafyyaiqKiSWy0EQRBSDXBcNxXHalazhNpCbTSWoqLrhRzDMCwC6rUwCeYJQzCcLxLCcMwjA5/MDeFLXCwjBJ+W5aFhzBYsbx1NKcZ7nWgaAqOKp/OKnECuBh2EYNMywK5rew7BqTf5tW7ZNx2TYNMYPKiDajcDJMOwqWpUVDjOQ4fidXzfSbPcrxfBsLp/FOKhmDKGQKHUGoFEiIRPCiE5pl8ChzhuNpyHgU49mSdxtEOWBkCCNRdGQExBhyTRQCcExeG+X5zneeAmh8Uw1nEIIfDMUJSDQSYyGCFR/GCR5yAkJRgGMRgDHyTYjGSVgmgkchSAoJJhhIRIXCSSQXm4H4HgkQhGBuBgJEgVJWgSVJSAYLg4E2Yx2BuAhJGIcIYCWIxHm4NINiOCJeBuDANliOIBFOJAjhiZQ5AkMhAg6BhJCgbgbH6ZJiFYHAlAkKQkg6EYOEkCRLFTQw4m0OwIlIJIHCRVAshGGRmHmGhohqZoiC4ZAimYEgeF4OwkCUSRUFwZw5mYX4eg6SZyH6HpoAOMRxFUFRihKBgglaVZagqIpXCWNoGCkFRkAQgI")
oXMLGrid.HideSelection = 1
oXMLGrid.ExpandButtons = 3
oXMLGrid.Template = "ExpandButtonsCustom(True) = 16777216" // oXMLGrid.ExpandButtonsCustom(.t.) = 16777216
oXMLGrid.Template = "ExpandButtonsCustom(False) = 33554432" // oXMLGrid.ExpandButtonsCustom(.f.) = 33554432
oXMLGrid.Template = "Background(0) = 50331648" // oXMLGrid.Background(0) = 50331648
oXMLGrid.Template = "Background(1) = 50331648" // oXMLGrid.Background(1) = 50331648
var_Node = oXMLGrid.Nodes.Add("Parent")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		var_Node2 = var_Nodes.Add("Child <b>2")
			var_Nodes1 = var_Node2.Nodes
				' var_Nodes1.Add("Sub Child <b>2.1").Value = 101
				var_Node3 = var_Nodes1.Add("Sub Child <b>2.1")
				oXMLGrid.TemplateDef = "dim var_Node3"
				oXMLGrid.TemplateDef = var_Node3
				oXMLGrid.Template = "var_Node3.Value = 101"

				var_Node4 = var_Nodes1.Add("Sub Child <b>2.2")
					var_Nodes2 = var_Node4.Nodes
						' var_Nodes2.Add("Sub Child <b>2.1.1").Value = 101
						var_Node5 = var_Nodes2.Add("Sub Child <b>2.1.1")
						oXMLGrid.TemplateDef = "dim var_Node5"
						oXMLGrid.TemplateDef = var_Node5
						oXMLGrid.Template = "var_Node5.Value = 101"

						' var_Nodes2.Add("Sub Child <b>2.2.2").Value = 102
						var_Node6 = var_Nodes2.Add("Sub Child <b>2.2.2")
						oXMLGrid.TemplateDef = "dim var_Node6"
						oXMLGrid.TemplateDef = var_Node6
						oXMLGrid.Template = "var_Node6.Value = 102"

					var_Node4.Expanded = .f.
			var_Node2.Expanded = .t.
	var_Node.Selected = .t.
	var_Node.Expanded = .t.
oXMLGrid.Template = "LevelWidth(0) = 64" // oXMLGrid.LevelWidth(0) = 64
oXMLGrid.Template = "LevelWidth(1) = 96" // oXMLGrid.LevelWidth(1) = 96
oXMLGrid.Template = "LevelWidth(2) = 96" // oXMLGrid.LevelWidth(2) = 96
oXMLGrid.EndUpdate()

22
How can I change the visual appearance for expand/collapse buttons

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as P
Dim var_Node3 as local
Dim var_Node4 as P
Dim var_Node5 as local
Dim var_Node6 as local
Dim var_Nodes as P
Dim var_Nodes1 as P
Dim var_Nodes2 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.VisualAppearance.Add(1,"gBFLBCJwBAEHhEJAAChABDEMACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXIUBxAAqXZZFUaKAgOMJDTLBAzUTCUKx7HynQACCCaTpGVo8hYhEoDJKMdB1HIZIwyBBcqBNWTFdLAAJFKTdKAMIyiGp4DbudjyXg6V5OTblez9P7AMBvS6nKrhcp2PrhTSYWr+Gp5R7IMhyLI8Uw/DS/Yq1GDYIiuOoIQhCUD0LQ9EyXJqnaJnaC5aiuCT7VRjWDYFgFdTpQC8bZuGz7Trmd59XTadhYHSsAyNRDCL6tayLDxSZabZ5aOa6HoOS4kjGY4vnQeAEBaCYOkQYYslYCpvA+D5FmSc55j0PhfF8eYHlwQZ2nQTImDsFRaioVB9j8Hx/k+c53n4fogAeTJFHuXY3HCTAygyAociMKBKEKBIeCiCZyHYEAnCEOBUh+BQhBgNIegKCgYBySAgh2SAUgINAMmMNIgCcCYjn4KoKmKSI2C6CpiHIagkDMYgCAoIg1A0IxEhsJgJFiPg+g+Y4yFYOA0GMWIIloNhNGIaIXCUI5CE4SwkEkchOFCFIlBkThQCUCQZDYSglCQcxaEUX5IBmBJhDeDZZDYOwlgmQhghaGZmkmKhnhoZo5ioTYYk2WYEgEYAnGOGJlDkCQyECDqfCkNoCCUSQ6A6BYhCgCZ0g6HoOEmWR9GFYw4m0OwIlIJIHCRc4shGJhpjoaocieaZiC6GAimkUgehIOwnGYEYGGiah6jaE4rg6SpCjKK5rEOMYjGGGIChKOgglmdoij6L5aEYfo6CkGIEAQgIA==")
oXMLGrid.VisualAppearance.Add(2,"gBFLBCJwBAEHhEJAAChABC0MACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXIUBxAAqXZZFUaKAgOMJDTLBAzUTCUKx7HynQACCCaTpGVo8hYhEoDJKMdB1HIZIwyBBcqBNWTFdLAAJFKTdKAMIyiGp4DbudjyXg6V5OTblez9P7AMBvS6nKrhcp2PrhTSYWr+Gp5R7IMhyLI8Uw/DS/Yq1GDYIiuOoIQhCUD0LQ9EyXJqnaJnaC5aiuCT7VRjWDYFgFdTpQC8bZuGz7Trmd59XTadhYHSsAyNRDCL6tayLDxSZabZ5aOa6HoOS4kjGY4vnQeAEBaCYOkQYYslYCpvA+D5FmQf56D0PhPF+G5Fl4YZ3BAfY9BMKYOkUVoqhUH4PleZ53mkehfjgBZ9H4XxTBWcR2l2QwwkoMgKHKDIhCkCgSHiIgnkmWBMhwf5egglInGEAh6A0KBgiMIICHdLIIlAM4MlKAIcCaIYIjYLoLGKIhqCcMxiR8JQ1A0IxEhsJgJFiPg+guI4yFYOA0GMWIUloNhNGIaIXCUI5CE4SwkEkchMhGCxlBkQIUCQZJZCiFIRk0aQVH8IBmAOBJeDcZJYmyFgnAmAhaGaCxmGmIhqhoZJZgiXYYAgFgCHQOYOFOEITCQCJpCyEoTVUNoACUZJiFCEoekiaZgmSHQXlYEh0DuDpTjCDQiEgchAg0IpJBoXoZiYKYqHaHAimkYguhMIZpAOMh0GEGBmg6JYqmkGowmyK4rAqNoyDsGg2BmCApCuAgNh8agrkqdYkGea4ChGCBAEAgI")
oXMLGrid.HideSelection = 1
oXMLGrid.ExpandButtons = 3
oXMLGrid.Template = "ExpandButtonsCustom(True) = 16777216" // oXMLGrid.ExpandButtonsCustom(.t.) = 16777216
oXMLGrid.Template = "ExpandButtonsCustom(False) = 33554432" // oXMLGrid.ExpandButtonsCustom(.f.) = 33554432
var_Node = oXMLGrid.Nodes.Add("Parent")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		var_Node2 = var_Nodes.Add("Child <b>2")
			var_Nodes1 = var_Node2.Nodes
				' var_Nodes1.Add("Sub Child <b>2.1").Value = 101
				var_Node3 = var_Nodes1.Add("Sub Child <b>2.1")
				oXMLGrid.TemplateDef = "dim var_Node3"
				oXMLGrid.TemplateDef = var_Node3
				oXMLGrid.Template = "var_Node3.Value = 101"

				var_Node4 = var_Nodes1.Add("Sub Child <b>2.2")
					var_Nodes2 = var_Node4.Nodes
						' var_Nodes2.Add("Sub Child <b>2.1.1").Value = 101
						var_Node5 = var_Nodes2.Add("Sub Child <b>2.1.1")
						oXMLGrid.TemplateDef = "dim var_Node5"
						oXMLGrid.TemplateDef = var_Node5
						oXMLGrid.Template = "var_Node5.Value = 101"

						' var_Nodes2.Add("Sub Child <b>2.2.2").Value = 102
						var_Node6 = var_Nodes2.Add("Sub Child <b>2.2.2")
						oXMLGrid.TemplateDef = "dim var_Node6"
						oXMLGrid.TemplateDef = var_Node6
						oXMLGrid.Template = "var_Node6.Value = 102"

					var_Node4.Expanded = .f.
			var_Node2.Expanded = .t.
	var_Node.Selected = .t.
	var_Node.Expanded = .t.
oXMLGrid.Template = "LevelWidth(0) = 64" // oXMLGrid.LevelWidth(0) = 64
oXMLGrid.Template = "LevelWidth(1) = 96" // oXMLGrid.LevelWidth(1) = 96
oXMLGrid.Template = "LevelWidth(2) = 96" // oXMLGrid.LevelWidth(2) = 96
oXMLGrid.EndUpdate()

21
Does your control support transparent selection

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as P
Dim var_Node3 as local
Dim var_Node4 as P
Dim var_Node5 as local
Dim var_Node6 as local
Dim var_Nodes as P
Dim var_Nodes1 as P
Dim var_Nodes2 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.SelBackMode = 1
oXMLGrid.SelBackColorChild = oXMLGrid.SelBackColor
var_Node = oXMLGrid.Nodes.Add("Parent")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		var_Node2 = var_Nodes.Add("Child <b>2")
			var_Nodes1 = var_Node2.Nodes
				' var_Nodes1.Add("Sub Child <b>2.1").Value = 101
				var_Node3 = var_Nodes1.Add("Sub Child <b>2.1")
				oXMLGrid.TemplateDef = "dim var_Node3"
				oXMLGrid.TemplateDef = var_Node3
				oXMLGrid.Template = "var_Node3.Value = 101"

				var_Node4 = var_Nodes1.Add("Sub Child <b>2.2")
					var_Nodes2 = var_Node4.Nodes
						' var_Nodes2.Add("Sub Child <b>2.1.1").Value = 101
						var_Node5 = var_Nodes2.Add("Sub Child <b>2.1.1")
						oXMLGrid.TemplateDef = "dim var_Node5"
						oXMLGrid.TemplateDef = var_Node5
						oXMLGrid.Template = "var_Node5.Value = 101"

						' var_Nodes2.Add("Sub Child <b>2.2.2").Value = 102
						var_Node6 = var_Nodes2.Add("Sub Child <b>2.2.2")
						oXMLGrid.TemplateDef = "dim var_Node6"
						oXMLGrid.TemplateDef = var_Node6
						oXMLGrid.Template = "var_Node6.Value = 102"

					var_Node4.Expanded = .t.
			var_Node2.Expanded = .t.
	var_Node.Selected = .t.
	var_Node.Expanded = .t.
oXMLGrid.Template = "LevelWidth(0) = 64" // oXMLGrid.LevelWidth(0) = 64
oXMLGrid.Template = "LevelWidth(1) = 96" // oXMLGrid.LevelWidth(1) = 96
oXMLGrid.Template = "LevelWidth(2) = 96" // oXMLGrid.LevelWidth(2) = 96
oXMLGrid.EndUpdate()

20
How can I show the selection with some transparent marker

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Node3 as P
Dim var_Node4 as local
Dim var_Node5 as local
Dim var_Nodes as P
Dim var_Nodes1 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
oXMLGrid.AllowDuplicateEntries = .t.
var_Node = oXMLGrid.Nodes.Add("Parent")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		' var_Nodes.Add("Child <b>2").Value = 101
		var_Node2 = var_Nodes.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 101"

	var_Node.Selected = .t.
	var_Node.Expanded = .t.
var_Node3 = oXMLGrid.Nodes.Add("Parent")
	var_Nodes1 = var_Node3.Nodes
		' var_Nodes1.Add("Child <b>1").Value = 100
		var_Node4 = var_Nodes1.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node4"
		oXMLGrid.TemplateDef = var_Node4
		oXMLGrid.Template = "var_Node4.Value = 100"

		' var_Nodes1.Add("Child <b>2").Value = 101
		var_Node5 = var_Nodes1.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node5"
		oXMLGrid.TemplateDef = var_Node5
		oXMLGrid.Template = "var_Node5.Value = 101"

oXMLGrid.Template = "LevelWidth(0) = 64" // oXMLGrid.LevelWidth(0) = 64
oXMLGrid.Template = "LevelWidth(1) = 96" // oXMLGrid.LevelWidth(1) = 96
oXMLGrid.Template = "LevelWidth(2) = 96" // oXMLGrid.LevelWidth(2) = 96
oXMLGrid.ShowFocusRect = .f.
oXMLGrid.VisualAppearance.Add(1,"gBFLBCJwBAEHhEJAAChABdcGACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziYBYJhGBQxAJCI4DBCIZBwGKQBjASQpUhqHYDTbIMByBIUIxMGiYIRoGAxTiAMo8RrSEZTdD8ExTAZ/XzfMAKRpOFo/ULEUw0NR8aRABiNQbkWjYDp1f5nVRaFTxYKoSxbNqIRpGCzoJrKdI1SBEMTWBAddSdBKzX7tHArLgSQJdSrLMrzDIka4cACcZxkCioXozBpZVjRMaZJC2KAbMaBQgsQALGqjAaVUJQEgZTTmHS/BLPYDsLQdDyXAqnYTkFwWZa4ATtOK5b6jK6dQgmfAAaJGWzYHpGL4QGCYZKGapMgsKaVmwYp8j2RoCCWB4VHQIQjD6FIjF2RpumyewRj6XYrjoMpdk4Pgbm4DZXmmSpRnWeJ9hiN4zAkSRCECBAkFAGhGDGUB1ByBhVGUCxAkQIQ2AsRZRFQDAoEIXoXCUIQGBSNg9BoYBNjMbJ/DGTBznyQAwCIKISCOCRigiHgqgmIhIgCfw3k2dgFn6DAihiMg1g2Yo4mINoNBCEwMkOCgPDOTgyhCZBJBYRIQTGmYOGQaQ2E6EQjhkLg2hOZRJDoURAmSSRWFqEJlHAAhZhaZgJHYX4YCWKYKFOGQljmGgohoJoYloUoambTxqgmZwZkoboWCYeZWFaHaOBDRIkCmahDhIIh5nmfoHGOKgmDmIpjGiHoIEIVQjnyXA3A+cwgkiIooloZgoiWD5zgCYIMhCFAEIC")
oXMLGrid.SelBackColor = 16777216
oXMLGrid.SelForeColor = -1
oXMLGrid.SelBackColorChild = -1
oXMLGrid.SelForeColorChild = -1
oXMLGrid.EndUpdate()

19
How can I highlight the focused/selected node only, instead highlighting its childrend collection (method 3)

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
var_Node = oXMLGrid.Nodes.Add("Parent")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		' var_Nodes.Add("Child <b>2").Value = 101
		var_Node2 = var_Nodes.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 101"

	var_Node.Selected = .t.
	var_Node.Expanded = .t.
oXMLGrid.Template = "LevelWidth(0) = 64" // oXMLGrid.LevelWidth(0) = 64
oXMLGrid.Template = "LevelWidth(1) = 96" // oXMLGrid.LevelWidth(1) = 96
oXMLGrid.Template = "LevelWidth(2) = 96" // oXMLGrid.LevelWidth(2) = 96
oXMLGrid.ShowFocusRect = .f.
oXMLGrid.VisualAppearance.Add(1,"gBFLBCJwBAEHhEJAAChABGYDg6AADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjAIoBQ4GACJBmKKodgONYYTLFYCwTJETw5FKEZTEWQBTjGOY5TbNcgUPCMex7IiVJYpOK6ThqTYfQjLUBvfTgAS4f6Laaneg4JDOUYtTjIADRWBMeSxAatK6rWr7BqOYoDUJZcQyDIcNzXAa9aLjO5wAiWPp4VJZM54FKVEzfQSrZqoDIrEgOZpBYjMdSgADFXQGDbHbhuS5IWwTBpQZhaGZQTb+mZtZ7oMI6HTuSztW7EMLAC6bJx7LoDazoGKSDo0TZRXLNYqzPIdf4OVq4YTxVi2PZGnmLJfGwOY8m2NhTAmPJcmAZBbmiDo3DuW4ZEgAQQhKAYkkYdA6hyDIjBkAIqBgQgmn0YxRFgGIjF8CRwhOB4ZAkPQdFYMRfCsYICFYCgkEkEhCA0JDeEICglgqYo0i4XQMEgZI9gaToYHSb4Hk6Y4+CGB5hlOJgbC8TBoiQAArgqco4muC5OkOMJtguYxIlYMg7GME4uC0K4AAKKg+DwJADiCZw5k6KQWEaEYOHkChADwI5izIKwKjKzQ8E8A4iFaEYOjOMgvhEZRjiIVA8CUEouE9SRJEycoWCMCJmFvUAzkYZArAACAgi0PInEkGhauKCYsmqHQPCmSAAgsSp5lCc4dg6WgUm6DkQhicw8g8OiDiwKQDk6EoNCgU40m6JZpFiUoSDyaQCokLIqAobh3iWKRogaB4MmWKhsjMLJLCAAorCyagokYIoImsM46DEOwPEoSovABZR0nSL5pFgfgfhALAqFaPw9CuUrgC2CxSlidQ9E8SoSkSEpsZXj5LFsNAAC2bZLDydYwiaW4GFOMIPGsPpcC2QACmSOQuA8a42EvYoZnKcVsAOPJwD0bpSmKagAAuO52m0PYsCmcoLkCLhLjSOwuguIAAjyQpvnkLobkOaQpC6f5CkuQAAj6BpPHwZwCkQKYzkqcQ9k8Y5cj2RejH8JpGE8eZykeSprnmcwoC+TADAAAJMEwA5jDaSoyksHh8rmDLgDBzoHDyJIPCOUpejWbQKG8PJQHMIwPE6UJrhsPpljeLJ9CieQ+DSYwQAAMR1kOZxejGb57hcYQ8mufR4nmVwMFAAJHDGDBzmsbozk8TYHHKN42G2LJHAADJNmSe5enOTIjH6Rhzk2Nke4vBMt8GAHADY5wbgUD8HEQ47wOjHHiPwMI+RigcGOAmAorgjj8EIHMTY3B0i7GePQDoBwdBvGSCcIQ6BACAIC")
oXMLGrid.SelBackColor = 16777216
oXMLGrid.SelForeColor = -1
oXMLGrid.SelBackColorChild = -1
oXMLGrid.SelForeColorChild = -1
oXMLGrid.EndUpdate()

18
How can I highlight the focused/selected node only, instead highlighting its childrend collection (method 2)

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
var_Node = oXMLGrid.Nodes.Add("Parent")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		' var_Nodes.Add("Child <b>2").Value = 101
		var_Node2 = var_Nodes.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 101"

	var_Node.Selected = .t.
	var_Node.Expanded = .t.
oXMLGrid.Template = "LevelWidth(0) = 64" // oXMLGrid.LevelWidth(0) = 64
oXMLGrid.Template = "LevelWidth(1) = 96" // oXMLGrid.LevelWidth(1) = 96
oXMLGrid.Template = "LevelWidth(2) = 96" // oXMLGrid.LevelWidth(2) = 96
oXMLGrid.VisualAppearance.Add(1,"gBFLBCJwBAEHhEJAAChABJUIQAAYAQGKIaBoAKBQAGaAoDDQMw1QwAAwjSK0EwsACEIrjKCRShyCYZRhGcTSAAUEhiGKQBgiGDhViWAwyDABEbwS78agBFyRlqyfKccx9DaAQEBA")
oXMLGrid.ShowFocusRect = .f.
oXMLGrid.SelBackColor = 27304096
oXMLGrid.SelForeColor = -1
oXMLGrid.SelBackColorChild = -1
oXMLGrid.SelForeColorChild = -1
oXMLGrid.EndUpdate()

17
How can I highlight the focused/selected node only, instead highlighting its childrend collection (method 1)

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as local
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
var_Node = oXMLGrid.Nodes.Add("Parent")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child <b>1").Value = 100
		var_Node1 = var_Nodes.Add("Child <b>1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Value = 100"

		' var_Nodes.Add("Child <b>2").Value = 101
		var_Node2 = var_Nodes.Add("Child <b>2")
		oXMLGrid.TemplateDef = "dim var_Node2"
		oXMLGrid.TemplateDef = var_Node2
		oXMLGrid.Template = "var_Node2.Value = 101"

	var_Node.Selected = .t.
	var_Node.Expanded = .t.
oXMLGrid.Template = "LevelWidth(0) = 64" // oXMLGrid.LevelWidth(0) = 64
oXMLGrid.Template = "LevelWidth(1) = 96" // oXMLGrid.LevelWidth(1) = 96
oXMLGrid.Template = "LevelWidth(2) = 96" // oXMLGrid.LevelWidth(2) = 96
oXMLGrid.HideSelection = 1
oXMLGrid.VisualAppearance.Add(1,"gBFLBCJwBAEHhEJAAChABdcGACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziYBYJhGBQxAJCI4DBCIZBwGKQBjASQpUhqHYDTbIMByBIUIxMGiYIRoGAxTiAMo8RrSEZTdD8ExTAZ/XzfMAKRpOFo/ULEUw0NR8aRABiNQbkWjYDp1f5nVRaFTxYKoSxbNqIRpGCzoJrKdI1SBEMTWBAddSdBKzX7tHArLgSQJdSrLMrzDIka4cACcZxkCioXozBpZVjRMaZJC2KAbMaBQgsQALGqjAaVUJQEgZTTmHS/BLPYDsLQdDyXAqnYTkFwWZa4ATtOK5b6jK6dQgmfAAaJGWzYHpGL4QGCYZKGapMgsKaVmwYp8j2RoCCWB4VHQIQjD6FIjF2RpumyewRj6XYrjoMpdk4Pgbm4DZXmmSpRnWeJ9hiN4zAkSRCECBAkFAGhGDGUB1ByBhVGUCxAkQIQ2AsRZRFQDAoEIXoXCUIQGBSNg9BoYBNjMbJ/DGTBznyQAwCIKISCOCRigiHgqgmIhIgCfw3k2dgFn6DAihiMg1g2Yo4mINoNBCEwMkOCgPDOTgyhCZBJBYRIQTGmYOGQaQ2E6EQjhkLg2hOZRJDoURAmSSRWFqEJlHAAhZhaZgJHYX4YCWKYKFOGQljmGgohoJoYloUoambTxqgmZwZkoboWCYeZWFaHaOBDRIkCmahDhIIh5nmfoHGOKgmDmIpjGiHoIEIVQjnyXA3A+cwgkiIooloZgoiWD5zgCYIMhCFAEIC")
oXMLGrid.Template = "Background(19) = 16777216" // oXMLGrid.Background(19) = 16777216
oXMLGrid.EndUpdate()

16
How do I enable the scrollbar-extension, as thumb to be shown outside of the control's client area

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as P
Dim var_Nodes as P
Dim var_Nodes1 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.BeginUpdate()
var_Node = oXMLGrid.Nodes.Add("Parent <font ;6><off 4>1")
	var_Nodes = var_Node.Nodes
		var_Node1 = var_Nodes.Add("Child 1")
			var_Node1.Value = "<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1"
		var_Nodes.Add("Child 2")
	var_Node.ExpandAll()
var_Nodes1 = oXMLGrid.Nodes.Add("Parent <font ;6><off 4>2").Nodes
	var_Nodes1.Add("Child 1")
	var_Nodes1.Add("Child 2")
oXMLGrid.ScrollBars = 3
oXMLGrid.Template = "ScrollPartVisible(0,65536) = True" // oXMLGrid.ScrollPartVisible(0,65536) = .t.
oXMLGrid.Template = "ScrollPartVisible(1,65536) = True" // oXMLGrid.ScrollPartVisible(1,65536) = .t.
oXMLGrid.Template = "ScrollPartVisible(2,65536) = True" // oXMLGrid.ScrollPartVisible(2 '2 + ,65536) = .t.
oXMLGrid.ScrollWidth = 4
oXMLGrid.Template = "Background(276) = 15790320" // oXMLGrid.Background(276) = 15790320
oXMLGrid.Template = "Background(260) = 8421504" // oXMLGrid.Background(260) = 8421504
oXMLGrid.ScrollHeight = 4
oXMLGrid.Template = "Background(404) = Background(276)" // oXMLGrid.Background(404) = oXMLGrid.Background(276)
oXMLGrid.Template = "Background(388) = Background(260)" // oXMLGrid.Background(388) = oXMLGrid.Background(260)
oXMLGrid.Template = "Background(511) = Background(276)" // oXMLGrid.Background(511) = oXMLGrid.Background(276)
oXMLGrid.EndUpdate()

15
Does your control support Fit-To-Page, Print and Print-Preview

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as P
Dim var_Nodes as P
Dim var_Nodes1 as P
Dim var_Print as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
var_Node = oXMLGrid.Nodes.Add("Parent <b>1")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child 1").Selected = .t.
		var_Node1 = var_Nodes.Add("Child 1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Selected = True"

		var_Nodes.Add("Child 2")
	var_Node.ExpandAll()
var_Node2 = oXMLGrid.Nodes.Add("Parent <b>2")
	var_Nodes1 = var_Node2.Nodes
		var_Nodes1.Add("Child 1")
		var_Nodes1.Add("Child 2")
var_Print = OLE.Create("Exontrol.Print")
	var_Print.Options = "FitToPage = 1x1"
	var_Print.PrintExt = oXMLGrid
	var_Print.Preview()

14
How do I print the control
Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as P
Dim var_Nodes as P
Dim var_Nodes1 as P
Dim var_Print as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
var_Node = oXMLGrid.Nodes.Add("Parent <b>1")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child 1").Selected = .t.
		var_Node1 = var_Nodes.Add("Child 1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Selected = True"

		var_Nodes.Add("Child 2")
	var_Node.ExpandAll()
var_Node2 = oXMLGrid.Nodes.Add("Parent <b>2")
	var_Nodes1 = var_Node2.Nodes
		var_Nodes1.Add("Child 1")
		var_Nodes1.Add("Child 2")
var_Print = OLE.Create("Exontrol.Print")
	var_Print.PrintExt = oXMLGrid
	var_Print.Preview()

13
How can we can customize a context menu based on the node type

' Occurs when the user releases a mouse button.
function MouseUp as v (Button  as  N,Shift  as  N,X  as  OLE::Exontrol.XMLGrid.1::OLE_XPOS_PIXELS,Y  as  OLE::Exontrol.XMLGrid.1::OLE_YPOS_PIXELS)
	Dim var_ExContextMenu as P
	oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
	? "Node:" 
	? oXMLGrid.NodeFromPoint(X,Y) 
	var_ExContextMenu = OLE.Create("Exontrol.ContextMenu")
		var_ExContextMenu.Items.ToString = "Calendar[id=20][img=0],MSChart[id=30],Record[id=40],Slider[id=50],Radio 1[id=100][typ=2][edit=],Radio 2[id=101][typ=2][edit=],Radio 3[id=102][typ=2][edit=],ComboBox[id=90]"
		? var_ExContextMenu.Select() 
end function

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
var_Node = oXMLGrid.Nodes.Add("Parent")
	var_Nodes = var_Node.Nodes
		var_Nodes.Add("Child 1")
		var_Nodes.Add("Child 2")
	var_Node.Expanded = .t.

12
How we can attach a customized editor, for example, a date-time picker dialog for a date-time attribute using eXMLGrid

' Fired the user editor is about to be opened.
function UserEditorClose as v (Object  as  P,Node  as  OLE::Exontrol.XMLGrid.1::INode)
	' Node.Value = Object.Value
	oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
end function

' Occurs when an user editor is about to be opened.
function UserEditorOpen as v (Object  as  P,Node  as  OLE::Exontrol.XMLGrid.1::INode)
	' Object.Value = Node.Value
	oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
end function

Dim oXMLGrid as P
Dim var_CalendarCombo as P
Dim var_Editor as P
Dim var_Editors as P
Dim var_Node as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.NodeHeight = 24
var_Editors = oXMLGrid.Editors
	var_Editor = var_Editors.Add("ExCalendarUserEditor",16)
		var_Editor.UserEditor("ExCalendar.CalendarCombo","")
		var_CalendarCombo = var_Editor.UserEditorObject
var_Node = oXMLGrid.Nodes.Add("Date")
	var_Node.Editor = "ExCalendarUserEditor"
	var_Node.Value = {01/01/2001}

11
How can change the visual appearance of the expand/collapse buttons

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as P
Dim var_Node2 as P
Dim var_Nodes as P
Dim var_Nodes1 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
oXMLGrid.VisualAppearance.Add(1,"c:\exontrol\images\normal.ebn")
oXMLGrid.VisualAppearance.Add(2,"c:\exontrol\images\pushed.ebn")
var_Node = oXMLGrid.Nodes.Add("Parent <b>1")
	var_Nodes = var_Node.Nodes
		var_Node1 = var_Nodes.Add("Child 1")
			var_Node1.Value = "<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1"
			var_Node1.Selected = .t.
		var_Nodes.Add("Child 2")
	var_Node.ExpandAll()
var_Node2 = oXMLGrid.Nodes.Add("Parent <b>2")
	var_Nodes1 = var_Node2.Nodes
		var_Nodes1.Add("Child 1")
		var_Nodes1.Add("Child 2")
oXMLGrid.ExpandBarVisible = .t.
oXMLGrid.ExpandButtons = 3
oXMLGrid.Template = "ExpandButtonsCustom(False) = 1" // oXMLGrid.ExpandButtonsCustom(.f.) = 1
oXMLGrid.Template = "ExpandButtonsCustom(True) = 2" // oXMLGrid.ExpandButtonsCustom(.t.) = 2
oXMLGrid.Template = "Background(1) = 25198720" // oXMLGrid.Background(1) = 25198720
oXMLGrid.Template = "Background(0) = 16777216" // oXMLGrid.Background(0) = 16777216
oXMLGrid.Template = "Background(3) = 41975936" // oXMLGrid.Background(3) = 41975936
oXMLGrid.Template = "Background(2) = 33554432" // oXMLGrid.Background(2) = 33554432
oXMLGrid.ShowFocusRect = .f.
oXMLGrid.SelBackColor = 0
oXMLGrid.SelBackColorChild = oXMLGrid.SelBackColor
oXMLGrid.SelForeColor = 16777215
oXMLGrid.SelForeColorChild = oXMLGrid.SelForeColor

10
How can change the visual appearance of the selected node

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as P
Dim var_Node2 as P
Dim var_Nodes as P
Dim var_Nodes1 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
var_Node = oXMLGrid.Nodes.Add("Parent <b>1")
	var_Nodes = var_Node.Nodes
		var_Node1 = var_Nodes.Add("Child 1")
			var_Node1.Value = "<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1"
			var_Node1.Selected = .t.
		var_Nodes.Add("Child 2")
	var_Node.ExpandAll()
var_Node2 = oXMLGrid.Nodes.Add("Parent <b>2")
	var_Nodes1 = var_Node2.Nodes
		var_Nodes1.Add("Child 1")
		var_Nodes1.Add("Child 2")
oXMLGrid.ShowFocusRect = .f.
oXMLGrid.SelBackColor = 0
oXMLGrid.SelBackColorChild = oXMLGrid.SelBackColor
oXMLGrid.SelForeColor = 16777215
oXMLGrid.SelForeColorChild = oXMLGrid.SelForeColor

9
How can I select programatically a node

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as local
Dim var_Node2 as P
Dim var_Nodes as P
Dim var_Nodes1 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
var_Node = oXMLGrid.Nodes.Add("Parent <b>1")
	var_Nodes = var_Node.Nodes
		' var_Nodes.Add("Child 1").Selected = .t.
		var_Node1 = var_Nodes.Add("Child 1")
		oXMLGrid.TemplateDef = "dim var_Node1"
		oXMLGrid.TemplateDef = var_Node1
		oXMLGrid.Template = "var_Node1.Selected = True"

		var_Nodes.Add("Child 2")
	var_Node.ExpandAll()
var_Node2 = oXMLGrid.Nodes.Add("Parent <b>2")
	var_Nodes1 = var_Node2.Nodes
		var_Nodes1.Add("Child 1")
		var_Nodes1.Add("Child 2")

8
How can I expand all nodes

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
var_Node = oXMLGrid.Nodes.Add("Parent")
	var_Nodes = var_Node.Nodes
		var_Nodes.Add("Child 1")
		var_Nodes.Add("Child 2")
	var_Node.ExpandAll()

7
Does your control support subscript or superscript

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Node1 as P
Dim var_Nodes as P
Dim var_Nodes1 as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
var_Node = oXMLGrid.Nodes.Add("Parent <font ;6><off 4>1")
	var_Nodes = var_Node.Nodes
		var_Node1 = var_Nodes.Add("Child 1")
			var_Node1.Value = "<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1"
		var_Nodes.Add("Child 2")
	var_Node.ExpandAll()
var_Nodes1 = oXMLGrid.Nodes.Add("Parent <font ;6><off 4>2").Nodes
	var_Nodes1.Add("Child 1")
	var_Nodes1.Add("Child 2")

6
How can I add a UserType editor ( ActiveX )

' Fired the user editor is about to be opened.
function UserEditorClose as v (Object  as  P,Node  as  OLE::Exontrol.XMLGrid.1::INode)
	' Node.Value = Object.Value
	oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
end function

' Occurs when an user editor is about to be opened.
function UserEditorOpen as v (Object  as  P,Node  as  OLE::Exontrol.XMLGrid.1::INode)
	' Object.Value = Node.Value
	oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
end function

Dim oXMLGrid as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Columns as P
Dim var_ComboBox as P
Dim var_Editor as P
Dim var_Editors as P
Dim var_Items as P
Dim var_Node as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.NodeHeight = 24
var_Editors = oXMLGrid.Editors
	var_Editor = var_Editors.Add("ExComboUserEditor",16)
		var_Editor.UserEditor("Exontrol.ComboBox","")
		var_ComboBox = var_Editor.UserEditorObject
			var_ComboBox.MinHeightList = 164
			var_ComboBox.MinWidthList = 264
			var_ComboBox.AllowSizeGrip = .t.
			var_ComboBox.IntegralHeight = .t.
			var_ComboBox.Alignment = 0
			var_ComboBox.ColumnAutoResize = .t.
			var_ComboBox.BeginUpdate()
			var_ComboBox.MarkSearchColumn = .f.
			var_Columns = var_ComboBox.Columns
				var_Column = var_Columns.Add("Car")
					var_Column.Width = 32
					var_Column.DisplayFilterButton = .t.
				var_Column1 = var_Columns.Add("Equipment")
					var_Column1.DisplayFilterButton = .t.
					var_Column1.DisplayFilterPattern = .f.
					var_Column1.CustomFilter = "Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*"
					var_Column1.FilterType = 3
			var_Items = var_ComboBox.Items
				' var_Items.CellCaption(var_Items.AddItem("Mazda"),1) = "Air Bag"
				oXMLGrid.TemplateDef = "dim var_Items"
				oXMLGrid.TemplateDef = var_Items
				oXMLGrid.Template = "var_Items.CellCaption(AddItem(`Mazda`),1) = `Air Bag`"

				' var_Items.CellCaption(var_Items.AddItem("Toyota"),1) = "Air Bag,Air condition"
				oXMLGrid.TemplateDef = "dim var_Items"
				oXMLGrid.TemplateDef = var_Items
				oXMLGrid.Template = "var_Items.CellCaption(AddItem(`Toyota`),1) = `Air Bag,Air condition`"

				' var_Items.CellCaption(var_Items.AddItem("Ford"),1) = "Air condition"
				oXMLGrid.TemplateDef = "dim var_Items"
				oXMLGrid.TemplateDef = var_Items
				oXMLGrid.Template = "var_Items.CellCaption(AddItem(`Ford`),1) = `Air condition`"

				' var_Items.CellCaption(var_Items.AddItem("Nissan"),1) = "Air Bag,ABS,ESP"
				oXMLGrid.TemplateDef = "dim var_Items"
				oXMLGrid.TemplateDef = var_Items
				oXMLGrid.Template = "var_Items.CellCaption(AddItem(`Nissan`),1) = `Air Bag,ABS,ESP`"

			var_ComboBox.EndUpdate()
var_Node = oXMLGrid.Nodes.Add("Car")
	var_Node.Editor = "ExComboUserEditor"
	var_Node.Value = "Mazda"

5
How can I load a XML file

Dim oXMLGrid as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
oXMLGrid.LoadXML("C:\Windows\Ultimate.xml")

4
How can I assign a tooltip to a node

Dim oXMLGrid as P
Dim var_Node as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
var_Node = oXMLGrid.Nodes.Add("Title")
	var_Node.Value = "value"
	var_Node.ToolTip = "This is a bit of <b>HTML</b> text to be shown when the cursor hovers the node."

3
How can I edit the node using a DateType editor

Dim oXMLGrid as P
Dim var_Editor as P
Dim var_Editors as P
Dim var_Node as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
var_Editors = oXMLGrid.Editors
	var_Editor = var_Editors.Add("DateEditor",7)
		' var_Editor.Option(34) = .t.
		oXMLGrid.TemplateDef = "dim var_Editor"
		oXMLGrid.TemplateDef = var_Editor
		oXMLGrid.Template = "var_Editor.Option(34) = True"

var_Node = oXMLGrid.Nodes.Add("Date")
	var_Node.Editor = "DateEditor"
	var_Node.Value = {01/01/2001}

2
How can I expand a node

Dim oXMLGrid as P
Dim var_Node as P
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
var_Node = oXMLGrid.Nodes.Add("Parent")
	var_Nodes = var_Node.Nodes
		var_Nodes.Add("Child 1")
		var_Nodes.Add("Child 2")
	var_Node.Expanded = .t.

1
How can I add a node

Dim oXMLGrid as P
Dim var_Nodes as P

oXMLGrid = topparent:CONTROL_ACTIVEX1.activex
var_Nodes = oXMLGrid.Nodes.Add("Parent").Nodes
	var_Nodes.Add("Child 1")
	var_Nodes.Add("Child 2")