724
Highlight the match once the filter is applied

' Notifies your application that the filter is changed.
function FilterChange as v ()
	Dim format as 
	oTree = topparent:CONTROL_ACTIVEX1.activex
	format = oTree.FormatABC("`lower(value) replace lower('` + value + `') with '<bgcolor 000000><fgcolor FFFFFF>` + value  + `</fgcolor></bgcolor>'`",oTree.FilterBarPromptPattern)
	oTree.Columns.Item(0).FormatColumn = format
	oTree.Columns.Item(1).FormatColumn = format
	oTree.Columns.Item(2).FormatColumn = format
end function

Dim h0 as N
Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Columns as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.SelBackColor = oTree.BackColor
oTree.SelForeColor = oTree.ForeColor
oTree.ColumnAutoResize = .t.
oTree.ContinueColumnScroll = .f.
oTree.MarkSearchColumn = .f.
oTree.SearchColumnIndex = 1
oTree.HeaderAppearance = 4
oTree.HeaderHeight = 23
oTree.BackColorLevelHeader = oTree.BackColor
oTree.FilterBarCaption = "`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)"
oTree.FilterBarPromptVisible = 2055 'exFilterBarCompact + exFilterBarCaptionVisible + exFilterBarVisible + exFilterBarPromptVisible
oTree.FilterBarBackColor = oTree.BackColor
oTree.FilterBarPromptPattern = "and"
var_Columns = oTree.Columns
	var_Column = var_Columns.Add("Name")
		' var_Column.Def(17) = 1
		oTree.TemplateDef = "dim var_Column"
		oTree.TemplateDef = var_Column
		oTree.Template = "var_Column.Def(17) = 1"

		var_Column.FormatColumn = "lower(value)"
	var_Column1 = var_Columns.Add("Title")
		' var_Column1.Def(17) = 1
		oTree.TemplateDef = "dim var_Column1"
		oTree.TemplateDef = var_Column1
		oTree.Template = "var_Column1.Def(17) = 1"

		var_Column1.FormatColumn = "lower(value)"
	var_Column2 = var_Columns.Add("City")
		' var_Column2.Def(17) = 1
		oTree.TemplateDef = "dim var_Column2"
		oTree.TemplateDef = var_Column2
		oTree.Template = "var_Column2.Def(17) = 1"

		var_Column2.FormatColumn = "lower(value)"
var_Items = oTree.Items
	h0 = var_Items.AddItem("Nancy Davolio")
	' var_Items.CellCaption(h0,1) = "Sales Representative"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,1) = `Sales Representative`"

	' var_Items.CellCaption(h0,2) = "Seattle"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Andrew Fuller")
	' var_Items.CellCaption(h0,1) = "Vice President, Sales"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,1) = `Vice President, Sales`"

	' var_Items.CellCaption(h0,2) = "Tacoma"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,2) = `Tacoma`"

	' var_Items.SelectItem(h0) = .t.
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.SelectItem(h0) = 1"

	h0 = var_Items.AddItem("Janet Leverling")
	' var_Items.CellCaption(h0,1) = "Sales Representative"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,1) = `Sales Representative`"

	' var_Items.CellCaption(h0,2) = "Kirkland"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,2) = `Kirkland`"

	h0 = var_Items.AddItem("Margaret Peacock")
	' var_Items.CellCaption(h0,1) = "Sales Representative"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,1) = `Sales Representative`"

	' var_Items.CellCaption(h0,2) = "Redmond"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,2) = `Redmond`"

	h0 = var_Items.AddItem("Steven Buchanan")
	' var_Items.CellCaption(h0,1) = "Sales Manager"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,1) = `Sales Manager`"

	' var_Items.CellCaption(h0,2) = "London"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,2) = `London`"

	h0 = var_Items.AddItem("Michael Suyama")
	' var_Items.CellCaption(h0,1) = "Sales Representative"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,1) = `Sales Representative`"

	' var_Items.CellCaption(h0,2) = "London"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,2) = `London`"

	h0 = var_Items.AddItem("Robert King")
	' var_Items.CellCaption(h0,1) = "Sales Representative"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,1) = `Sales Representative`"

	' var_Items.CellCaption(h0,2) = "London"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,2) = `London`"

	h0 = var_Items.AddItem("Laura Callahan")
	' var_Items.CellCaption(h0,1) = "Inside Sales Coordinator"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,1) = `Inside Sales Coordinator`"

	' var_Items.CellCaption(h0,2) = "Seattle"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,2) = `Seattle`"

	h0 = var_Items.AddItem("Anne Dodsworth")
	' var_Items.CellCaption(h0,1) = "Sales Representative"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,1) = `Sales Representative`"

	' var_Items.CellCaption(h0,2) = "London"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,2) = `London`"

oTree.EndUpdate()

723
ADOR, MDB (JET)

Dim oTree as P
Dim rs as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.ColumnAutoResize = .f.
oTree.ContinueColumnScroll = .f.
rs = OLE.Create("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Exontrol\ExTree\Sample\Access\sample.mdb",3,3)
oTree.DataSource = rs

722
Re-order the cell's caption, icons and images/pictures

Dim h as N
Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.Images("gBJJgBAICAADAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEahkZAIAEEbjMjlErlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrlTiFdib/sNjr9gs1nldlrlqtFtt0stlguNvulyh91ud1vVVvNuvt7wFHr9/vl3luEwOJouIq+Dw2KyGRyWTymVy2XzGZzUuiw+lmej0gkUaksljaAnmDcD/cEbf7w1+ufD/fEbeB028bYAO3enB6AB++4EoA4A4sb4vHjXJ4nG5vKAHA4ca6XBjTAD/Y2x/eB/jcB")
var_Column = oTree.Columns.Add("ToLeft")
	' var_Column.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(0) = True"

var_Column1 = oTree.Columns.Add("ToRight")
	' var_Column1.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column1"
	oTree.TemplateDef = var_Column1
	oTree.Template = "var_Column1.Def(0) = True"

	' var_Column1.Def(34) = "caption,picture,icons,icon,check"
	oTree.TemplateDef = "dim var_Column1"
	oTree.TemplateDef = var_Column1
	oTree.Template = "var_Column1.Def(34) = `caption,picture,icons,icon,check`"

oTree.DefaultItemHeight = 32
oTree.DrawGridLines = 2
oTree.HeaderAppearance = 4
var_Items = oTree.Items
	h = var_Items.AddItem("Caption")
	' var_Items.CellImage(h,0) = 2
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImage(h,0) = 2"

	' var_Items.CellImages(h,0) = "1,2"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImages(h,0) = `1,2`"

	' var_Items.CellPicture(h,0) = oTree.ExecuteTemplate("loadpicture(`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`)")
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellPicture(h,0) = Me.ExecuteTemplate(`loadpicture(``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``)`)"

	' var_Items.CellCaption(h,1) = var_Items.CellCaption(h,0)
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,1) = CellCaption(h,0)"

	' var_Items.CellHAlignment(h,1) = 2
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellHAlignment(h,1) = 2"

	' var_Items.CellImage(h,1) = var_Items.CellImage(h,0)
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImage(h,1) = CellImage(h,0)"

	' var_Items.CellImages(h,1) = "2,1"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImages(h,1) = `2,1`"

	' var_Items.CellPicture(h,1) = var_Items.CellPicture(h,0)
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellPicture(h,1) = CellPicture(h,0)"

	h = var_Items.AddItem("<b>HTML</b> <off 4>Caption")
	' var_Items.CellCaptionFormat(h,0) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaptionFormat(h,0) = 1"

	' var_Items.CellImage(h,0) = 2
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImage(h,0) = 2"

	' var_Items.CellImages(h,0) = "1,2"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImages(h,0) = `1,2`"

	' var_Items.CellPicture(h,0) = oTree.ExecuteTemplate("loadpicture(`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`)")
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellPicture(h,0) = Me.ExecuteTemplate(`loadpicture(``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``)`)"

	' var_Items.CellCaption(h,1) = var_Items.CellCaption(h,0)
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,1) = CellCaption(h,0)"

	' var_Items.CellCaptionFormat(h,1) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaptionFormat(h,1) = 1"

	' var_Items.CellHAlignment(h,1) = 2
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellHAlignment(h,1) = 2"

	' var_Items.CellImage(h,1) = var_Items.CellImage(h,0)
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImage(h,1) = CellImage(h,0)"

	' var_Items.CellImages(h,1) = "2,1"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImages(h,1) = `2,1`"

	' var_Items.CellPicture(h,1) = var_Items.CellPicture(h,0)
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellPicture(h,1) = CellPicture(h,0)"

oTree.EndUpdate()

721
ImageSize property on 32 (specifies the size of control' icons/images/check-boxes/radio-buttons)

' Fired after a new column has been added.
function AddColumn as v (Column  as  OLE::Exontrol.Tree.1::IColumn)
	' Column.Def(48) = 2
	' Column.Def(49) = 2
	oTree = topparent:CONTROL_ACTIVEX1.activex
end function

Dim h as N
Dim hR as N
Dim oTree as P
Dim var_Appearance as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.ImageSize = 32
oTree.DefaultItemHeight = 36
oTree.HeaderHeight = oTree.DefaultItemHeight
oTree.SortBarHeight = oTree.DefaultItemHeight
oTree.Font.Size = 16
oTree.FilterBarFont.Size = oTree.Font.Size
oTree.ToolTipFont.Size = oTree.Font.Size
oTree.Indent = 26
oTree.Images("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")
var_Appearance = oTree.VisualAppearance
	var_Appearance.Add(1,"gBFLBCJwBAEHhEJAAEhABfICg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EMRwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsOatVqjG5sYjcGC3La9cz3Pq/bpuDCbMxuaK1TrYXr1TTrcofBDldAxXRKDxRDWVhLnYOw9i6XxzjuXprCaOoKB6EwbiCZZCGOdZYlcT4xHmbhMnwNxtn+G5bmqdZ7n4Pw/i+X5zm+dQ9g4CAFjsfAJheOI8HsDoWDWTB/lwSAQkmA5PEgRYoDyDwYFYFoFmGCBmBqBphDgRJ0gOTIYBGRB/lyRh0iSCZbjYWJzgWDwIjYLoLmMCJGDKDJjBgWgqG6YhyhGHRzA2aJ1mCABOAiOJvhCZBJBYRoRmSCQmEqEQimkAZgg8TZnDCV4UkmCUmBKZYJGYWoWCUUhiFMNZckNUh2GENoaGaGZmgmJhqhqZpGGIEx2GYIxSGGGJdggWJth2Z4JmYeoemeSZ2H6H4hGmQhihyTRHGYLg7CiCgmgqIpokoNoOiOaJ4jqAochqaZGgaCxpAoZoaiaaJqEmWIcGgShcnCJwqEqFoR3YOoFlgchflqNouiuawHmWSYqGkWZQhcatzmaOoumuSp2j6L5bBaKo0GQKRnGGCxqiyCwmkqMpsksNpOGUGI7A0ew1G0Rxlg0PptgsZuDG2Sx2l6N5tnYNZZjUDRXDCVo5l2FoymqOpukuNpujubwLjmWY5k0ZwxkaFxYlWdp6j6b5Lnafo/nABQdg2FxcUsY5BkmXAkmeQpckwNRrkKTh8CSHZBk4NwyC4KxxgMDwakOMZDn8GgwnGAo2C4cwthMcwmCcMoHBMHRehwTIghySYNksZwcH4HBMEsHx5hyPItiweYxnwSZEH4Mozn0fR+DMAo7EYJ50gkdZelKdNql2UgJn0GIukwH4HicQRai2GI4mSVpNl0dZGledgNgcYpYDWUx3FsOQi5YV5anaTY3G6W53A2RxylydxFjiaxEFCCgBBAQ==")
	var_Appearance.Add(2,"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")
	var_Appearance.Add(3,"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")
	var_Appearance.Add(4,"gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHLUXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBUrGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDsYYDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVmWCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVoWiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiSe41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbhFCcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==")
oTree.BackColorHeader = 80135878
oTree.SelBackColor = 67108864
oTree.SelForeColor = 65536
oTree.Template = "CheckImage(0) = 16777216" // oTree.CheckImage(0) = 16777216
oTree.Template = "CheckImage(1) = 33554432" // oTree.CheckImage(1) = 33554432
oTree.Template = "CheckImage(2) = 50331648" // oTree.CheckImage(2) = 50331648
oTree.Template = "Background(20) = SelBackColor" // oTree.Background(20) = oTree.SelBackColor
oTree.Template = "Background(21) = SelForeColor" // oTree.Background(21) = oTree.SelForeColor
oTree.Template = "Background(26) = BackColor" // oTree.Background(26) = oTree.BackColor
oTree.Template = "Background(27) = ForeColor" // oTree.Background(27) = oTree.ForeColor
oTree.Template = "Background(32) = -1" // oTree.Background(32) = -1
oTree.Template = "Background(0) = 67108864" // oTree.Background(0) = 67108864
oTree.Template = "Background(41) = 67174657" // oTree.Background(41) = 67174657
oTree.Template = "Background(1) = 67109119" // oTree.Background(1) = 67109119
oTree.HeaderAppearance = 4
oTree.ShowFocusRect = .f.
oTree.SortBarVisible = .t.
oTree.BackColorSortBar = oTree.BackColor
oTree.BackColorLevelHeader = oTree.BackColor
oTree.FilterBarDropDownHeight = 1
var_Column = oTree.Columns.Add("Check")
	' var_Column.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(0) = True"

	var_Column.PartialCheck = .t.
	var_Column.Width = 128
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 256
var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.FormatColumn = "1 pos ``"
	var_Column1.AllowSort = .f.
	var_Column1.Width = 48
	var_Column1.AllowSizing = .f.
	var_Column1.Alignment = 1
	var_Column1.HeaderAlignment = 1
var_Column2 = oTree.Columns.Add("Image")
	var_Column2.DisplayFilterButton = .t.
	var_Column2.FilterList = 8480 'exShowExclude + exShowCheckBox + exSortItemsAsc
	var_Column2.FilterType = 10
	var_Column2.DisplayExpandButton = .t.
	var_Column2.ExpandColumns = "1,2,3"
	var_Column2.Width = 128
	var_Column2.HeaderImage = 1
var_Column3 = oTree.Columns.Add("Images")
	' var_Column3.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column3"
	oTree.TemplateDef = var_Column3
	oTree.Template = "var_Column3.Def(0) = True"

	var_Column3.Width = 196
	var_Column3.HTMLCaption = "<img>1</img><img>2</img><img>3</img> Images"
oTree.Columns.Item("Pos").Position = 3
var_Items = oTree.Items
	hR = var_Items.AddItem("Root")
	' var_Items.ItemDivider(hR) = 0
	oTree.TemplateDef = "dim var_Items,hR"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hR
	oTree.Template = "var_Items.ItemDivider(hR) = 0"

	' var_Items.ItemDividerLine(hR) = 0
	oTree.TemplateDef = "dim var_Items,hR"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hR
	oTree.Template = "var_Items.ItemDividerLine(hR) = 0"

	h = var_Items.InsertItem(hR,,"Child A")
	' var_Items.CellImage(h,2) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImage(h,2) = 1"

	' var_Items.CellImages(h,3) = "1,2,3"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImages(h,3) = `1,2,3`"

	' var_Items.CellCaption(h,3) = "123"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,3) = `123`"

	h = var_Items.InsertItem(hR,,"Child B")
	' var_Items.CellState(h,0) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellState(h,0) = 1"

	' var_Items.CellImage(h,2) = 3
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImage(h,2) = 3"

	' var_Items.CellImages(h,3) = "2,3,1"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImages(h,3) = `2,3,1`"

	' var_Items.CellCaption(h,3) = "231"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,3) = `231`"

	' var_Items.SelectItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.SelectItem(h) = True"

	h = var_Items.InsertItem(hR,,"Child C")
	' var_Items.CellImage(h,2) = 2
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImage(h,2) = 2"

	' var_Items.CellState(h,3) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellState(h,3) = 1"

	' var_Items.CellCaption(h,3) = "312"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,3) = `312`"

	' var_Items.CellImages(h,3) = "3,1,2"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImages(h,3) = `3,1,2`"

	' var_Items.ExpandItem(hR) = .t.
	oTree.TemplateDef = "dim var_Items,hR"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hR
	oTree.Template = "var_Items.ExpandItem(hR) = True"

oTree.EndUpdate()

720
ImageSize property on 16 (default) (specifies the size of control' icons/images/check-boxes/radio-buttons)

' Fired after a new column has been added.
function AddColumn as v (Column  as  OLE::Exontrol.Tree.1::IColumn)
	' Column.Def(48) = 2
	' Column.Def(49) = 2
	oTree = topparent:CONTROL_ACTIVEX1.activex
end function

Dim h as N
Dim hR as N
Dim oTree as P
Dim var_Appearance as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.ImageSize = 16
oTree.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_Appearance = oTree.VisualAppearance
	var_Appearance.Add(4,"gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHLUXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBUrGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDsYYDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVmWCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVoWiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiSe41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbhFCcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==")
oTree.BackColorHeader = 80135878
oTree.SelBackColor = 67108864
oTree.SelForeColor = 65536
oTree.Template = "Background(20) = SelBackColor" // oTree.Background(20) = oTree.SelBackColor
oTree.Template = "Background(21) = SelForeColor" // oTree.Background(21) = oTree.SelForeColor
oTree.Template = "Background(26) = BackColor" // oTree.Background(26) = oTree.BackColor
oTree.Template = "Background(27) = ForeColor" // oTree.Background(27) = oTree.ForeColor
oTree.Template = "Background(32) = -1" // oTree.Background(32) = -1
oTree.Template = "Background(0) = 67108864" // oTree.Background(0) = 67108864
oTree.Template = "Background(41) = 67174657" // oTree.Background(41) = 67174657
oTree.Template = "Background(1) = 67109119" // oTree.Background(1) = 67109119
oTree.HeaderAppearance = 4
oTree.ShowFocusRect = .f.
oTree.SortBarVisible = .t.
oTree.BackColorSortBar = oTree.BackColor
oTree.BackColorLevelHeader = oTree.BackColor
oTree.FilterBarDropDownHeight = 1
var_Column = oTree.Columns.Add("Check")
	' var_Column.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(0) = True"

	var_Column.PartialCheck = .t.
	var_Column.Width = 128
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 256
var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.FormatColumn = "1 pos ``"
	var_Column1.AllowSort = .f.
	var_Column1.Width = 48
	var_Column1.AllowSizing = .f.
	var_Column1.Alignment = 1
	var_Column1.HeaderAlignment = 1
var_Column2 = oTree.Columns.Add("Image")
	var_Column2.DisplayFilterButton = .t.
	var_Column2.FilterList = 8480 'exShowExclude + exShowCheckBox + exSortItemsAsc
	var_Column2.FilterType = 10
	var_Column2.DisplayExpandButton = .t.
	var_Column2.ExpandColumns = "1,2,3"
	var_Column2.Width = 128
	var_Column2.HeaderImage = 1
var_Column3 = oTree.Columns.Add("Images")
	' var_Column3.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column3"
	oTree.TemplateDef = var_Column3
	oTree.Template = "var_Column3.Def(0) = True"

	var_Column3.Width = 196
	var_Column3.HTMLCaption = "<img>1</img><img>2</img><img>3</img> Images"
oTree.Columns.Item("Pos").Position = 3
var_Items = oTree.Items
	hR = var_Items.AddItem("Root")
	' var_Items.ItemDivider(hR) = 0
	oTree.TemplateDef = "dim var_Items,hR"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hR
	oTree.Template = "var_Items.ItemDivider(hR) = 0"

	' var_Items.ItemDividerLine(hR) = 0
	oTree.TemplateDef = "dim var_Items,hR"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hR
	oTree.Template = "var_Items.ItemDividerLine(hR) = 0"

	h = var_Items.InsertItem(hR,,"Child A")
	' var_Items.CellImage(h,2) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImage(h,2) = 1"

	' var_Items.CellImages(h,3) = "1,2,3"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImages(h,3) = `1,2,3`"

	' var_Items.CellCaption(h,3) = "123"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,3) = `123`"

	h = var_Items.InsertItem(hR,,"Child B")
	' var_Items.CellState(h,0) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellState(h,0) = 1"

	' var_Items.CellImage(h,2) = 3
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImage(h,2) = 3"

	' var_Items.CellImages(h,3) = "2,3,1"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImages(h,3) = `2,3,1`"

	' var_Items.CellCaption(h,3) = "231"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,3) = `231`"

	' var_Items.SelectItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.SelectItem(h) = True"

	h = var_Items.InsertItem(hR,,"Child C")
	' var_Items.CellImage(h,2) = 2
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImage(h,2) = 2"

	' var_Items.CellState(h,3) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellState(h,3) = 1"

	' var_Items.CellCaption(h,3) = "312"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,3) = `312`"

	' var_Items.CellImages(h,3) = "3,1,2"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellImages(h,3) = `3,1,2`"

	' var_Items.ExpandItem(hR) = .t.
	oTree.TemplateDef = "dim var_Items,hR"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hR
	oTree.Template = "var_Items.ExpandItem(hR) = True"

oTree.EndUpdate()

719
The user clicks the drop-down filter, select a value and the control's list filters for the selected item(s). Is there a way for when the user then goes to the next column to add another filter and the drop down arrow is clicked for the list of values they can filter by to be limited to what is being displayed in the list due to the first filter they set

' Fired after a new column has been added.
function AddColumn as v (Column  as  OLE::Exontrol.Tree.1::IColumn)
	oTree = topparent:CONTROL_ACTIVEX1.activex
end function

Dim oTree as P
Dim rs as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.ColumnAutoResize = .f.
rs = OLE.Create("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExTree\Sample\Access\sample.accdb",3,3)
oTree.DataSource = rs
oTree.Columns.Item("ShipVia").Position = 2
oTree.EndUpdate()

718
Is it possible to set from code, a column sort without being inserted in the sortbar

Dim oTree as P
Dim rs as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.ColumnAutoResize = .f.
rs = OLE.Create("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExTree\Sample\Access\sample.accdb",1,3)
oTree.DataSource = rs
oTree.SortBarVisible = .t.
oTree.Layout = "singlesort=\"C1:1\""
oTree.EndUpdate()

717
Is it possible to view all events the control fires
' Notifies the application once the control fires an event.
function Event as v (EventID  as  N)
	oTree = topparent:CONTROL_ACTIVEX1.activex
	? oTree.EventParam(-2) 
end function

Dim h as N
Dim hChild as N
Dim oTree as P
Dim var_Column as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
var_Column = oTree.Columns.Add("Tasks")
	' var_Column.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(0) = True"

	var_Column.PartialCheck = .t.
	' var_Column.Def(17) = 1
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(17) = 1"

	var_Column.FormatColumn = "value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)"
oTree.HeaderVisible = .t.
var_Items = oTree.Items
	h = var_Items.AddItem("Project")
	hChild = var_Items.InsertItem(h,,"Task 1")
	' var_Items.SelectItem(hChild) = .t.
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.SelectItem(hChild) = True"

	hChild = var_Items.InsertItem(h,,"Task 2")
	' var_Items.CellState(hChild,0) = 1
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.CellState(hChild,0) = 1"

	hChild = var_Items.InsertItem(h,,"Task 3")
	' var_Items.CellState(hChild,0) = 1
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.CellState(hChild,0) = 1"

	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

oTree.EndUpdate()

716
How can I prevent expanding/collapsing the child items

' Fired before an item is about to be expanded (collapsed).
function BeforeExpandItem as v (Item  as  OLE::Exontrol.Tree.1::HITEM,Cancel  as  A)
	oTree = topparent:CONTROL_ACTIVEX1.activex
	Cancel = oTree.Items.ItemParent(Item)
end function

Dim h as N
Dim oTree as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.SingleSel = .f.
oTree.Columns.Add("Default")
oTree.LinesAtRoot = -1
var_Items = oTree.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(var_Items.InsertItem(h,,"Child 1.1"),,"Child")
	var_Items.InsertItem(h,,"Child 1.2")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(var_Items.InsertItem(h,,"Child 2.1"),,"Child")
	var_Items.InsertItem(h,,"Child 2.2")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

oTree.EndUpdate()

715
How can I display an item of picture type

Dim h as N
Dim h1 as N
Dim oTree as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
oTree.ScrollBySingleLine = .f.
oTree.HeaderAppearance = 4
oTree.HeaderHeight = 24
' oTree.Columns.Add("Artikel").HTMLCaption = "<u>Artikel"
var_Column = oTree.Columns.Add("Artikel")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.HTMLCaption = `<u>Artikel`"

' oTree.Columns.Add("Waarde").HTMLCaption = "<u>Waarde"
var_Column1 = oTree.Columns.Add("Waarde")
oTree.TemplateDef = "dim var_Column1"
oTree.TemplateDef = var_Column1
oTree.Template = "var_Column1.HTMLCaption = `<u>Waarde`"

oTree.Template = "HTMLPicture(`T22128`) = `c:\exontrol\images\zipdisk.gif`" // oTree.HTMLPicture("T22128") = "c:\exontrol\images\zipdisk.gif"
var_Items = oTree.Items
	h = var_Items.AddItem("T22128-28)2D")
	h1 = var_Items.InsertItem(h,,"<img>T22128:128</img>")
	' var_Items.CellCaptionFormat(h1,0) = 1
	oTree.TemplateDef = "dim var_Items,h1"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h1
	oTree.Template = "var_Items.CellCaptionFormat(h1,0) = 1"

	' var_Items.ItemHeight(h1) = 128
	oTree.TemplateDef = "dim var_Items,h1"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h1
	oTree.Template = "var_Items.ItemHeight(h1) = 128"

	h1 = var_Items.InsertItem(h,,"werkvoorbereiding")
	' var_Items.CellCaption(h1,1) = "5.80"
	oTree.TemplateDef = "dim var_Items,h1"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h1
	oTree.Template = "var_Items.CellCaption(h1,1) = `5.80`"

	' var_Items.CellBold(h1,1) = .t.
	oTree.TemplateDef = "dim var_Items,h1"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h1
	oTree.Template = "var_Items.CellBold(h1,1) = True"

	' var_Items.CellCaption(var_Items.InsertItem(h1,,"Type"),1) = "Eenvoudig"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(InsertItem(h1,,`Type`),1) = `Eenvoudig`"

	' var_Items.CellCaption(var_Items.InsertItem(h1,,"Prijs p/uur"),1) = "60,00"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(InsertItem(h1,,`Prijs p/uur`),1) = `60,00`"

	' var_Items.CellCaption(var_Items.InsertItem(h1,,"Marhe"),1) = "15,00%"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(InsertItem(h1,,`Marhe`),1) = `15,00%`"

	' var_Items.CellCaption(var_Items.InsertItem(h1,,"Insteltijd min."),1) = "5,00"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(InsertItem(h1,,`Insteltijd min.`),1) = `5,00`"

	' var_Items.CellCaption(var_Items.InsertItem(h1,,"Aantal"),1) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(InsertItem(h1,,`Aantal`),1) = 1"

	' var_Items.CellCaption(var_Items.InsertItem(h1,,"Kostprije"),1) = "5,00"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(InsertItem(h1,,`Kostprije`),1) = `5,00`"

	' var_Items.ExpandItem(h1) = .t.
	oTree.TemplateDef = "dim var_Items,h1"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h1
	oTree.Template = "var_Items.ExpandItem(h1) = True"

	h1 = var_Items.InsertItem(h,,"materiall")
	' var_Items.CellCaption(h1,1) = "14.82"
	oTree.TemplateDef = "dim var_Items,h1"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h1
	oTree.Template = "var_Items.CellCaption(h1,1) = `14.82`"

	' var_Items.CellBold(h1,1) = .t.
	oTree.TemplateDef = "dim var_Items,h1"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h1
	oTree.Template = "var_Items.CellBold(h1,1) = True"

	' var_Items.ItemHasChildren(h1) = .t.
	oTree.TemplateDef = "dim var_Items,h1"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h1
	oTree.Template = "var_Items.ItemHasChildren(h1) = True"

	h1 = var_Items.InsertItem(h,,"snijden")
	' var_Items.CellCaption(h1,1) = "3.13"
	oTree.TemplateDef = "dim var_Items,h1"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h1
	oTree.Template = "var_Items.CellCaption(h1,1) = `3.13`"

	' var_Items.CellBold(h1,1) = .t.
	oTree.TemplateDef = "dim var_Items,h1"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h1
	oTree.Template = "var_Items.CellBold(h1,1) = True"

	' var_Items.ItemHasChildren(h1) = .t.
	oTree.TemplateDef = "dim var_Items,h1"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h1
	oTree.Template = "var_Items.ItemHasChildren(h1) = True"

	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

oTree.EndUpdate()

714
Dark mode

Dim back as 
Dim fore as 
Dim oTree as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
back = 65536
fore = 16777215
oTree.VisualAppearance.Add(1,"gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQgmPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThdr4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA")
oTree.VisualAppearance.Add(2,"gBFLBCJwBAEHhEJAAEhABPMIQAAYAQGKIcBiAKBQAGaAoDDcMgwQwAAxjIKUEwsACEIrjKCYVgOHYYQjGMZwHCMIhiGwcAChEZYHgkMYmDAMUhSE78axHG6PY7kKZ4biaKIqQLLEhSfJ0YyBECBZpfebIbjmIZMSLEIxDKItJSpCIaRgqWS6ahGO4JUbUFLQHT9IR4daIYRgEEBA")
oTree.VisualAppearance.Add(3,"gBFLBCJwBAEHhEJAAEhABUUIQAAYAQGKIcBiAKBQAGaAoDDcMgwQwAAxjIKUEwsACEIrjKCYVgOHYYQjGMZwGAsEwjAoYAChEaILgkMw2DBIQwgJIMEr/G6RZxjeL5CjmG4nDhKMpybAcXxjBIYZJgOQpXb+PobTrNNLzfRFAxVAaWJikcZ4HpIAJNVLFdQ0XYMNSBISsBqrKiKcpeIIDWBZMbRZT1ZABCIZBpEW6LahENQwXrCN74DYkNTdKaxbbuaaXLhGCYBgIA==")
oTree.HeaderAppearance = 5
oTree.BackColor = back
oTree.BackColorHeader = back
oTree.BackColorLevelHeader = back
oTree.BackColorSortBar = back
oTree.BackColorSortBarCaption = back
oTree.FilterBarBackColor = back
oTree.FilterBarForeColor = fore
oTree.ForeColor = fore
oTree.ForeColorHeader = fore
oTree.ForeColorSortBar = fore
oTree.SelBackColor = fore
oTree.SelForeColor = back
oTree.Template = "Background(0) = 16777216" // oTree.Background(0) = 16777216
oTree.Template = "Background(18) = 33554432" // oTree.Background(18 '10 + exCellButtonUp) = 33554432
oTree.Template = "Background(32) = -1" // oTree.Background(32) = -1
oTree.Template = "Background(64) = 50331648" // oTree.Background(64) = 50331648
oTree.Template = "Background(65) = back" // oTree.Background(65) = back
oTree.Template = "Background(66) = fore" // oTree.Background(66) = fore
oTree.Template = "Background(20) = fore" // oTree.Background(20) = fore
oTree.Template = "Background(21) = back" // oTree.Background(21) = back
oTree.Template = "Background(26) = back" // oTree.Background(26) = back
oTree.Template = "Background(27) = fore" // oTree.Background(27) = fore
oTree.Template = "Background(28) = back" // oTree.Background(28) = back
oTree.Template = "Background(142) = 33554432" // oTree.Background(142 '80 + exDateSelect) = 33554432
oTree.Template = "Background(141) = 33554432" // oTree.Background(141 '80 + exDateSeparatorBar) = 33554432
oTree.Template = "Background(186) = fore" // oTree.Background(186) = fore
oTree.Template = "Description(25) = `<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>`" // oTree.Description(25) = "<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>"
oTree.EndUpdate()

713
How can I specify the cell's outline, border or lines around, when the cell gets selected

Dim oTree as P
Dim var_Appearance as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.AttachTemplate("handle AddColumn(Column){Column{Def(48)=4;Def(49)=4;}}")
var_Appearance = oTree.VisualAppearance
	var_Appearance.Add(1,"gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYYLhEZAEiONoaDJCM4wHIMQxHCKTZRkGcfaRCGSfIzpGKpVgOTYiTbPcIyQKtBxDIydJTmeQQQhsFIJU7SdVUPDUJZlWbLAwWTAYazXCKRZBpeJqdo6Y5RUDKUqSdLUYyvEq7ZqnOIpw5vICpaCqOp6HqKFpiXSAFL1fLmAwvPKrJjoeqpWpyCaRZQAGg4dbEdTNNCIbatQANKrCSpgZ7sMB6Di2L4TPS2awoWgRYyTFZMbBAeQ7LC1c45Fqrd4zS4dSxKCahcLxFiaNpYZYnjUap1jGPJlkuAgAkidB3nceZsCQEQJCgGhMGcQ4pkiSxEAAOYpiQIhvkYNA2gSCg5n+LIoGILowFyXQoAYAoAmASAWAaAZgggJgKF2T54DYDoDmECBGBKBJgGgTgWgWYRoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChixULILGGGAWDCCgjCiTgrg0YxojoC4OmOSJ2D6D5kAgJLFgABAEICA=")
	var_Appearance.Add(2,"CP:1 -4 0 0 0")
oTree.SelBackColor = 33554432
oTree.SelForeColor = 65536
oTree.FullRowSelect = .f.
oTree.ShowFocusRect = .f.
oTree.DefaultItemHeight = 24
oTree.HeaderHeight = 24
oTree.DrawGridLines = 2
oTree.Columns.Add("C1")
oTree.Columns.Add("C2")
var_Items = oTree.Items
	' var_Items.CellCaption(var_Items.AddItem("Cell 1"),1) = "Cell 2"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Cell 1`),1) = `Cell 2`"

	' var_Items.CellCaption(var_Items.AddItem("Cell 3"),1) = "Cell 4"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Cell 3`),1) = `Cell 4`"

oTree.Items.SelectPos = 1
oTree.SelectColumnIndex = 1
oTree.EndUpdate()

712
How can I specify the cell's outline, border or lines around, when the item gets selected

Dim oTree as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.AttachTemplate("handle AddColumn(Column){Column{Def(48)=4;Def(49)=4;}}")
oTree.VisualAppearance.Add(1,"gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYYLhEZAEiONoaDJCM4wHIMQxHCKTZRkGcfaRCGSfIzpGKpVgOTYiTbPcIyQKtBxDIydJTmeQQQhsFIJU7SdVUPDUJZlWbLAwWTAYazXCKRZBpeJqdo6Y5RUDKUqSdLUYyvEq7ZqnOIpw5vICpaCqOp6HqKFpiXSAFL1fLmAwvPKrJjoeqpWpyCaRZQAGg4dbEdTNNCIbatQANKrCSpgZ7sMB6Di2L4TPS2awoWgRYyTFZMbBAeQ7LC1c45Fqrd4zS4dSxKCahcLxFiaNpYZYnjUap1jGPJlkuAgAkidB3nceZsCQEQJCgGhMGcQ4pkiSxEAAOYpiQIhvkYNA2gSCg5n+LIoGILowFyXQoAYAoAmASAWAaAZgggJgKF2T54DYDoDmECBGBKBJgGgTgWgWYRoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChixULILGGGAWDCCgjCiTgrg0YxojoC4OmOSJ2D6D5kAgJLFgABAEICA=")
oTree.SelBackColor = 16777216
oTree.SelForeColor = 65536
oTree.ShowFocusRect = .f.
oTree.DefaultItemHeight = 24
oTree.HeaderHeight = 24
oTree.DrawGridLines = 2
oTree.Columns.Add("C1")
oTree.Columns.Add("C2")
var_Items = oTree.Items
	' var_Items.CellCaption(var_Items.AddItem("Cell 1"),1) = "Cell 2"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Cell 1`),1) = `Cell 2`"

	' var_Items.CellCaption(var_Items.AddItem("Cell 3"),1) = "Cell 4"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Cell 3`),1) = `Cell 4`"

	var_Items.SelectPos = 1
oTree.EndUpdate()

711
How can I specify the cell's outline, border or lines around

Dim h as N
Dim oTree as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.AttachTemplate("handle AddColumn(Column){Column{Def(48)=4;Def(49)=4;}}")
oTree.VisualAppearance.Add(1,"gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYYLhEZAEiONoaDJCM4wHIMQxHCKTZRkGcfaRCGSfIzpGKpVgOTYiTbPcIyQKtBxDIydJTmeQQQhsFIJU7SdVUPDUJZlWbLAwWTAYazXCKRZBpeJqdo6Y5RUDKUqSdLUYyvEq7ZqnOIpw5vICpaCqOp6HqKFpiXSAFL1fLmAwvPKrJjoeqpWpyCaRZQAGg4dbEdTNNCIbatQANKrCSpgZ7sMB6Di2L4TPS2awoWgRYyTFZMbBAeQ7LC1c45Fqrd4zS4dSxKCahcLxFiaNpYZYnjUap1jGPJlkuAgAkidB3nceZsCQEQJCgGhMGcQ4pkiSxEAAOYpiQIhvkYNA2gSCg5n+LIoGILowFyXQoAYAoAmASAWAaAZgggJgKF2T54DYDoDmECBGBKBJgGgTgWgWYRoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChixULILGGGAWDCCgjCiTgrg0YxojoC4OmOSJ2D6D5kAgJLFgABAEICA=")
oTree.SelBackMode = 1
oTree.ShowFocusRect = .f.
oTree.DefaultItemHeight = 24
oTree.HeaderHeight = 24
oTree.DrawGridLines = 2
oTree.Columns.Add("C1")
oTree.Columns.Add("C2")
var_Items = oTree.Items
	' var_Items.CellCaption(var_Items.AddItem("Cell 1"),1) = "Cell 2"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Cell 1`),1) = `Cell 2`"

	h = var_Items.AddItem("Cell 2")
	' var_Items.CellCaption(h,1) = "Cell 3"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,1) = `Cell 3`"

	' var_Items.CellBackColor(h,1) = 16777216
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellBackColor(h,1) = 16777216"

oTree.EndUpdate()

710
Is it possible to highligth the match while a filter is applied

' Fired after a new column has been added.
function AddColumn as v (Column  as  OLE::Exontrol.Tree.1::IColumn)
	' Column.Def(17) = 1
	oTree = topparent:CONTROL_ACTIVEX1.activex
end function

' Notifies your application that the filter is changed.
function FilterChange as v ()
	Dim format as 
	oTree = topparent:CONTROL_ACTIVEX1.activex
	format = oTree.FormatABC("`value replace '` + value + `' with '<bgcolor 000000><fgcolor FFFFFF>` + value  + `</fgcolor></bgcolor>'`",oTree.FilterBarPromptPattern)
	oTree.Columns.Item(0).FormatColumn = format
	oTree.Columns.Item(1).FormatColumn = format
end function

Dim oTree as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.DrawGridLines = 2
oTree.HeaderAppearance = 4
oTree.Columns.Add("Col 1")
oTree.Columns.Add("Col 2")
var_Items = oTree.Items
	' var_Items.CellCaption(var_Items.AddItem("219 Smith"),1) = "Ignacio 1234"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`219 Smith`),1) = `Ignacio 1234`"

	' var_Items.CellCaption(var_Items.AddItem("1666 County Road 309A"),1) = "897 Manassa"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`1666 County Road 309A`),1) = `897 Manassa`"

	' var_Items.CellCaption(var_Items.AddItem("38 Lone Pine"),1) = "Durango 11"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`38 Lone Pine`),1) = `Durango 11`"

	' var_Items.CellCaption(var_Items.AddItem("612 Jachim Street"),1) = "Lamar 222"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`612 Jachim Street`),1) = `Lamar 222`"

oTree.FilterBarPromptPattern = "1"
oTree.FilterBarPromptVisible = 2067 'exFilterBarCompact + exFilterBarSingleLine + exFilterBarVisible + exFilterBarPromptVisible
oTree.FilterBarPromptType = 257 'exFilterPromptCaseSensitive + exFilterPromptContainsAll
oTree.EndUpdate()

709
Is it possible to highlight the column's header once a filter is applied (sample 2)

Dim h as N
Dim oTree as P
Dim var_Appearance as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Column2 as local
Dim var_Columns as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
var_Appearance = oTree.VisualAppearance
	var_Appearance.Add(1,"gBFLBCJwBAEHhEJAAEhABO8GACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwQgmNYDSBMcbwSAsXRYFocJ5gOT6AjKBA2UclEZpajiTY3ABUEgUS5oOBIACqariaQJAAiCRQGiYZyHKaRSwPBKFYDIIjbJheTIDChNVxUcDENQjJqLBIDRzbarye59YBfeBXdgmA4LQbDMRwNgMMQTDqKYbkOQZHbeGKAWTMEZzJj8cxTEqIaBhGTLfojSZMS7UGK1LLtMyHI6kP7sOiLfi2W4/W7XV72F79TzXIa2ZBuO57bhnAZ/VzGNj4PRNezfRqicjsGxcZwXg+TpQj0ew6gSOw7wSbozjsfYXi8PwMnSc52leHotl+MxjmoXh2nybxOH+SQtnYXx+D2P4vGMB56hQf5PCgBYeDwYBCEo1xggebgKH6IIDBYBgkiAQ5FgYPAhEIRgWGqDBoC4GoCiGCBYhGBQPAWdIQp0eIUiWCZigiJgqgqYpIioJQhmIMhBH0NxjEMag2g2Y4ImYOoOmOSJeDQNxXlOLR3ECUAQICA=")
	var_Appearance.Add(2,"gBFLBCJwBAEHhEJAAEhABgsHQAAYAQGKIcBiAKBQAGaAoDDYNwwQwAAxDAKcEwsACEIrjKCRShyCYZRrGUgRCKQahLEiTIhGUYJHgmK4tRoAUgxWCEExrAaQJjjeCQFi6LAtDhPMByfQEZQIGyjkgjNLUcSbG4AKgkCiXfpUAJVP7FcgSABEEigNIxToOU4jFgeCYLQKQRK2RC9GQGFCbLhpYKIahGTYWVheN5XXblez9P7ABQwKCcAwXBp7YIKAT4XBIdYdQ7IL4xGA0AJPFoJC7mOQ5XiYAIBAZ/RL0LCcbxHHafVboQj6JouD5PUDVNY1XBdPynI6CbLhWy6Dq4UZzPwzeBifSHfDjRoJcCZe71KY3GwSEboNA6Kp+QBHAmZoZjSPYIEiF47lOLJVnuYofBwJJHmaQoYj0MIRHeM4/m6cJ8B+fpBHQJ5SGKPYYH8OYMk+P5Bn4fxaAYZAvEIX4RgUWBGgCCAmAqApgkgNgOgMEYlGASoEkQeBWBaBZhggZgagaYRoEwShWA6NZZAMQBAICA==")
oTree.Template = "Background(0) = 16777216" // oTree.Background(0) = 16777216
oTree.Template = "Background(41) = 33554432" // oTree.Background(41) = 33554432
oTree.Template = "Background(32) = -1" // oTree.Background(32) = -1
oTree.HeaderHeight = 28
oTree.BackColorHeader = 16777215
oTree.DrawGridLines = -2
oTree.HeaderVisible = .t.
var_Columns = oTree.Columns
	' var_Columns.Add("C1").DisplayFilterButton = .t.
	var_Column = var_Columns.Add("C1")
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.DisplayFilterButton = True"

	var_Column1 = var_Columns.Add("C2")
		var_Column1.DisplayFilterButton = .t.
		var_Column1.Filter = "Item 2"
		var_Column1.FilterType = 240
	' var_Columns.Add("C3").DisplayFilterButton = .t.
	var_Column2 = var_Columns.Add("C3")
	oTree.TemplateDef = "dim var_Column2"
	oTree.TemplateDef = var_Column2
	oTree.Template = "var_Column2.DisplayFilterButton = True"

var_Items = oTree.Items
	h = var_Items.AddItem("Item 1")
	' var_Items.CellCaption(h,1) = "Item 2"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,1) = `Item 2`"

	' var_Items.CellCaption(h,2) = "Item 3"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,2) = `Item 3`"

	h = var_Items.AddItem("Item 4")
	' var_Items.CellCaption(h,1) = "Item 5"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,1) = `Item 5`"

	' var_Items.CellCaption(h,2) = "Item 6"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,2) = `Item 6`"

oTree.ApplyFilter()
oTree.EndUpdate()

708
How can I make the expand/collapse glyphs DPI aware

Dim h as N
Dim oTree as P
Dim size as 
Dim var_Appearance as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
size = 2
oTree.BeginUpdate()
var_Appearance = oTree.VisualAppearance
	var_Appearance.Add(3,"gBFLBCJwBAEHhEJAAEhEGAUHQAAYAQGKIcBiAKBQAGaAoDDYOA4QwAAxDAKcEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBRfIUEghGyNZjgNzQcCQAI8T5IUgARBJIDSMY6DpOIxYHgmC4DEITNLxOK0EhRHCBZrgOCAYhqEY1Ro+dhPFYjVTMdK0LRtKy7Mq2aJmOpZDxWE7dZKpO5fbxXS67cr2fp/YBed4rfa7KTlOBKcRQRBEFQPDqPZBkORZHh2FoLRJKbgtHJmHYNQWhVyYBbNCyTI6lahpeuHBx1QaWWxjbCMEr6bpoWLbFi3Ha1UzrPa8b5vSw7Gr+HzYQTHGPXGqaYJdZrnea6B7+U5XUJrnSOZciYHwhAeR5HDK+JVGqKRRmScx5HyfRei+H5bmmcp4Fi8o/CGGJKGQKZUGoFQigUPIiCeSZXnyHB6l0SAJn8JxfkIeZ5CgXxjCCAhyB8QgIlAM4MlKAIcCaIBIGYGoGGEYhqBMMxgnICgRDUDQjESGwmAkWBuCqBoiHIVgkDQYgYESWg2E0YhohcJQigITg3CQSRyEyEYGGOWJwhQJD4FiFIMk0aJFGsIBkkOBJeDc+AchYJwJgIWhSgYZQpFIVoVGOGQ4l2EwIBWMhgDmDhThCEwkAiaJchKDhjhgZhsCUY4iFCEoZkiaYQmSGAWhWQhgDuDpTjCDQiEgchAg0IpJBoDoFiEKBqCaCAimgIguH8IZnkPUhcBcJg+hGJZnloYJsiaKZKGa24YnWSR0CkKhCA2CxlCqColhAYpqEKER0DqVZ0A0ASAgA==")
	var_Appearance.Add(4,"gBFLBCJwBAEHhEJAAEhABAQCg6AADACAxRDgMQBQKAAzQFAYbBwHCGAAGIYBTgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACjeQYJBCNYbTJAbqhYIgAR3HqQZABCCSQKkYx0HScRiwPBMFwGIQmaaicZoJCiN4DTZAcIBRDUIxpDR9bBeKw3KqVaZnWhaNpWXZlTzKdSxXisF67RZSdi/XgvF5XXblez9P69LwXe5mUrGbyVYghCCIKgeG4dR7IMhyLDcKQXCCVW7aGSsOwbAqAXpdGAXTQdDyLJKnaZqOi6BjjA4rNbHGIYJb1XTRMa1LJuG5LJrOeZ3Xre4BLfh1VoFRpjWIYNY1QS7TLOczzfRdDxTiGVpkjCeJoD4Ng1hSRxiisVRKg8D4PkWZJznmPQ+F8Xx5guWpjHGWYMiYQodEaIRSCgU5KCSeh3naHB/iAAh9n8fwfgIeZ1CgXwjCCAhxl8AgIlAM4MlKAIcCaD54FYFoFmGCBmBaBIJigPJNgKSAoDSVC+BIbIYCUYYoiYKoJgkWIMlGCAglMaJZDWCYiFyFIJkkOJYhEJc7G4PYPCOaJshQJBjgiVIUgyDRokEaggGSQ4El4N1CBiFgnAmAhaFKFZlFkShUhWJRYmITg3GSQgFGuGBOGOFJkCSSQCDoNgkiOCY0hUJJmmmQhvhqZtYmUOQmBWIRvhgTpjjSbAjEiEgchBZgyEaBIhigWgegqIhIjoDILiACB5nTL5WnWRYOiSKYJnqGQ7CmOh2hqJ5OkYORxFyShKhSAxihkOomioY5YiqFIkFyTo1HkAxAEAgIA==")
	var_Appearance.Add(1,oTree.FormatABC("`CP:3 -` + int(value*dpi) + ` -` + int(value*dpi) + ` ` +  int(value*dpi) + ` ` + int(value*dpi)",size))
	var_Appearance.Add(2,oTree.FormatABC("`CP:4 -` + int(value*dpi) + ` -` + int(value*dpi) + ` ` +  int(value*dpi) + ` ` + int(value*dpi)",size))
oTree.LinesAtRoot = 1
oTree.HasButtons = 4
oTree.Template = "HasButtonsCustom(0) = 16777216" // oTree.HasButtonsCustom(.f.) = 16777216
oTree.Template = "HasButtonsCustom(1) = 33554432" // oTree.HasButtonsCustom(.t.) = 33554432
oTree.Columns.Add("Column")
var_Items = oTree.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,,"Child")
oTree.EndUpdate()

707
Is it possible to highlight the column's header once a filter is applied (sample 1)

Dim h as N
Dim oTree as P
Dim var_Appearance as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Column2 as local
Dim var_Columns as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
var_Appearance = oTree.VisualAppearance
	var_Appearance.Add(2,"gBFLBCJwBAEHhEJAAEhABX8GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwYgmNYiTLAcgANJ0WBaGIZJ4gOT5fDKMoEDRRYADFCscwxJybQAqGQKKb+VgAVY/cTyBIAEQSKA0TDOQ5TSKWB4JPZQRBEbZMNBtBIUJquKaqShdQJCU5FdY3Xblez9P7AMBwLFEC4NQ8YNYuPhjR4dRTIMhvVAsUArFh8Zg9GZZFjmDIDT4ydBLTQwcyVIKnP5qOa6XbmPoCQDYKxZHYxPzVDa3axuL76dqCAT7XrXNy1TbNRrzQKfcJqfCbdw2YaDZLOOT3fjuI4hhKaRzFAHJ+jYQ4xHuY4gHuGIXGeExqC8Tp6C+PoEm+G5ImycRgh0XwvDGa5rgOeoejyXwnFeQp2mkf5ClgBB9gCWIYAwfYAEKV58mkdwOggNArgOXY2EWLoDkKOA0mgbhOGgZApgaSBIHWSYHSmbApgYThmESZYJkIeIkgeCpfliLIHgpMIcmUYYYmODAlg2SI4mWfRfGOEguDcCRjFYAJihCQhJBSDoRmONgKEcI4kFCEJhhOVYTmYnAlEAQhWBMJYJGYWoWmWSR2F6F5lnkWAQhUAgpEieRWEuSYkjWGpmkmNhuhuZwJkYcocmaaYkjyEhngnUA6lEFAlAEgI=")
	var_Appearance.Add(1,"CP:2 -8 -4 2 4")
oTree.Template = "Background(0) = 33488638" // oTree.Background(0) = 33488638
oTree.Template = "Background(41) = 16843009" // oTree.Background(41) = 16843009
oTree.Template = "Background(32) = -1" // oTree.Background(32) = -1
oTree.HeaderHeight = 28
oTree.BackColorHeader = 16777215
oTree.DrawGridLines = -2
oTree.HeaderVisible = .t.
var_Columns = oTree.Columns
	' var_Columns.Add("C1").DisplayFilterButton = .t.
	var_Column = var_Columns.Add("C1")
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.DisplayFilterButton = True"

	var_Column1 = var_Columns.Add("C2")
		var_Column1.DisplayFilterButton = .t.
		var_Column1.Filter = "Item 2"
		var_Column1.FilterType = 240
	' var_Columns.Add("C3").DisplayFilterButton = .t.
	var_Column2 = var_Columns.Add("C3")
	oTree.TemplateDef = "dim var_Column2"
	oTree.TemplateDef = var_Column2
	oTree.Template = "var_Column2.DisplayFilterButton = True"

var_Items = oTree.Items
	h = var_Items.AddItem("Item 1")
	' var_Items.CellCaption(h,1) = "Item 2"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,1) = `Item 2`"

	' var_Items.CellCaption(h,2) = "Item 3"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,2) = `Item 3`"

	h = var_Items.AddItem("Item 4")
	' var_Items.CellCaption(h,1) = "Item 5"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,1) = `Item 5`"

	' var_Items.CellCaption(h,2) = "Item 6"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,2) = `Item 6`"

oTree.ApplyFilter()
oTree.EndUpdate()

706
Is it possible to show the filterbar on top of the rows

Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.FilterBarPromptVisible = 8192
oTree.HeaderHeight = 24
oTree.FilterBarHeight = oTree.HeaderHeight
oTree.HeaderAppearance = 1
oTree.DrawGridLines = -1
oTree.GridLineStyle = 512
var_Column = oTree.Columns.Add("Column")
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterType = 3
	var_Column.Filter = "B*"
var_Column1 = oTree.Columns.Add("Index")
	var_Column1.FormatColumn = "1 index ``"
	var_Column1.Position = 0
	var_Column1.Width = 48
	var_Column1.AllowSizing = .f.
	var_Column1.SortType = 1
	' var_Column1.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column1"
	oTree.TemplateDef = var_Column1
	oTree.Template = "var_Column1.Def(0) = True"

var_Items = oTree.Items
	var_Items.AddItem("A.1")
	var_Items.AddItem("A.2")
	var_Items.AddItem("B.1")
	var_Items.AddItem("B.2")
	var_Items.AddItem("B.3")
	var_Items.AddItem("C")
oTree.ApplyFilter()
oTree.EndUpdate()

705
DragDrop (with visual effect)

' Occurs when a source component is dropped onto a target component when the source component determines that a drop can occur.
function OLEDragDrop as v (Data  as  OLE::Exontrol.Tree.1::IExDataObject,Effect  as  N,Button  as  N,Shift  as  N,X  as  OLE::Exontrol.Tree.1::OLE_XPOS_PIXELS,Y  as  OLE::Exontrol.Tree.1::OLE_YPOS_PIXELS)
	' SelectItem(InsertItem(i,, Data.GetData(1))) = True
	Dim i as N
	Dim var_Items as P
	oTree = topparent:CONTROL_ACTIVEX1.activex
	i = oTree.ItemFromPoint(-1,-1,c,hit)
	var_Items = oTree.Items
		' var_Items.ExpandItem(i) = .t.
		oTree.TemplateDef = "dim var_Items,i"
		oTree.TemplateDef = var_Items
		oTree.TemplateDef = i
		oTree.Template = "var_Items.ExpandItem(i) = True"

end function

' Occurs when the OLEDrag method is called.
function OLEStartDrag as v (Data  as  OLE::Exontrol.Tree.1::IExDataObject,AllowedEffects  as  N)
	' Data.SetData(Me.Items.CellCaption(FocusItem, 0), 1)
	oTree = topparent:CONTROL_ACTIVEX1.activex
	AllowedEffects = 1
end function

Dim h as N
Dim oTree as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.VisualAppearance.Add(1,"gBFLBCJwBAEHhEJAAEhABPUIQAAYAQGKIcBiAKBQAGaAoDgYN4MAANAwjJBMKgBBCLIxhEYobgmGIaRjEEQDCKYcxHCaIBiGcaIfDEBIeSBHcgRbAcOQHGSZZBhGRJGjuKIbSrLICzBDUcRnGwAKQoaaaEomHwyAZOYwDAIoWhpKKCKjqWJKNb+XgAAJTES0RRVRTNAZ1YghGAQgIA==")
oTree.Template = "Background(96) = 16777216" // oTree.Background(96) = 16777216
oTree.Template = "Background(33) = 0" // oTree.Background(33) = 0
oTree.Template = "Background(34) = 16777215" // oTree.Background(34) = 16777215
oTree.OLEDropMode = 1
oTree.AutoDrag = 196608
oTree.LinesAtRoot = -1
oTree.Indent = 16
oTree.SelBackMode = 1
oTree.Columns.Add("Default")
var_Items = oTree.Items
	h = var_Items.AddItem("Root")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

? "You can:" 
? "A) left-click to drag and drop items between controls (open a new exhelper and run the same sample)" 
? "B) right-click to re-arrange the item position inside the same control" 
? "This sample shows how you can insert the data being dropped as a child of the item being hovered." 

704
DragDrop (with no visual effect, hide item while drag and drop)

' Occurs when a source component is dropped onto a target component when the source component determines that a drop can occur.
function OLEDragDrop as v (Data  as  OLE::Exontrol.Tree.1::IExDataObject,Effect  as  N,Button  as  N,Shift  as  N,X  as  OLE::Exontrol.Tree.1::OLE_XPOS_PIXELS,Y  as  OLE::Exontrol.Tree.1::OLE_YPOS_PIXELS)
	' SelectItem(InsertItem(i,, Data.GetData(1))) = True
	Dim i as N
	Dim var_Items as P
	oTree = topparent:CONTROL_ACTIVEX1.activex
	i = oTree.ItemFromPoint(-1,-1,c,hit)
	var_Items = oTree.Items
		' var_Items.ExpandItem(i) = .t.
		oTree.TemplateDef = "dim var_Items,i"
		oTree.TemplateDef = var_Items
		oTree.TemplateDef = i
		oTree.Template = "var_Items.ExpandItem(i) = True"

end function

' Occurs when the OLEDrag method is called.
function OLEStartDrag as v (Data  as  OLE::Exontrol.Tree.1::IExDataObject,AllowedEffects  as  N)
	' Data.SetData(Me.Items.CellCaption(FocusItem, 0), 1)
	oTree = topparent:CONTROL_ACTIVEX1.activex
	AllowedEffects = 1
end function

Dim h as N
Dim oTree as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.Template = "Background(33) = 0" // oTree.Background(33) = 0
oTree.Template = "Background(34) = 16777215" // oTree.Background(34) = 16777215
oTree.OLEDropMode = 1
oTree.AutoDrag = 196608
oTree.LinesAtRoot = -1
oTree.Indent = 16
oTree.SelBackMode = 1
oTree.Columns.Add("Default")
var_Items = oTree.Items
	h = var_Items.AddItem("Root")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

? "You can:" 
? "A) left-click to drag and drop items between controls (open a new exhelper and run the same sample)" 
? "B) right-click to re-arrange the item position inside the same control" 
? "This sample shows how you can insert the data being dropped as a child of the item being hovered." 

703
DragDrop

' Occurs when a source component is dropped onto a target component when the source component determines that a drop can occur.
function OLEDragDrop as v (Data  as  OLE::Exontrol.Tree.1::IExDataObject,Effect  as  N,Button  as  N,Shift  as  N,X  as  OLE::Exontrol.Tree.1::OLE_XPOS_PIXELS,Y  as  OLE::Exontrol.Tree.1::OLE_YPOS_PIXELS)
	' SelectItem(InsertItem(i,, Data.GetData(1))) = True
	Dim i as N
	Dim var_Items as P
	oTree = topparent:CONTROL_ACTIVEX1.activex
	i = oTree.ItemFromPoint(-1,-1,c,hit)
	var_Items = oTree.Items
		' var_Items.ExpandItem(i) = .t.
		oTree.TemplateDef = "dim var_Items,i"
		oTree.TemplateDef = var_Items
		oTree.TemplateDef = i
		oTree.Template = "var_Items.ExpandItem(i) = True"

end function

' Occurs when the OLEDrag method is called.
function OLEStartDrag as v (Data  as  OLE::Exontrol.Tree.1::IExDataObject,AllowedEffects  as  N)
	' Data.SetData(Me.Items.CellCaption(FocusItem, 0), 1)
	oTree = topparent:CONTROL_ACTIVEX1.activex
	AllowedEffects = 1
end function

Dim h as N
Dim oTree as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.OLEDropMode = 1
oTree.AutoDrag = 196608
oTree.LinesAtRoot = -1
oTree.Indent = 16
oTree.SelBackMode = 1
oTree.Columns.Add("Default")
var_Items = oTree.Items
	h = var_Items.AddItem("Root")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

? "You can:" 
? "A) left-click to drag and drop items between controls (open a new exhelper and run the same sample)" 
? "B) right-click to re-arrange the item position inside the same control" 
? "This sample shows how you can insert the data being dropped as a child of the item being hovered." 

702
Is there anyway to stop the header changing colour when the mouse hovers/moves across the column header (non-clickable)

Dim oTree as P
Dim var_Column as P
Dim var_Columns as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.HeaderAppearance = 4
var_Columns = oTree.Columns
	var_Columns.Add("Item")
	var_Column = var_Columns.Add("Pos")
		var_Column.Position = 0
		var_Column.Width = 32
		var_Column.AllowSizing = .f.
		var_Column.FormatColumn = "1 index ``"
		var_Column.AllowSort = .f.
		var_Column.AllowDragging = .f.
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.EndUpdate()

701
Is there anyway to stop the header changing colour when the mouse hovers/moves across the column header

Dim oTree as P
Dim var_Column as P
Dim var_Columns as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.HeaderAppearance = 4
oTree.Template = "Background(32) = -1" // oTree.Background(32) = -1
var_Columns = oTree.Columns
	var_Columns.Add("Item")
	var_Column = var_Columns.Add("Pos")
		var_Column.Position = 0
		var_Column.Width = 32
		var_Column.AllowSizing = .f.
		var_Column.FormatColumn = "1 index ``"
		var_Column.AllowSort = .f.
		var_Column.AllowDragging = .f.
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.EndUpdate()

700
Is it possible to display the header using multiple lines(sample 1)

' Fired after a new column has been added.
function AddColumn as v (Column  as  OLE::Exontrol.Tree.1::IColumn)
	' Column.Def(52) = 4
	' Column.Def(53) = 4
	oTree = topparent:CONTROL_ACTIVEX1.activex
end function

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.HeaderHeight = 36
oTree.HeaderAppearance = 1
oTree.HeaderSingleLine = .f.
var_Columns = oTree.Columns
	var_Columns.Add("Column")
	' var_Columns.Add("This is a bit of text that should break the header").Width = 128
	var_Column = var_Columns.Add("This is a bit of text that should break the header")
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Width = 128"

	' var_Columns.Add("This is a bit of text that should break the header").Width = 96
	var_Column1 = var_Columns.Add("This is a bit of text that should break the header")
	oTree.TemplateDef = "dim var_Column1"
	oTree.TemplateDef = var_Column1
	oTree.Template = "var_Column1.Width = 96"

oTree.EndUpdate()

699
Is it possible to display the header using multiple lines(sample 2)

' Fired after a new column has been added.
function AddColumn as v (Column  as  OLE::Exontrol.Tree.1::IColumn)
	' Column.Def(52) = 4
	' Column.Def(53) = 4
	oTree = topparent:CONTROL_ACTIVEX1.activex
end function

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Column2 as local
Dim var_Columns as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.HeaderHeight = 36
oTree.HeaderAppearance = 1
var_Columns = oTree.Columns
	var_Columns.Add("Column")
	' var_Columns.Add("C1").HTMLCaption = "<b>C<off 4>1</b><br>left"
	var_Column = var_Columns.Add("C1")
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.HTMLCaption = `<b>C<off 4>1</b><br>left`"

	' var_Columns.Add("C2").HTMLCaption = "<c><b>C<off 4>2</b><br><c>center"
	var_Column1 = var_Columns.Add("C2")
	oTree.TemplateDef = "dim var_Column1"
	oTree.TemplateDef = var_Column1
	oTree.Template = "var_Column1.HTMLCaption = `<c><b>C<off 4>2</b><br><c>center`"

	' var_Columns.Add("C3").HTMLCaption = "<r><b>C<off 4>3</b><br><r>right"
	var_Column2 = var_Columns.Add("C3")
	oTree.TemplateDef = "dim var_Column2"
	oTree.TemplateDef = var_Column2
	oTree.Template = "var_Column2.HTMLCaption = `<r><b>C<off 4>3</b><br><r>right`"

oTree.EndUpdate()

698
Is it possible to exclude the parent/child items when do the filtering, so to include only items that match the filter without any indentation

' Notifies your application that the filter is changed.
function FilterChange as v ()
	oTree = topparent:CONTROL_ACTIVEX1.activex
	oTree.Indent = oTree.FormatABC("value > 0 ? 18 : 0",.Items.MatchItemCount)
end function

Dim h as N
Dim h2 as N
Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Columns as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
oTree.Indent = 18
oTree.FilterInclude = 4
oTree.DrawGridLines = 2
oTree.HeaderAppearance = 1
var_Columns = oTree.Columns
	var_Column = var_Columns.Add("Column")
		var_Column.DisplayFilterButton = .t.
		var_Column.FilterType = 240
		var_Column.FilterList = 256
		var_Column.Filter = "C1"
	var_Column1 = var_Columns.Add("Pos")
		var_Column1.FormatColumn = "1 rindex ``"
		var_Column1.Position = 0
		var_Column1.AllowSizing = .f.
		var_Column1.AllowDragging = .f.
var_Items = oTree.Items
	h = var_Items.AddItem("R1")
	h2 = var_Items.InsertItem(h,,"S")
	var_Items.InsertItem(h2,,"C1")
	var_Items.InsertItem(h2,,"C2")
	var_Items.InsertItem(h,,"C1")
	var_Items.InsertItem(h,,"C2")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("R2")
	var_Items.InsertItem(h,,"C1")
	var_Items.InsertItem(h,,"C2")
oTree.ApplyFilter()
oTree.EndUpdate()

697
I would like to display a solid line between "root" items, and dotted lines (default) between child items. How can I do that

Dim h as N
Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_ConditionalFormat as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
oTree.DrawGridLines = 1
oTree.GridLineStyle = 512
oTree.VisualAppearance.Add(1,"gBFLBCJwBAEHhEJAAEhABMsIQAAYAQGKIcBiAKBQAGaAoDgYN4MAANAwjJBMKgBBCLIxhEYobgmGIXRpFMbxAKQahLEiTIgGUYJHgmK4tQLHb7zGAABRDDSOIDnGQJXhaI4JQSMMQDGLAZxVFiPRhAWLpBh+PQATrOdLUfSjVwhBKAQEBA==")
var_Column = oTree.Columns.Add("Default")
	' var_Column.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(0) = True"

	var_Column.PartialCheck = .t.
var_Column1 = oTree.Columns.Add("Position")
	var_Column1.FormatColumn = "((1 rindex ``) contains `.`) = 0"
	var_Column1.Visible = .f.
var_ConditionalFormat = oTree.ConditionalFormats.Add("%C1")
	var_ConditionalFormat.BackColor = 31514848
var_Items = oTree.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	var_Items.InsertItem(h,,"Child 3")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	h = var_Items.AddItem("Root 3")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
oTree.EndUpdate()

696
I can not center or align the cell's caption and icon, when it displays the hierarchy

Dim h as N
Dim hChild as N
Dim oTree as P
Dim var_Column as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
var_Column = oTree.Columns.Add("Tasks")
	' var_Column.Def(17) = 1
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(17) = 1"

oTree.HeaderVisible = .t.
var_Items = oTree.Items
	h = var_Items.AddItem("Project")
	hChild = var_Items.InsertItem(h,,"<img>1</img> Task (left)")
	hChild = var_Items.InsertItem(h,,"<c><img>2</img> Task (center)")
	hChild = var_Items.InsertItem(h,,"<r>Task (right) <img>3</img>")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

oTree.EndUpdate()

695
How do I set an extra data for each item
' Occurs when the user moves the mouse.
function MouseMove as v (Button  as  N,Shift  as  N,X  as  OLE::Exontrol.Tree.1::OLE_XPOS_PIXELS,Y  as  OLE::Exontrol.Tree.1::OLE_YPOS_PIXELS)
	Dim i as N
	oTree = topparent:CONTROL_ACTIVEX1.activex
	i = oTree.ItemFromPoint(-1,-1,c,hit)
	? i 
	? oTree.Items.ItemData(i) 
end function

Dim oTree as P
Dim var_Items as P
Dim var_Items1 as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.ColumnAutoResize = .t.
oTree.Columns.Add("Default")
var_Items = oTree.Items
	' var_Items.ItemData(var_Items.AddItem("method 1")) = "your extra data of method 1"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.ItemData(AddItem(`method 1`)) = `your extra data of method 1`"

	var_Items.InsertItem(0,"your extra data of method 2","method 2")
var_Items1 = oTree.Items
	var_Items1.DefaultItem = var_Items1.AddItem("method 3")
	' var_Items1.ItemData(0) = "your extra data of method 3"
	oTree.TemplateDef = "dim var_Items1"
	oTree.TemplateDef = var_Items1
	oTree.Template = "var_Items1.ItemData(0) = `your extra data of method 3`"

oTree.EndUpdate()

694
I do not like to specify the item padding for every column I add. The question is how can I do it automatically

Dim oTree as P
Dim var_Column as P
Dim var_Columns as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.AttachTemplate("handle AddColumn(Column){Column{Def(48)=8;Def(49)=8;AllowDragging=False;AllowSizing = True}}")
oTree.HeaderAppearance = 4
oTree.DrawGridLines = -1
oTree.GridLineStyle = 32
var_Columns = oTree.Columns
	var_Columns.Add("Item")
	var_Column = var_Columns.Add("Pos")
		var_Column.Position = 0
		var_Column.Width = 32
		var_Column.AllowSizing = .f.
		var_Column.FormatColumn = "1 index ``"
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.EndUpdate()

693
Can I sort the column by check-state

Dim oTree as P
Dim var_Column as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
var_Column = oTree.Columns.Add("Check")
	' var_Column.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(0) = True"

	var_Column.SortType = 32
var_Items = oTree.Items
	var_Items.AddItem()
	' var_Items.CellState(var_Items.AddItem(),0) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(),0) = 1"

	' var_Items.CellState(var_Items.AddItem(),0) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(),0) = 1"

	var_Items.AddItem()
oTree.Columns.Item(0).SortOrder = 1
oTree.EndUpdate()

692
Can I sort the column by image

Dim oTree as P
Dim var_Column as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
var_Column = oTree.Columns.Add("Image")
	var_Column.SortType = 48
var_Items = oTree.Items
	' var_Items.CellImage(var_Items.AddItem(),0) = 3
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellImage(AddItem(),0) = 3"

	var_Items.AddItem()
	' var_Items.CellImage(var_Items.AddItem(),0) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellImage(AddItem(),0) = 1"

	' var_Items.CellImage(var_Items.AddItem(),0) = 2
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellImage(AddItem(),0) = 2"

oTree.Columns.Item(0).SortOrder = 1
oTree.EndUpdate()

691
How can I display UNICODE characters

Dim oTree as P
Dim var_Column as local
Dim var_Items as P
Dim var_StdFont as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
var_StdFont = oTree.Font
	var_StdFont.Name = "Arial Unicode"
	var_StdFont.Size = 22
oTree.HeaderVisible = .f.
oTree.DefaultItemHeight = 48
' oTree.Columns.Add("").Def(17) = 1
var_Column = oTree.Columns.Add("")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.Def(17) = 1"

var_Items = oTree.Items
	var_Items.AddItem("Ӓӓ")
	var_Items.AddItem("ᦜᦝ;ᦞ")
	var_Items.AddItem("ɮɭ;ɯ")
	var_Items.AddItem("勳勴勵勶")
	' var_Items.FormatCell(var_Items.AddItem(oTree.Version),0) = "(value lfind `UNICODE`) < 0 ? `<fgcolor=FF0000><b>!UNICODE!</b> version</fgcolor> required: ` + value : `` "
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.FormatCell(AddItem(Me.Version),0) = `(value lfind ``UNICODE``) < 0 ? ``<fgcolor=FF0000><b>!UNICODE!</b> version</fgcolor> required: `` + value : ```` `"

oTree.EndUpdate()

690
How do I display the position of the item with 0-padding
Dim oTree as P
Dim var_Column as local
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
' oTree.Columns.Add("Items").FormatColumn = "((1 apos ``) lpad `00`) + `. `  + value"
var_Column = oTree.Columns.Add("Items")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.FormatColumn = `((1 apos ````) lpad ``00``) + ``. ``  + value`"

var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
	var_Items.AddItem("Item D")
oTree.EndUpdate()

689
Can't get the +/- to be displayed on a divider item. What else can I do

Dim h as N
Dim oTree as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
oTree.DrawGridLines = -1
oTree.TreeColumnIndex = 0
oTree.MarkSearchColumn = .f.
oTree.FullRowSelect = .f.
oTree.HeaderAppearance = -1 'fffffff8 + Bump + Sunken
var_Columns = oTree.Columns
	' var_Columns.Add("C1").Width = 32
	var_Column = var_Columns.Add("C1")
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Width = 32"

	' var_Columns.Add("C2").FormatColumn = "1 index ``"
	var_Column1 = var_Columns.Add("C2")
	oTree.TemplateDef = "dim var_Column1"
	oTree.TemplateDef = var_Column1
	oTree.Template = "var_Column1.FormatColumn = `1 index `````"

var_Items = oTree.Items
	h = var_Items.AddItem("Cell 1")
	' var_Items.CellSingleLine(h,1) = .f.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellSingleLine(h,1) = False"

	h = var_Items.AddItem("This is bit of text merges all cells in the item (divider shows no +/-)")
	' var_Items.ItemDivider(h) = 0
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ItemDivider(h) = 0"

	' var_Items.ItemBackColor(h) = 15790320
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ItemBackColor(h) = 15790320"

	' var_Items.ItemDividerLine(h) = 0
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ItemDividerLine(h) = 0"

	' var_Items.CellHAlignment(h,0) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellHAlignment(h,0) = 1"

	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("Cell 3")
	h = var_Items.AddItem("This is bit of text merges all cells in the item (merge shows +/-)")
	' var_Items.ItemBackColor(h) = 15790320
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ItemBackColor(h) = 15790320"

	' var_Items.CellMerge(h,0) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellMerge(h,0) = 1"

	var_Items.InsertItem(h,,"Child 3")
	var_Items.InsertItem(h,,"Child 4")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

oTree.EndUpdate()

688
ADODB Requery sample

' Fired after the user clicks on the cell of button type. 
function CellButtonClick as v (Item  as  OLE::Exontrol.Tree.1::HITEM,ColIndex  as  N)
	Dim cmd as P
	oTree = topparent:CONTROL_ACTIVEX1.activex
	cmd = OLE.Create("ADODB.Command")
		cmd.ActiveConnection = oTree.DataSource.ActiveConnection
		cmd.CommandText = "INSERT INTO Orders (EmployeeID) VALUES(12345)"
		cmd.CommandType = 1
		cmd.Execute()
	oTree.DataSource.Requery()
end function

Dim h as N
Dim oTree as P
Dim rs as P
Dim var_ConditionalFormat as local
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.HeaderAppearance = 4
oTree.ColumnAutoResize = .f.
rs = OLE.Create("ADODB.Recordset")
	rs.Open("Select * From Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExTree\Sample\Access\sample.accdb",1,3)
oTree.DataSource = rs
' oTree.ConditionalFormats.Add("%1=12345").BackColor = 15790320
var_ConditionalFormat = oTree.ConditionalFormats.Add("%1=12345")
oTree.TemplateDef = "dim var_ConditionalFormat"
oTree.TemplateDef = var_ConditionalFormat
oTree.Template = "var_ConditionalFormat.BackColor = 15790320"

var_Items = oTree.Items
	' var_Items.LockedItemCount(0) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.LockedItemCount(0) = 1"

	h = var_Items.LockedItem(0,0)
	' var_Items.ItemDivider(h) = 0
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ItemDivider(h) = 0"

	' var_Items.CellHasButton(h,0) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellHasButton(h,0) = True"

	' var_Items.CellCaption(h,0) = "Requery (add a new record, using ADODB.Command)"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,0) = `Requery (add a new record, using ADODB.Command)`"

	' var_Items.CellHAlignment(h,0) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellHAlignment(h,0) = 1"

oTree.EndUpdate()

687
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeCheckColumns

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.ColumnAutoResize = .f.
oTree.HeaderAppearance = 4
var_Columns = oTree.Columns
	var_Columns.Add("City")
	' var_Columns.Add("Start").Visible = .f.
	var_Column = var_Columns.Add("Start")
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Visible = False"

	' var_Columns.Add("End").Visible = .f.
	var_Column1 = var_Columns.Add("End")
	oTree.TemplateDef = "dim var_Column1"
	oTree.TemplateDef = var_Column1
	oTree.Template = "var_Column1.Visible = False"

oTree.Template = "Description(26) = `Show/Hide`" // oTree.Description(26) = "Show/Hide"
oTree.ColumnsFloatBarSortOrder = 1
oTree.ColumnsFloatBarVisible = 2
oTree.EndUpdate()

686
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeHiddenColumn

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.ColumnAutoResize = .f.
oTree.HeaderAppearance = 4
var_Columns = oTree.Columns
	var_Columns.Add("City")
	' var_Columns.Add("Start").Visible = .f.
	var_Column = var_Columns.Add("Start")
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Visible = False"

	' var_Columns.Add("End").Visible = .f.
	var_Column1 = var_Columns.Add("End")
	oTree.TemplateDef = "dim var_Column1"
	oTree.TemplateDef = var_Column1
	oTree.Template = "var_Column1.Visible = False"

oTree.Template = "Description(26) = `Show`" // oTree.Description(26) = "Show"
oTree.ColumnsFloatBarVisible = -1
oTree.ColumnsFloatBarSortOrder = 1
oTree.EndUpdate()

685
Type of wraps the cell's caption support (Sample 2)

Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Columns as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.HeaderSingleLine = .f.
oTree.HeaderHeight = 36
oTree.DrawGridLines = -2
oTree.ColumnAutoResize = .f.
oTree.ScrollBySingleLine = .t.
var_Columns = oTree.Columns
	var_Column = var_Columns.Add("Single-Line (exCaptionSingleLine)")
		var_Column.Width = 96
		' var_Column.Def(17) = 1
		oTree.TemplateDef = "dim var_Column"
		oTree.TemplateDef = var_Column
		oTree.Template = "var_Column.Def(17) = 1"

		' var_Column.Def(16) = -1
		oTree.TemplateDef = "dim var_Column"
		oTree.TemplateDef = var_Column
		oTree.Template = "var_Column.Def(16) = -1"

	var_Column1 = var_Columns.Add("Word-Wrap (exCaptionWordWrap)")
		var_Column1.Width = 96
		' var_Column1.Def(17) = 1
		oTree.TemplateDef = "dim var_Column1"
		oTree.TemplateDef = var_Column1
		oTree.Template = "var_Column1.Def(17) = 1"

		' var_Column1.Def(16) = 0
		oTree.TemplateDef = "dim var_Column1"
		oTree.TemplateDef = var_Column1
		oTree.Template = "var_Column1.Def(16) = 0"

		var_Column1.FormatColumn = "%0"
	var_Column2 = var_Columns.Add("Break-Wrap (exCaptionBreakWrap)")
		var_Column2.Width = 96
		' var_Column2.Def(17) = 1
		oTree.TemplateDef = "dim var_Column2"
		oTree.TemplateDef = var_Column2
		oTree.Template = "var_Column2.Def(17) = 1"

		' var_Column2.Def(16) = 1
		oTree.TemplateDef = "dim var_Column2"
		oTree.TemplateDef = var_Column2
		oTree.Template = "var_Column2.Def(16) = 1"

		var_Column2.FormatColumn = "%0"
var_Items = oTree.Items
	var_Items.AddItem("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.")
	var_Items.AddItem("This is the <b>first</b> line.\r\nThis is the <b>second</b> line.\r\nThis is the <b>third</b> line.")
oTree.EndUpdate()

684
Type of wraps the cell's caption support (Sample 1)

Dim h as N
Dim oTree as P
Dim var_Column as local
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.HeaderSingleLine = .f.
oTree.HeaderHeight = 36
oTree.DrawGridLines = -2
oTree.ColumnAutoResize = .f.
oTree.ScrollBySingleLine = .t.
' oTree.Columns.Add("Default").Width = 128
var_Column = oTree.Columns.Add("Default")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.Width = 128"

var_Items = oTree.Items
	h = var_Items.AddItem("This is the first line.\r\nThis is the second line.\r\nThis is the third line.")
	h = var_Items.AddItem("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.")
	' var_Items.CellCaptionFormat(h,0) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaptionFormat(h,0) = 1"

	h = var_Items.AddItem("This is the first line.\r\nThis is the second line.\r\nThis is the third line.")
	' var_Items.CellSingleLine(h,0) = 0
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellSingleLine(h,0) = 0"

	h = var_Items.AddItem("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.")
	' var_Items.CellCaptionFormat(h,0) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaptionFormat(h,0) = 1"

	' var_Items.CellSingleLine(h,0) = 0
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellSingleLine(h,0) = 0"

	h = var_Items.AddItem("This is the first line.\r\nThis is the second line.\r\nThis is the third line.")
	' var_Items.CellSingleLine(h,0) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellSingleLine(h,0) = 1"

	h = var_Items.AddItem("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.")
	' var_Items.CellCaptionFormat(h,0) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaptionFormat(h,0) = 1"

	' var_Items.CellSingleLine(h,0) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellSingleLine(h,0) = 1"

oTree.EndUpdate()

683
Can I break the cell's caption using the line break <br> or \r\n (Sample 2)

Dim oTree as P
Dim var_Column as local
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.DrawGridLines = -2
oTree.ColumnAutoResize = .f.
oTree.ScrollBySingleLine = .t.
' oTree.Columns.Add("Default").Width = 128
var_Column = oTree.Columns.Add("Default")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.Width = 128"

var_Items = oTree.Items
	' var_Items.CellSingleLine(var_Items.AddItem("This is the first line.\r\nThis is the second line.\r\nThis is the third line."),0) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellSingleLine(AddItem(`This is the first line.\r\nThis is the second line.\r\nThis is the third line.`),0) = 1"

	var_Items.AddItem("This is the first line.\r\nThis is the second line.\r\nThis is the third line.")
oTree.EndUpdate()

682
Can I break the cell's caption using the line break <br> or \r\n (Sample 1)

Dim oTree as P
Dim var_Column as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.DrawGridLines = -2
oTree.ColumnAutoResize = .f.
oTree.ScrollBySingleLine = .t.
var_Column = oTree.Columns.Add("Default")
	var_Column.Width = 128
	' var_Column.Def(16) = 1
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(16) = 1"

var_Items = oTree.Items
	var_Items.AddItem("This is the first line.\r\nThis is the second line.\r\nThis is the third line.")
	var_Items.AddItem("This is the first line.\r\nThis is the second line.\r\nThis is the third line.")
oTree.EndUpdate()

681
How can I change the visual appearance/color of the Filter For ... field

Dim h as N
Dim oTree as P
Dim var_Column as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
oTree.BackColorHeader = 1
oTree.ForeColorHeader = 16777215
oTree.Template = "Background(26) = BackColorHeader" // oTree.Background(26) = oTree.BackColorHeader
oTree.Template = "Background(27) = ForeColorHeader" // oTree.Background(27) = oTree.ForeColorHeader
oTree.Template = "Background(0) = 15790320" // oTree.Background(0) = 15790320
oTree.Template = "Background(32) = -1" // oTree.Background(32) = -1
oTree.HeaderAppearance = 5
var_Column = oTree.Columns.Add("Items")
	var_Column.FilterOnType = .t.
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 2
var_Items = oTree.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
oTree.EndUpdate()

680
How can I display the cell's caption without spaces on both sides

Dim oTree as P
Dim var_Column as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.ColumnAutoResize = .t.
var_Column = oTree.Columns.Add("Default")
	' var_Column.Def(17) = 1
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(17) = 1"

	var_Column.FormatColumn = "((trim(value) replace `   ` with ` `) replace `  ` with ` `) replace ` ` with `<bgcolor=FF0000> </bgcolor>`"
var_Items = oTree.Items
	var_Items.AddItem("")
	var_Items.AddItem("Item A")
	var_Items.AddItem("    Item B")
	var_Items.AddItem("        Item   C    ")
oTree.EndUpdate()

679
How can I highlight the spaces within the column (sample 2)

Dim oTree as P
Dim var_Column as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.ColumnAutoResize = .t.
var_Column = oTree.Columns.Add("Default")
	' var_Column.Def(17) = 1
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(17) = 1"

	var_Column.FormatColumn = "`'` + ( value replace ` ` with `_` ) + `'`"
var_Items = oTree.Items
	var_Items.AddItem("")
	var_Items.AddItem("Item A")
	var_Items.AddItem("    Item B")
	var_Items.AddItem("        Item   C    ")
oTree.EndUpdate()

678
How can I highlight the spaces within the column (sample 1)

Dim oTree as P
Dim var_Column as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.ColumnAutoResize = .t.
var_Column = oTree.Columns.Add("Default")
	' var_Column.Def(17) = 1
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(17) = 1"

	var_Column.FormatColumn = "len(value) = 0 ? `<bgcolor=FF0000> </bgcolor>` : ( value replace ` ` with `<bgcolor=FF0000> </bgcolor>` )"
var_Items = oTree.Items
	var_Items.AddItem("")
	var_Items.AddItem("Item A")
	var_Items.AddItem("    Item B")
	var_Items.AddItem("        Item   C    ")
oTree.EndUpdate()

677
How can I change the visual aspect of the drop down filter-calendar

Dim oTree as P
Dim var_Column as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.Template = "Background(26) = 65536" // oTree.Background(26) = 65536
oTree.Template = "Background(27) = 16777215" // oTree.Background(27) = 16777215
oTree.Template = "Background(12) = 16777215" // oTree.Background(12) = 16777215
oTree.Template = "Background(8) = Background(26)" // oTree.Background(8) = oTree.Background(26)
oTree.Template = "Background(11) = 8421504" // oTree.Background(11) = 8421504
var_Column = oTree.Columns.Add("Date")
	var_Column.FilterType = 4
	var_Column.DisplayFilterButton = .t.
	var_Column.DisplayFilterDate = .t.
	var_Column.DisplayFilterPattern = .f.
oTree.EndUpdate()

676
Export Data in HTML format

Dim h as N
Dim oTree as P
Dim sFile as 
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Column4 as P
Dim var_Column5 as P
Dim var_Column6 as P
Dim var_Columns as P
Dim var_ConditionalFormat as local
Dim var_ConditionalFormat1 as P
Dim var_ConditionalFormat2 as P
Dim var_ConditionalFormats as P
Dim var_Items as P
Dim var_ShellBrowserWindow as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
oTree.BackColorAlternate = 15790320
oTree.DrawGridLines = -1
oTree.HeaderAppearance = 4
oTree.Template = "Description(11) = FormatABC(```<fgcolor=808080> `` + value + `` </fgcolor>```,Description(11))" // oTree.Description(11) = oTree.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oTree.Description(11))
oTree.FilterBarCaption = "(( ( value replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))"
oTree.FilterBarPromptVisible = 2579 'exFilterBarCompact + exFilterBarShowCloseIfRequired + exFilterBarSingleLine + exFilterBarVisible + exFilterBarPromptVisible
oTree.FilterBarPromptType = 2
var_ConditionalFormats = oTree.ConditionalFormats
	' var_ConditionalFormats.Add("%0 like `*parent*`","parent").BackColor = 12632256
	var_ConditionalFormat = var_ConditionalFormats.Add("%0 like `*parent*`","parent")
	oTree.TemplateDef = "dim var_ConditionalFormat"
	oTree.TemplateDef = var_ConditionalFormat
	oTree.Template = "var_ConditionalFormat.BackColor = 12632256"

	var_ConditionalFormat1 = var_ConditionalFormats.Add("%0 like `*child*`","child")
		var_ConditionalFormat1.ForeColor = 8421631
		var_ConditionalFormat1.ApplyTo = 0
	var_ConditionalFormat2 = var_ConditionalFormats.Add("%0 like `*B*`","b")
		var_ConditionalFormat2.ForeColor = 16711680
		var_ConditionalFormat2.Bold = .t.
		var_ConditionalFormat2.Italic = .t.
		var_ConditionalFormat2.ApplyTo = 0
var_Columns = oTree.Columns
	var_Column = var_Columns.Add("Value")
		var_Column.Width = 128
		var_Column.HTMLCaption = "<b>VA</b><r>sko"
	var_Column1 = var_Columns.Add("APos")
		var_Column1.FormatColumn = "0 apos ``"
		var_Column1.AllowSort = .f.
		' var_Column1.Def(4) = 15790320
		oTree.TemplateDef = "dim var_Column1"
		oTree.TemplateDef = var_Column1
		oTree.Template = "var_Column1.Def(4) = 15790320"

		' var_Column1.Def(5) = 8421504
		oTree.TemplateDef = "dim var_Column1"
		oTree.TemplateDef = var_Column1
		oTree.Template = "var_Column1.Def(5) = 8421504"

		' var_Column1.Def(8) = var_Column1.Def(5)
		oTree.TemplateDef = "dim var_Column1"
		oTree.TemplateDef = var_Column1
		oTree.Template = "var_Column1.Def(8) = Def(5)"

		var_Column1.Position = 0
	var_Column2 = var_Columns.Add("RPos")
		var_Column2.FormatColumn = "0 rpos ``"
		var_Column2.AllowSort = .f.
		var_Column2.Position = 1
	var_Column3 = var_Columns.Add("Index")
		var_Column3.FormatColumn = "0 index ``"
		var_Column3.DisplayFilterButton = .t.
		var_Column3.FilterList = 256
		var_Column3.Position = 2
	var_Column4 = var_Columns.Add("Data 1")
		var_Column4.FormatColumn = "0 index `A-Z`"
		' var_Column4.Def(0) = .t.
		oTree.TemplateDef = "dim var_Column4"
		oTree.TemplateDef = var_Column4
		oTree.Template = "var_Column4.Def(0) = True"

	var_Column5 = var_Columns.Add("Data 2")
		var_Column5.FormatColumn = "0 index `AB` replace `A` with `<off -4>A</off>`"
		' var_Column5.Def(16) = .f.
		oTree.TemplateDef = "dim var_Column5"
		oTree.TemplateDef = var_Column5
		oTree.Template = "var_Column5.Def(16) = False"

		' var_Column5.Def(17) = 1
		oTree.TemplateDef = "dim var_Column5"
		oTree.TemplateDef = var_Column5
		oTree.Template = "var_Column5.Def(17) = 1"

		' var_Column5.Def(1) = .t.
		oTree.TemplateDef = "dim var_Column5"
		oTree.TemplateDef = var_Column5
		oTree.Template = "var_Column5.Def(1) = True"

	var_Column6 = var_Columns.Add("Data 3")
		var_Column6.FormatColumn = "0 index `CDC` replace `D` with `<b>D</b>`"
		' var_Column6.Def(17) = 1
		oTree.TemplateDef = "dim var_Column6"
		oTree.TemplateDef = var_Column6
		oTree.Template = "var_Column6.Def(17) = 1"

var_Items = oTree.Items
	h = var_Items.AddItem("ParentA")
	var_Items.InsertItem(h,,"Child A")
	var_Items.InsertItem(h,,"Child B")
	' var_Items.CellState(h,4) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellState(h,4) = 1"

	' var_Items.CellBackColor(var_Items.InsertItem(h,,"Child C"),5) = 65280
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellBackColor(InsertItem(h,,`Child C`),5) = 65280"

	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

	var_Items.AddItem("Item A")
	h = var_Items.AddItem("ParentB")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.CellBackColor(var_Items.InsertItem(h,,"Child 3"),5) = 65280
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellBackColor(InsertItem(h,,`Child 3`),5) = 65280"

	' var_Items.CellState(h,5) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellState(h,5) = 1"

	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
	var_Items.AddItem("Item D")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

oTree.EndUpdate()
sFile = "c:/temp/export.html"
oTree.Export(sFile,"vis")
var_ShellBrowserWindow = OLE.Create("InternetExplorer.Application")
	var_ShellBrowserWindow.Navigate2(sFile)

675
Export Data in CSV format

Dim h as N
Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Column4 as P
Dim var_Column5 as P
Dim var_Column6 as P
Dim var_Columns as P
Dim var_ConditionalFormat as local
Dim var_ConditionalFormat1 as P
Dim var_ConditionalFormat2 as P
Dim var_ConditionalFormats as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
oTree.BackColorAlternate = 15790320
oTree.DrawGridLines = -1
oTree.HeaderAppearance = 4
oTree.Template = "Description(11) = FormatABC(```<fgcolor=808080> `` + value + `` </fgcolor>```,Description(11))" // oTree.Description(11) = oTree.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oTree.Description(11))
oTree.FilterBarCaption = "(( ( value replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))"
oTree.FilterBarPromptVisible = 2579 'exFilterBarCompact + exFilterBarShowCloseIfRequired + exFilterBarSingleLine + exFilterBarVisible + exFilterBarPromptVisible
oTree.FilterBarPromptType = 2
var_ConditionalFormats = oTree.ConditionalFormats
	' var_ConditionalFormats.Add("%0 like `*parent*`","parent").BackColor = 12632256
	var_ConditionalFormat = var_ConditionalFormats.Add("%0 like `*parent*`","parent")
	oTree.TemplateDef = "dim var_ConditionalFormat"
	oTree.TemplateDef = var_ConditionalFormat
	oTree.Template = "var_ConditionalFormat.BackColor = 12632256"

	var_ConditionalFormat1 = var_ConditionalFormats.Add("%0 like `*child*`","child")
		var_ConditionalFormat1.ForeColor = 8421631
		var_ConditionalFormat1.ApplyTo = 0
	var_ConditionalFormat2 = var_ConditionalFormats.Add("%0 like `*B*`","b")
		var_ConditionalFormat2.ForeColor = 16711680
		var_ConditionalFormat2.Bold = .t.
		var_ConditionalFormat2.Italic = .t.
		var_ConditionalFormat2.ApplyTo = 0
var_Columns = oTree.Columns
	var_Column = var_Columns.Add("Value")
		var_Column.Width = 128
		var_Column.HTMLCaption = "<b>VA</b><r>sko"
	var_Column1 = var_Columns.Add("APos")
		var_Column1.FormatColumn = "0 apos ``"
		var_Column1.AllowSort = .f.
		' var_Column1.Def(4) = 15790320
		oTree.TemplateDef = "dim var_Column1"
		oTree.TemplateDef = var_Column1
		oTree.Template = "var_Column1.Def(4) = 15790320"

		' var_Column1.Def(5) = 8421504
		oTree.TemplateDef = "dim var_Column1"
		oTree.TemplateDef = var_Column1
		oTree.Template = "var_Column1.Def(5) = 8421504"

		' var_Column1.Def(8) = var_Column1.Def(5)
		oTree.TemplateDef = "dim var_Column1"
		oTree.TemplateDef = var_Column1
		oTree.Template = "var_Column1.Def(8) = Def(5)"

		var_Column1.Position = 0
	var_Column2 = var_Columns.Add("RPos")
		var_Column2.FormatColumn = "0 rpos ``"
		var_Column2.AllowSort = .f.
		var_Column2.Position = 1
	var_Column3 = var_Columns.Add("Index")
		var_Column3.FormatColumn = "0 index ``"
		var_Column3.DisplayFilterButton = .t.
		var_Column3.FilterList = 256
		var_Column3.Position = 2
	var_Column4 = var_Columns.Add("Data 1")
		var_Column4.FormatColumn = "0 index `A-Z`"
		' var_Column4.Def(0) = .t.
		oTree.TemplateDef = "dim var_Column4"
		oTree.TemplateDef = var_Column4
		oTree.Template = "var_Column4.Def(0) = True"

	var_Column5 = var_Columns.Add("Data 2")
		var_Column5.FormatColumn = "0 index `AB` replace `A` with `<off -4>A</off>`"
		' var_Column5.Def(16) = .f.
		oTree.TemplateDef = "dim var_Column5"
		oTree.TemplateDef = var_Column5
		oTree.Template = "var_Column5.Def(16) = False"

		' var_Column5.Def(17) = 1
		oTree.TemplateDef = "dim var_Column5"
		oTree.TemplateDef = var_Column5
		oTree.Template = "var_Column5.Def(17) = 1"

		' var_Column5.Def(1) = .t.
		oTree.TemplateDef = "dim var_Column5"
		oTree.TemplateDef = var_Column5
		oTree.Template = "var_Column5.Def(1) = True"

	var_Column6 = var_Columns.Add("Data 3")
		var_Column6.FormatColumn = "0 index `CDC` replace `D` with `<b>D</b>`"
		' var_Column6.Def(17) = 1
		oTree.TemplateDef = "dim var_Column6"
		oTree.TemplateDef = var_Column6
		oTree.Template = "var_Column6.Def(17) = 1"

var_Items = oTree.Items
	h = var_Items.AddItem("ParentA")
	var_Items.InsertItem(h,,"Child A")
	var_Items.InsertItem(h,,"Child B")
	' var_Items.CellState(h,4) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellState(h,4) = 1"

	' var_Items.CellBackColor(var_Items.InsertItem(h,,"Child C"),5) = 65280
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellBackColor(InsertItem(h,,`Child C`),5) = 65280"

	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

	var_Items.AddItem("Item A")
	h = var_Items.AddItem("ParentB")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.CellBackColor(var_Items.InsertItem(h,,"Child 3"),5) = 65280
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellBackColor(InsertItem(h,,`Child 3`),5) = 65280"

	' var_Items.CellState(h,5) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellState(h,5) = 1"

	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
	var_Items.AddItem("Item D")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

oTree.EndUpdate()
? oTree.Export("","vis") 

674
Is it possible to check multiple-items at once

' Occurs after a new Item has been inserted to Items collection.
function AddItem as v (Item  as  OLE::Exontrol.Tree.1::HITEM)
	Dim bHasParent as 
	Dim var_Items as P
	oTree = topparent:CONTROL_ACTIVEX1.activex
	bHasParent = oTree.FormatABC("value != 0",oTree.Items.ItemParent(Item))
	var_Items = oTree.Items
		' var_Items.CellHasCheckBox(Item,0) = .f.
		oTree.TemplateDef = "dim var_Items,Item"
		oTree.TemplateDef = var_Items
		oTree.TemplateDef = Item
		oTree.Template = "var_Items.CellHasCheckBox(Item,0) = bHasParent"

end function

Dim h as N
Dim hChild as N
Dim oTree as P
Dim var_Column as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
var_Column = oTree.Columns.Add("Tasks")
	' var_Column.Def(17) = 1
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(17) = 1"

	var_Column.FormatColumn = "value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)"
oTree.HeaderVisible = .t.
oTree.SingleSel = .f.
var_Items = oTree.Items
	h = var_Items.AddItem("Project")
	hChild = var_Items.InsertItem(h,,"Task 1")
	hChild = var_Items.InsertItem(h,,"Task 2")
	hChild = var_Items.InsertItem(h,,"Task 3")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

	' var_Items.LockedItemCount(0) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.LockedItemCount(0) = 1"

	' var_Items.CellCaption(var_Items.LockedItem(0,0),0) = "<c>Select multiple items and press the <b>SPACE</b> key"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(LockedItem(0,0),0) = `<c>Select multiple items and press the <b>SPACE</b> key`"

oTree.EndUpdate()

673
How can I get the icon from the cell when using the Items.CellImages property (icon index)

' Occurs when the user moves the mouse.
function MouseMove as v (Button  as  N,Shift  as  N,X  as  OLE::Exontrol.Tree.1::OLE_XPOS_PIXELS,Y  as  OLE::Exontrol.Tree.1::OLE_YPOS_PIXELS)
	Dim i as N
	oTree = topparent:CONTROL_ACTIVEX1.activex
	i = oTree.ItemFromPoint(-1,-1,c,hit)
	? oTree.FormatABC("( 0x44 = ( value bitand 0x44 ) ) ? ( ( (value bitand 0xFFFF0000) bitshift 16 ) array B split `,` )  : `no image`",hit,oTree.Items.CellImages(i,c)) 
end function

Dim oTree as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
oTree.Columns.Add("Default")
var_Items = oTree.Items
	' var_Items.CellImages(var_Items.AddItem("Item 1"),0) = "3,2,1"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellImages(AddItem(`Item 1`),0) = `3,2,1`"

	' var_Items.CellImages(var_Items.AddItem("Item 2"),0) = "2,3"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellImages(AddItem(`Item 2`),0) = `2,3`"

	' var_Items.CellImages(var_Items.AddItem("Item 3"),0) = "2,"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellImages(AddItem(`Item 3`),0) = `2,`"

oTree.EndUpdate()

672
How can I get the icon from the cell when using the Items.CellImages property (icon position within the cell)

' Occurs when the user moves the mouse.
function MouseMove as v (Button  as  N,Shift  as  N,X  as  OLE::Exontrol.Tree.1::OLE_XPOS_PIXELS,Y  as  OLE::Exontrol.Tree.1::OLE_YPOS_PIXELS)
	Dim i as N
	oTree = topparent:CONTROL_ACTIVEX1.activex
	i = oTree.ItemFromPoint(-1,-1,c,hit)
	? oTree.FormatABC("( 0x44 = ( value bitand 0x44 ) ) ? 1 + ( (value bitand 0xFFFF0000) bitshift 16 ) : `no image`",hit) 
end function

Dim oTree as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
oTree.Columns.Add("Default")
var_Items = oTree.Items
	' var_Items.CellImages(var_Items.AddItem("Item 1"),0) = "3,2,1"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellImages(AddItem(`Item 1`),0) = `3,2,1`"

	' var_Items.CellImages(var_Items.AddItem("Item 2"),0) = "2,3"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellImages(AddItem(`Item 2`),0) = `2,3`"

	' var_Items.CellImages(var_Items.AddItem("Item 3"),0) = "2"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellImages(AddItem(`Item 3`),0) = `2`"

oTree.EndUpdate()

671
Is it possible to change the visual appearance of the position signs when user changes the column's position by drag and drop

Dim oTree as P
Dim var_Appearance as P
Dim var_Columns as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.HeaderAppearance = 4
var_Columns = oTree.Columns
	var_Columns.Add("Column 1")
	var_Columns.Add("Column 2")
	var_Columns.Add("Column 3")
var_Appearance = oTree.VisualAppearance
	var_Appearance.Add(1,"gBFLBCJwBAEHhEJAAEhABZEGACAADACAxRDgMQBQKAAzAJBIYhiG4cYCgMYxXDOCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADKMA4SOKIZhrE4bBhGaQRUgyI43RhHUBzVIUcQvE6TZRHCQYHgkNIhDJIM7TPLkeSVJaTIRoKhJUogApQThTMgVRDEThkGoSa6soSoYTDBKybLrSLKagOT5YUDKUqSdKEZRpEq1YztWbaQoCUoqVRRVIWfbNd4JJa4aDhWpYdpeeY5R7bWLgBYVVABL7LLRsSxpHxPF6RXxaeI3GKsaS8G6ic6nPQMHj7I4NS5pUa6Rh2VYNSa8AAtETRYznOw4bTMXAjNIea5bAYIIR5HIoDzVbQcCQAHL9DBeEMIQEEISgGhMGZQmocgymoYRRCIEQ0G2HYBnEIBig4V4zCQGINnmagCECY43medZ6H2Pw/g+X5fnueh/h+R5+AKABfkMWgGgGYA4AICoCGCE5WA4CphACMgSD2IRIDIBICmEd5YGCBpRjGBgegWIYIgWdgoGIRQsiKCZiAiJZ0gGQI4jUS4LECOAiBmDJflGfg2BSY4Al4OhGkOCJ2DgFJjGGfgqgiH5Ch4RhGkqOQmEOEpkFkHQYhJRYyESAokGKHhIhKIxJEmf4VGUeRGFmF5iBkchPhYJQ5GoYIZg6Ug6GoFYmkmNhuhulRGHKGoImefh0BUZ4JmYeoemeSZ2H6HQmgoBgXDqXwUAQgI=")
	var_Appearance.Add(2,"CP:1 0 -36 0 0")
oTree.Template = "Background(182) = 33554432" // oTree.Background(182) = 33554432
oTree.EndUpdate()

670
A black portion is shown while I am using the BackColorAlternate with EBN colors. What can I do

Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_ConditionalFormat as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.ColumnAutoResize = .t.
oTree.DefaultItemHeight = 20
oTree.VisualAppearance.Add(1,"gBFLBCJwBAEHhEJAAEhIDhAxHAxg0HG0Mg4xGI3HMOig3GcJiYAf8jAEhhUnAAyhEqg8hk0oAsIjgAiAwmYxGA4mYzGwwkI0i0ooUnB0IBMIl1Dg8zmYyGolptPkI1mY1GAll9KoUslNIrVCqNQldShFUstXAVfrVcrlZtVhuFnsUHq1zoczoQGhFBkNpg6zbDykUkhsPHE2h85nc9n8xtVDtlex9Msd2p1YstVq9ux8HyMtzuFz1PsNTzQlv2hhWfkuqpeVuN0q+nvEooN5veSAGpkb/ACcZrvhU3w83nM/poxGuchGpoVBvWgg+8knA4WimnFxI45Er5XOlHMg/Q3XU33W4ew9Wyu11mchDagcO7zus8VDoNBBEIKBpMY6DqOQyokhA/IQIQmwMk4bIQFDcoO6LWgwhQkNcABwEyAB5GwWbet6cRQg3DENQ5D8QxADZvEkAB8nabsURGeBpFM3pwE2AEZRpDx/neZpOR3Dz9oO/r/wCMoZNTBQAQRJSEwYg8HPGhEIoNCaEwq10gQ2WcRt7LcRxRFpuxUAEURQ3sczBEMgTTG8gN7HpOSEAEiQBAQZpmQ0DibPUFwbKcHwkhQoQtNQNzNEMbABOKDy/DMYQzHLeoPL0OTJSUd0pHcxTewk5zrIygIRPslz4lEngBKIAQivgASs/kLSBTlO00f8t0vGcgUbDlDRjXLCUNRERRvRgAHW2oAICA==")
var_Column = oTree.Columns.Add("Default")
	' var_Column.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(0) = True"

	var_Column.PartialCheck = .t.
var_Column1 = oTree.Columns.Add("Position")
	var_Column1.FormatColumn = "1 rindex ``"
	var_Column1.Visible = .f.
var_ConditionalFormat = oTree.ConditionalFormats.Add("%C1 mod 2")
	var_ConditionalFormat.BackColor = 16777216
var_Items = oTree.Items
	var_Items.AddItem("Item 1")
	var_Items.AddItem("Item 2")
	var_Items.AddItem("Item 3")
	var_Items.AddItem("Item 4")
oTree.EndUpdate()

669
How can I specify alternate background colors for each root item, similar with BackColorAlternate

Dim h as N
Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_ConditionalFormat as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
var_Column = oTree.Columns.Add("Default")
	' var_Column.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(0) = True"

	var_Column.PartialCheck = .t.
var_Column1 = oTree.Columns.Add("Position")
	var_Column1.FormatColumn = "( ( 1:=( ( 0:=(1 rpos '') ) lfind `.`) ) < 0 ? =:0 : (=:0 left =:1) )"
	var_Column1.Visible = .f.
var_ConditionalFormat = oTree.ConditionalFormats.Add("%C1 mod 2")
	var_ConditionalFormat.BackColor = 15790320
var_Items = oTree.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	h = var_Items.AddItem("Root 3")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
oTree.EndUpdate()

668
Is it possible to change the caption from a column without to remove the column and add it with the new caption
Dim oTree as P
Dim var_Column as local
Dim var_Column1 as local

oTree = topparent:CONTROL_ACTIVEX1.activex
' oTree.Columns.Add("ColumnName").Caption = "NewName"
var_Column = oTree.Columns.Add("ColumnName")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.Caption = `NewName`"

' oTree.Columns.Add("ColumnName").HTMLCaption = "<b>New</b>Name"
var_Column1 = oTree.Columns.Add("ColumnName")
oTree.TemplateDef = "dim var_Column1"
oTree.TemplateDef = var_Column1
oTree.Template = "var_Column1.HTMLCaption = `<b>New</b>Name`"


667
FilterBarCaption ALL Keyword ( sample 2, result )

' Occurs after a new Item has been inserted to Items collection.
function AddItem as v (Item  as  OLE::Exontrol.Tree.1::HITEM)
	Dim i as 
	Dim var_Items as local
	oTree = topparent:CONTROL_ACTIVEX1.activex
	i = oTree.FormatABC("value + 1",oTree.Items.ItemToIndex(Item))
	' oTree.Items.CellImage(Item,3) = i
	var_Items = oTree.Items
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellImage(Item,3) = i"

end function

Dim h as N
Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Column4 as P
Dim var_Column5 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
var_Column = oTree.Columns.Add("Col-1")
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column1 = oTree.Columns.Add("Col-2")
	var_Column1.DisplayFilterButton = .t.
	var_Column1.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column2 = oTree.Columns.Add("Check")
	' var_Column2.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column2"
	oTree.TemplateDef = var_Column2
	oTree.Template = "var_Column2.Def(0) = True"

	var_Column2.DisplayFilterButton = .t.
	var_Column2.DisplayFilterPattern = .f.
	var_Column2.FilterType = 6
var_Column3 = oTree.Columns.Add("Image")
	var_Column3.DisplayFilterButton = .t.
	var_Column3.FilterType = 10
	var_Column3.FilterList = 9472 'exShowExclude + exShowFocusItem + exShowCheckBox
var_Column4 = oTree.Columns.Add("Pos")
	var_Column4.AllowSizing = .f.
	var_Column4.AllowSort = .f.
	var_Column4.Width = 32
	var_Column4.FormatColumn = "1 apos ``"
	var_Column4.Position = 0
var_Items = oTree.Items
	' var_Items.CellCaption(var_Items.AddItem("Item A"),1) = "Sub-Item A"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item A`),1) = `Sub-Item A`"

	h = var_Items.AddItem("Item B")
	' var_Items.CellCaption(h,1) = "Sub-Item B"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,1) = `Sub-Item B`"

	' var_Items.CellState(h,2) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellState(h,2) = 1"

	' var_Items.CellCaption(var_Items.AddItem("Item C"),1) = "Sub-Item C"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item C`),1) = `Sub-Item C`"

oTree.FilterBarFont = oTree.Font
oTree.Template = "Description(11) = FormatABC(```<fgcolor=808080> `` + value + `` </fgcolor>```,Description(11))" // oTree.Description(11) = oTree.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oTree.Description(11))
oTree.FilterBarCaption = "(( ( all replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))"
oTree.FilterBarPromptVisible = 3 'exFilterBarVisible + exFilterBarPromptVisible
var_Column5 = oTree.Columns.Item(0)
	var_Column5.FilterType = 240
	var_Column5.Filter = "Item A|Item B"
oTree.Columns.Item(2).Filter = 1
oTree.ApplyFilter()
oTree.EndUpdate()

666
FilterBarCaption ALL Keyword ( sample 1 )

' Occurs after a new Item has been inserted to Items collection.
function AddItem as v (Item  as  OLE::Exontrol.Tree.1::HITEM)
	Dim i as 
	Dim var_Items as local
	oTree = topparent:CONTROL_ACTIVEX1.activex
	i = oTree.FormatABC("value + 1",oTree.Items.ItemToIndex(Item))
	' oTree.Items.CellImage(Item,3) = i
	var_Items = oTree.Items
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellImage(Item,3) = i"

end function

Dim h as N
Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Column4 as P
Dim var_Column5 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
var_Column = oTree.Columns.Add("Col-1")
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column1 = oTree.Columns.Add("Col-2")
	var_Column1.DisplayFilterButton = .t.
	var_Column1.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column2 = oTree.Columns.Add("Check")
	' var_Column2.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column2"
	oTree.TemplateDef = var_Column2
	oTree.Template = "var_Column2.Def(0) = True"

	var_Column2.DisplayFilterButton = .t.
	var_Column2.DisplayFilterPattern = .f.
	var_Column2.FilterType = 6
var_Column3 = oTree.Columns.Add("Image")
	var_Column3.DisplayFilterButton = .t.
	var_Column3.FilterType = 10
	var_Column3.FilterList = 9472 'exShowExclude + exShowFocusItem + exShowCheckBox
var_Column4 = oTree.Columns.Add("Pos")
	var_Column4.AllowSizing = .f.
	var_Column4.AllowSort = .f.
	var_Column4.Width = 32
	var_Column4.FormatColumn = "1 apos ``"
	var_Column4.Position = 0
var_Items = oTree.Items
	' var_Items.CellCaption(var_Items.AddItem("Item A"),1) = "Sub-Item A"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item A`),1) = `Sub-Item A`"

	h = var_Items.AddItem("Item B")
	' var_Items.CellCaption(h,1) = "Sub-Item B"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,1) = `Sub-Item B`"

	' var_Items.CellState(h,2) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellState(h,2) = 1"

	' var_Items.CellCaption(var_Items.AddItem("Item C"),1) = "Sub-Item C"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item C`),1) = `Sub-Item C`"

oTree.FilterBarFont = oTree.Font
oTree.Template = "Description(11) = FormatABC(```<fgcolor=808080> `` + value + `` </fgcolor>```,Description(11))" // oTree.Description(11) = oTree.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oTree.Description(11))
oTree.FilterBarCaption = "all"
oTree.FilterBarPromptVisible = 3 'exFilterBarVisible + exFilterBarPromptVisible
var_Column5 = oTree.Columns.Item(0)
	var_Column5.FilterType = 240
	var_Column5.Filter = "Item A|Item B"
oTree.Columns.Item(2).Filter = 1
oTree.ApplyFilter()
oTree.EndUpdate()

665
FilterBarCaption ALLUI Keyword ( sample 2, result )

' Occurs after a new Item has been inserted to Items collection.
function AddItem as v (Item  as  OLE::Exontrol.Tree.1::HITEM)
	Dim i as 
	Dim var_Items as local
	oTree = topparent:CONTROL_ACTIVEX1.activex
	i = oTree.FormatABC("value + 1",oTree.Items.ItemToIndex(Item))
	' oTree.Items.CellImage(Item,3) = i
	var_Items = oTree.Items
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellImage(Item,3) = i"

end function

Dim h as N
Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Column4 as P
Dim var_Column5 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
var_Column = oTree.Columns.Add("Col-1")
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column1 = oTree.Columns.Add("Col-2")
	var_Column1.DisplayFilterButton = .t.
	var_Column1.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column2 = oTree.Columns.Add("Check")
	' var_Column2.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column2"
	oTree.TemplateDef = var_Column2
	oTree.Template = "var_Column2.Def(0) = True"

	var_Column2.DisplayFilterButton = .t.
	var_Column2.DisplayFilterPattern = .f.
	var_Column2.FilterType = 6
var_Column3 = oTree.Columns.Add("Image")
	var_Column3.DisplayFilterButton = .t.
	var_Column3.FilterType = 10
	var_Column3.FilterList = 9472 'exShowExclude + exShowFocusItem + exShowCheckBox
var_Column4 = oTree.Columns.Add("Pos")
	var_Column4.AllowSizing = .f.
	var_Column4.AllowSort = .f.
	var_Column4.Width = 32
	var_Column4.FormatColumn = "1 apos ``"
	var_Column4.Position = 0
var_Items = oTree.Items
	' var_Items.CellCaption(var_Items.AddItem("Item A"),1) = "Sub-Item A"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item A`),1) = `Sub-Item A`"

	h = var_Items.AddItem("Item B")
	' var_Items.CellCaption(h,1) = "Sub-Item B"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,1) = `Sub-Item B`"

	' var_Items.CellState(h,2) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellState(h,2) = 1"

	' var_Items.CellCaption(var_Items.AddItem("Item C"),1) = "Sub-Item C"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item C`),1) = `Sub-Item C`"

oTree.FilterBarFont = oTree.Font
oTree.Template = "Description(11) = FormatABC(```<fgcolor=808080> `` + value + `` </fgcolor>```,Description(11))" // oTree.Description(11) = oTree.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oTree.Description(11))
oTree.FilterBarCaption = "(( ( allui replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))"
oTree.FilterBarPromptVisible = 3 'exFilterBarVisible + exFilterBarPromptVisible
var_Column5 = oTree.Columns.Item(0)
	var_Column5.FilterType = 240
	var_Column5.Filter = "Item A|Item B"
oTree.Columns.Item(2).Filter = 1
oTree.ApplyFilter()
oTree.EndUpdate()

664
FilterBarCaption ALLUI Keyword ( sample 1 )

' Occurs after a new Item has been inserted to Items collection.
function AddItem as v (Item  as  OLE::Exontrol.Tree.1::HITEM)
	Dim i as 
	Dim var_Items as local
	oTree = topparent:CONTROL_ACTIVEX1.activex
	i = oTree.FormatABC("value + 1",oTree.Items.ItemToIndex(Item))
	' oTree.Items.CellImage(Item,3) = i
	var_Items = oTree.Items
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellImage(Item,3) = i"

end function

Dim h as N
Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Column4 as P
Dim var_Column5 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
var_Column = oTree.Columns.Add("Col-1")
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column1 = oTree.Columns.Add("Col-2")
	var_Column1.DisplayFilterButton = .t.
	var_Column1.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column2 = oTree.Columns.Add("Check")
	' var_Column2.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column2"
	oTree.TemplateDef = var_Column2
	oTree.Template = "var_Column2.Def(0) = True"

	var_Column2.DisplayFilterButton = .t.
	var_Column2.DisplayFilterPattern = .f.
	var_Column2.FilterType = 6
var_Column3 = oTree.Columns.Add("Image")
	var_Column3.DisplayFilterButton = .t.
	var_Column3.FilterType = 10
	var_Column3.FilterList = 9472 'exShowExclude + exShowFocusItem + exShowCheckBox
var_Column4 = oTree.Columns.Add("Pos")
	var_Column4.AllowSizing = .f.
	var_Column4.AllowSort = .f.
	var_Column4.Width = 32
	var_Column4.FormatColumn = "1 apos ``"
	var_Column4.Position = 0
var_Items = oTree.Items
	' var_Items.CellCaption(var_Items.AddItem("Item A"),1) = "Sub-Item A"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item A`),1) = `Sub-Item A`"

	h = var_Items.AddItem("Item B")
	' var_Items.CellCaption(h,1) = "Sub-Item B"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,1) = `Sub-Item B`"

	' var_Items.CellState(h,2) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellState(h,2) = 1"

	' var_Items.CellCaption(var_Items.AddItem("Item C"),1) = "Sub-Item C"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item C`),1) = `Sub-Item C`"

oTree.FilterBarFont = oTree.Font
oTree.Template = "Description(11) = FormatABC(```<fgcolor=808080> `` + value + `` </fgcolor>```,Description(11))" // oTree.Description(11) = oTree.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oTree.Description(11))
oTree.FilterBarCaption = "allui"
oTree.FilterBarPromptVisible = 3 'exFilterBarVisible + exFilterBarPromptVisible
var_Column5 = oTree.Columns.Item(0)
	var_Column5.FilterType = 240
	var_Column5.Filter = "Item A|Item B"
oTree.Columns.Item(2).Filter = 1
oTree.ApplyFilter()
oTree.EndUpdate()

663
FilterBarCaption AVAILABLE Keyword ( sample 2, result )

' Occurs after a new Item has been inserted to Items collection.
function AddItem as v (Item  as  OLE::Exontrol.Tree.1::HITEM)
	Dim i as 
	Dim var_Items as local
	oTree = topparent:CONTROL_ACTIVEX1.activex
	i = oTree.FormatABC("value + 1",oTree.Items.ItemToIndex(Item))
	' oTree.Items.CellImage(Item,3) = i
	var_Items = oTree.Items
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellImage(Item,3) = i"

end function

Dim h as N
Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Column4 as P
Dim var_Column5 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
var_Column = oTree.Columns.Add("Col-1")
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column1 = oTree.Columns.Add("Col-2")
	var_Column1.DisplayFilterButton = .t.
	var_Column1.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column2 = oTree.Columns.Add("Check")
	' var_Column2.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column2"
	oTree.TemplateDef = var_Column2
	oTree.Template = "var_Column2.Def(0) = True"

	var_Column2.DisplayFilterButton = .t.
	var_Column2.DisplayFilterPattern = .f.
	var_Column2.FilterType = 6
var_Column3 = oTree.Columns.Add("Image")
	var_Column3.DisplayFilterButton = .t.
	var_Column3.FilterType = 10
	var_Column3.FilterList = 9472 'exShowExclude + exShowFocusItem + exShowCheckBox
var_Column4 = oTree.Columns.Add("Pos")
	var_Column4.AllowSizing = .f.
	var_Column4.AllowSort = .f.
	var_Column4.Width = 32
	var_Column4.FormatColumn = "1 apos ``"
	var_Column4.Position = 0
var_Items = oTree.Items
	' var_Items.CellCaption(var_Items.AddItem("Item A"),1) = "Sub-Item A"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item A`),1) = `Sub-Item A`"

	h = var_Items.AddItem("Item B")
	' var_Items.CellCaption(h,1) = "Sub-Item B"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,1) = `Sub-Item B`"

	' var_Items.CellState(h,2) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellState(h,2) = 1"

	' var_Items.CellCaption(var_Items.AddItem("Item C"),1) = "Sub-Item C"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item C`),1) = `Sub-Item C`"

oTree.FilterBarFont = oTree.Font
oTree.Template = "Description(11) = FormatABC(```<fgcolor=808080> `` + value + `` </fgcolor>```,Description(11))" // oTree.Description(11) = oTree.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oTree.Description(11))
oTree.FilterBarCaption = "(( ( value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` ) + ` ` + ( available replace `[` with `<bgcolor=C0C0C0><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` replace `<s>` with `` replace `</s>` with `` ) + `<fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))"
oTree.FilterBarPromptVisible = 3 'exFilterBarVisible + exFilterBarPromptVisible
var_Column5 = oTree.Columns.Item(0)
	var_Column5.FilterType = 240
	var_Column5.Filter = "Item A|Item B"
oTree.Columns.Item(2).Filter = 1
oTree.ApplyFilter()
oTree.EndUpdate()

662
FilterBarCaption AVAILABLE Keyword ( sample 1 )

' Occurs after a new Item has been inserted to Items collection.
function AddItem as v (Item  as  OLE::Exontrol.Tree.1::HITEM)
	Dim i as 
	Dim var_Items as local
	oTree = topparent:CONTROL_ACTIVEX1.activex
	i = oTree.FormatABC("value + 1",oTree.Items.ItemToIndex(Item))
	' oTree.Items.CellImage(Item,3) = i
	var_Items = oTree.Items
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellImage(Item,3) = i"

end function

Dim h as N
Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Column4 as P
Dim var_Column5 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
var_Column = oTree.Columns.Add("Col-1")
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column1 = oTree.Columns.Add("Col-2")
	var_Column1.DisplayFilterButton = .t.
	var_Column1.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column2 = oTree.Columns.Add("Check")
	' var_Column2.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column2"
	oTree.TemplateDef = var_Column2
	oTree.Template = "var_Column2.Def(0) = True"

	var_Column2.DisplayFilterButton = .t.
	var_Column2.DisplayFilterPattern = .f.
	var_Column2.FilterType = 6
var_Column3 = oTree.Columns.Add("Image")
	var_Column3.DisplayFilterButton = .t.
	var_Column3.FilterType = 10
	var_Column3.FilterList = 9472 'exShowExclude + exShowFocusItem + exShowCheckBox
var_Column4 = oTree.Columns.Add("Pos")
	var_Column4.AllowSizing = .f.
	var_Column4.AllowSort = .f.
	var_Column4.Width = 32
	var_Column4.FormatColumn = "1 apos ``"
	var_Column4.Position = 0
var_Items = oTree.Items
	' var_Items.CellCaption(var_Items.AddItem("Item A"),1) = "Sub-Item A"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item A`),1) = `Sub-Item A`"

	h = var_Items.AddItem("Item B")
	' var_Items.CellCaption(h,1) = "Sub-Item B"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,1) = `Sub-Item B`"

	' var_Items.CellState(h,2) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellState(h,2) = 1"

	' var_Items.CellCaption(var_Items.AddItem("Item C"),1) = "Sub-Item C"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item C`),1) = `Sub-Item C`"

oTree.FilterBarFont = oTree.Font
oTree.Template = "Description(11) = FormatABC(```<fgcolor=808080> `` + value + `` </fgcolor>```,Description(11))" // oTree.Description(11) = oTree.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oTree.Description(11))
oTree.FilterBarCaption = "value + ` ` + available"
oTree.FilterBarPromptVisible = 3 'exFilterBarVisible + exFilterBarPromptVisible
var_Column5 = oTree.Columns.Item(0)
	var_Column5.FilterType = 240
	var_Column5.Filter = "Item A|Item B"
oTree.Columns.Item(2).Filter = 1
oTree.ApplyFilter()
oTree.EndUpdate()

661
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 3, results )

Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Column4 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
var_Column = oTree.Columns.Add("Col-1")
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column1 = oTree.Columns.Add("Col-2")
	var_Column1.DisplayFilterButton = .t.
	var_Column1.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column2 = oTree.Columns.Add("Pos")
	var_Column2.AllowSizing = .f.
	var_Column2.AllowSort = .f.
	var_Column2.Width = 32
	var_Column2.FormatColumn = "1 apos ``"
	var_Column2.Position = 0
var_Items = oTree.Items
	' var_Items.CellCaption(var_Items.AddItem("Item A"),1) = "Sub-Item A"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item A`),1) = `Sub-Item A`"

	' var_Items.CellCaption(var_Items.AddItem("Item B"),1) = "Sub-Item B"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item B`),1) = `Sub-Item B`"

	' var_Items.CellCaption(var_Items.AddItem("Item C"),1) = "Sub-Item C"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item C`),1) = `Sub-Item C`"

oTree.FilterBarFont = oTree.Font
oTree.Template = "Description(11) = FormatABC(```<fgcolor=808080>`` + value + ``</fgcolor>```,Description(11))" // oTree.Description(11) = oTree.FormatABC("`<fgcolor=808080>` + value + `</fgcolor>`",oTree.Description(11))
oTree.FilterBarCaption = "(`<b>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )) replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>`"
oTree.FilterBarPromptVisible = 256
var_Column3 = oTree.Columns.Item(0)
	var_Column3.FilterType = 240
	var_Column3.Filter = "Item A|Item B"
var_Column4 = oTree.Columns.Item(1)
	var_Column4.FilterType = 3
	var_Column4.Filter = "*B"
oTree.ApplyFilter()
oTree.EndUpdate()

660
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 2 )

Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Column4 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
var_Column = oTree.Columns.Add("Col-1")
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column1 = oTree.Columns.Add("Col-2")
	var_Column1.DisplayFilterButton = .t.
	var_Column1.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column2 = oTree.Columns.Add("Pos")
	var_Column2.AllowSizing = .f.
	var_Column2.AllowSort = .f.
	var_Column2.Width = 32
	var_Column2.FormatColumn = "1 apos ``"
	var_Column2.Position = 0
var_Items = oTree.Items
	' var_Items.CellCaption(var_Items.AddItem("Item A"),1) = "Sub-Item A"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item A`),1) = `Sub-Item A`"

	' var_Items.CellCaption(var_Items.AddItem("Item B"),1) = "Sub-Item B"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item B`),1) = `Sub-Item B`"

	' var_Items.CellCaption(var_Items.AddItem("Item C"),1) = "Sub-Item C"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item C`),1) = `Sub-Item C`"

oTree.FilterBarFont = oTree.Font
oTree.Template = "Description(11) = FormatABC(```<fgcolor=808080>`` + value + ``</fgcolor>```,Description(11))" // oTree.Description(11) = oTree.FormatABC("`<fgcolor=808080>` + value + `</fgcolor>`",oTree.Description(11))
oTree.FilterBarCaption = "value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>`"
oTree.FilterBarPromptVisible = 256
var_Column3 = oTree.Columns.Item(0)
	var_Column3.FilterType = 240
	var_Column3.Filter = "Item A|Item B"
var_Column4 = oTree.Columns.Item(1)
	var_Column4.FilterType = 3
	var_Column4.Filter = "*B"
oTree.ApplyFilter()
oTree.EndUpdate()

659
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 1 )

Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Column4 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
var_Column = oTree.Columns.Add("Col-1")
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column1 = oTree.Columns.Add("Col-2")
	var_Column1.DisplayFilterButton = .t.
	var_Column1.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column2 = oTree.Columns.Add("Pos")
	var_Column2.AllowSizing = .f.
	var_Column2.AllowSort = .f.
	var_Column2.Width = 32
	var_Column2.FormatColumn = "1 apos ``"
	var_Column2.Position = 0
var_Items = oTree.Items
	' var_Items.CellCaption(var_Items.AddItem("Item A"),1) = "Sub-Item A"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item A`),1) = `Sub-Item A`"

	' var_Items.CellCaption(var_Items.AddItem("Item B"),1) = "Sub-Item B"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item B`),1) = `Sub-Item B`"

	' var_Items.CellCaption(var_Items.AddItem("Item C"),1) = "Sub-Item C"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellCaption(AddItem(`Item C`),1) = `Sub-Item C`"

oTree.Template = "Description(11) = FormatABC(```<fgcolor=808080>`` + value + ``</fgcolor>```,Description(11))" // oTree.Description(11) = oTree.FormatABC("`<fgcolor=808080>` + value + `</fgcolor>`",oTree.Description(11))
oTree.FilterBarCaption = "value replace `[` with `<fgcolor=808080>[` replace `]` with `]</fgcolor>`"
oTree.FilterBarPromptVisible = 256
var_Column3 = oTree.Columns.Item(0)
	var_Column3.FilterType = 240
	var_Column3.Filter = "Item A|Item B"
var_Column4 = oTree.Columns.Item(1)
	var_Column4.FilterType = 3
	var_Column4.Filter = "*B"
oTree.ApplyFilter()
oTree.EndUpdate()

658
Is it possible to automatically displays the control's filter label to the right

Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
var_Column = oTree.Columns.Add("Item")
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarCaption = "`<r>` + value"
oTree.FilterBarPromptVisible = 1280 'exFilterBarShowCloseOnRight + exFilterBarToggle
var_Column2 = oTree.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item B"
oTree.ApplyFilter()
oTree.EndUpdate()

657
How can I get the number of results/items being shown in the control's filter bar (sample 4)

Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
var_Column = oTree.Columns.Add("Item")
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarFont = oTree.Font
oTree.FilterBarPrompt = oTree.FormatABC("`<b>` + value",oTree.FilterBarPrompt)
oTree.FilterBarCaption = "`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )"
oTree.FilterBarPromptVisible = 3591 'exFilterBarCompact + exFilterBarShowCloseOnRight + exFilterBarShowCloseIfRequired + exFilterBarCaptionVisible + exFilterBarVisible + exFilterBarPromptVisible
oTree.EndUpdate()

656
How can I get the number of results being shown in the control's filter bar (sample 3)

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarFont = oTree.Font
oTree.FilterBarCaption = "`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : ``)"
oTree.FilterBarPromptVisible = 2055 'exFilterBarCompact + exFilterBarCaptionVisible + exFilterBarVisible + exFilterBarPromptVisible
var_Column2 = oTree.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item A|Item B"
oTree.ApplyFilter()
oTree.EndUpdate()

655
How can I get the number of results being shown in the control's filter bar (sample 2, compact)

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarFont = oTree.Font
oTree.FilterBarCaption = "`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? `<off -4> ` + abs(matchitemcount + 1) + ` result(s)` : ``)"
oTree.FilterBarPromptVisible = 2071 'exFilterBarCompact + exFilterBarSingleLine + exFilterBarCaptionVisible + exFilterBarVisible + exFilterBarPromptVisible
var_Column2 = oTree.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item A|Item B"
oTree.ApplyFilter()
oTree.EndUpdate()

654
How can I get the number of results being shown in the control's filter bar (sample 1)

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarFont = oTree.Font
oTree.FilterBarCaption = "`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)"
oTree.FilterBarPromptVisible = 7 'exFilterBarCaptionVisible + exFilterBarVisible + exFilterBarPromptVisible
var_Column2 = oTree.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item A|Item B"
oTree.ApplyFilter()
oTree.EndUpdate()

653
FilterBarCaption Predefined Keywords

' Fired after an item is expanded (collapsed).
function AfterExpandItem as v (Item  as  OLE::Exontrol.Tree.1::HITEM)
	oTree = topparent:CONTROL_ACTIVEX1.activex
	oTree.Refresh()
end function

Dim h as N
Dim oTree as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Check")
	' var_Column1.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column1"
	oTree.TemplateDef = var_Column1
	oTree.Template = "var_Column1.Def(0) = True"

	var_Column1.DisplayFilterButton = .t.
	var_Column1.DisplayFilterPattern = .f.
	var_Column1.FilterType = 6
var_Column2 = oTree.Columns.Add("Pos")
	var_Column2.AllowSizing = .f.
	var_Column2.AllowSort = .f.
	var_Column2.Width = 32
	var_Column2.FormatColumn = "1 apos ``"
	var_Column2.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	h = var_Items.AddItem("Item B")
	' var_Items.CellState(var_Items.InsertItem(h,,"Sub-Item B1"),1) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(InsertItem(h,,`Sub-Item B1`),1) = 1"

	var_Items.InsertItem(h,,"Sub-Item B2")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

	var_Items.AddItem("Item C")
oTree.FilterInclude = 1
oTree.FilterBarFont = oTree.Font
oTree.FilterBarCaption = "`<fgcolor=0000FF><i>value/current</i></fgcolor>: <fgcolor=808080>` + value + `</fgcolor>` + `<br><fgcolor=0000FF><i>available</i></fgcolor>: ` + available + `<br><fgcolor=0000FF><i>allui</i></fgcolor>: ` + allui + `<br><fgcolor=0000FF><i>all</i></fgcolor>: ` + all + `<br><fgcolor=0000FF><i>itemcount</i></fgcolor>: <fgcolor=808080>` + itemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>visibleitemcount</i></fgcolor>: <fgcolor=808080>` + visibleitemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>matchitemcount</i></fgcolor>: <fgcolor=808080>` + matchitemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>promptpattern</i></fgcolor>: <fgcolor=808080>` + promptpattern + `</fgcolor>`+ `<br><fgcolor=0000FF><i>leafitemcount</i></fgcolor>: <fgcolor=808080>` + leafitemcount + `</fgcolor>`"
oTree.FilterBarPromptPattern = "B"
oTree.FilterBarPromptVisible = 7 'exFilterBarCaptionVisible + exFilterBarVisible + exFilterBarPromptVisible
var_Column3 = oTree.Columns.Item(0)
	var_Column3.FilterType = 240
	var_Column3.Filter = "Item A|Item B"
oTree.ApplyFilter()
oTree.EndUpdate()

652
I am using filter prompt feature, and also column's filter, just wondering if possible to compact displaying the filter bar so it won't show on multiple lines

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarFont = oTree.Font
oTree.FilterBarCaption = "`<r><i><fgcolor=808080><upline><solidline><sha ;;0>` + value"
oTree.FilterBarPromptPattern = "B"
oTree.FilterBarPromptVisible = 2067 'exFilterBarCompact + exFilterBarSingleLine + exFilterBarVisible + exFilterBarPromptVisible
var_Column2 = oTree.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item A|Item B"
oTree.ApplyFilter()
oTree.EndUpdate()

651
Just wondering if it is possible to show the filter bar's close button on the right ( sample 2 )

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarPromptVisible = 1281 'exFilterBarShowCloseOnRight + exFilterBarToggle + exFilterBarPromptVisible
oTree.FilterBarPrompt = oTree.FormatABC("`<r>` + value",oTree.FilterBarPrompt)
oTree.EndUpdate()

650
Just wondering if it is possible to show the filter bar's close button on the right ( sample 1 )

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.RightToLeft = .t.
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarPromptVisible = 257 'exFilterBarToggle + exFilterBarPromptVisible
oTree.EndUpdate()

649
How can I change the visual appearance of the filter bar's close button (EBN)

Dim oTree as P
Dim var_Appearance as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
var_Appearance = oTree.VisualAppearance
	var_Appearance.Add(1,"gBFLBCJwBAEHhEJAAEhABHQDg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLOg7IJjyI4/SJAYCydKAWhxIaZKJHCZoEDaTAADCNVAQp6MEIJVbVEI0e79OgBLp/Z7kECIJJAaRjHQdJxGLA8EhtCQhCZteK6SgMKJYXhWQYRXI1JwvMBrWrdQjiOYELQtMKmSZNLYGG4dR5SVJbcYhSYsRRFMoyDIOXYDLKsdYqSpXIThObEGgaPqJYjsUjCMKnR7HVIURrBPC9TBPE69ZgmC6ucKPX51ShKFaBWDZcwFAS+UBuYCAILiEAQGZ1XT8OROicbgJgSTJRlCaZeDsHY7QGR4xkSYp3CaExZAQMgalQYAwjCAAfBANxcA2TgKAUOpDCGFhKg0RpXCwCwDHQHQHEyAIkCkOhbFOGA8A8DohBgRg9AccZcn8EpEjMLI2C2DYxAgQgvAIUIVkoAAPBQDJlECTZ3CCYwDACQwUA8A5MCAWAWDiQi4l8aQOEgLJuBgBgDmYFAzEoIoIl0WALgKYJbBABADAAHgHg8VAMmqCQQDMXABAATYwTmNwBDATJXAiAgjHmNQ5lgQ5QEQEQMmcWg/GwD5ylyNw2gMcJcjsBgBgOQQDDhRpVAMMwnDBFw1B0Ax8D0DxOmmJJIGQTY5hGMAwkwM4CAYLZAmAOJnAqAojiIGg6iieYkmeAYOHaKJDCyCwjH6AoggsQpQliAJLhgaJ0CESBTnyDwjk+cg4g4P5IHIHJ+BWRRzlYWAxiOUxihsY4KjKLJRGqC44FCegkkkM58iAKAPnIWIWD8SRSFSfQnkmewUhYP4GiGKJ7G0TIbCSUoggqUo0lAQ4LnEcBcD8Coiiif4nE+eAAn2HpOkcFJqi4T5SkyMw/kqQown8IBIBOdA+A+DJrBqVxXEqYo4lCApLhGHBnD8S4ymyfxmg+cwQkQP5egOUZIWoEAkjIeIPBMBJBD+TBjBifwvkuc58hQJQPmFrYykkchclSApKjGOBuD+TRDFCfw3mmIxNi8FxFlOXhVC4aYDFyPgvg2YBcBcLZGCGCJ0DSLRzGSWQ/lmY5+mEP5gmMDBZRSMRsFsOxMhMJJ/DsTpTnwaQaE+N5ojuNhdEYNI5C4TZJO1GRDmCaxnA2Yx4n8IpIjOTBQBQC5TgyYw7gUYRYikC0BYRwsDQBoB8eA6Q2hsE0BUXgywZtYCyHMKwnxSAhAQHkIQhRrBaDsCwA4ERiB2EWAIYIXhhiVEgAEUYwwYjyASLge4FhHgRDkM8OQih0jWPkGgBBAQ")
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarPromptVisible = 257 'exFilterBarToggle + exFilterBarPromptVisible
oTree.Template = "Background(1) = 16777216" // oTree.Background(1) = 16777216
oTree.EndUpdate()

648
How can I change the visual appearance of the filter bar's close button (solid)

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarPromptVisible = 1
oTree.Template = "Background(1) = 255" // oTree.Background(1) = 255
oTree.EndUpdate()

647
Is it possible to prevent definitely showing the filter bar's close button

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarPromptVisible = 1
oTree.Template = "Background(1) = -1" // oTree.Background(1) = -1
oTree.EndUpdate()

646
Is it possible to show the close button only if there is a filter applied

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarPromptVisible = 513 'exFilterBarShowCloseIfRequired + exFilterBarPromptVisible
oTree.EndUpdate()

645
The control's filter bar is not closed once I click the close button (toggle)

Dim h as N
Dim oTree as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
	' var_Items.LockedItemCount(2) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.LockedItemCount(2) = 1"

	h = var_Items.LockedItem(2,0)
	' var_Items.ItemDivider(h) = 0
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ItemDivider(h) = 0"

	' var_Items.CellCaption(h,0) = "<c><fgcolor=808080>Press the CTRL + F to turn on/off the control's filter bar. ALT + Up/Down moves the focus."
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,0) = `<c><fgcolor=808080>Press the CTRL + F to turn on/off the control's filter bar. ALT + Up/Down moves the focus.`"

	' var_Items.CellCaptionFormat(h,0) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaptionFormat(h,0) = 1"

oTree.FilterBarCaption = "`<r><fgcolor=808080>` + value"
oTree.FilterBarPromptPattern = "B"
oTree.FilterBarPromptVisible = 2323 'exFilterBarCompact + exFilterBarToggle + exFilterBarSingleLine + exFilterBarVisible + exFilterBarPromptVisible
var_Column2 = oTree.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item B"
oTree.ApplyFilter()
oTree.EndUpdate()

644
How can I display the control's filter on a single line

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarCaption = "len(value) ? `filter for: <fgcolor 808080>` + value  : `<fgcolor 808080>no filter`"
oTree.FilterBarPromptVisible = 18 'exFilterBarSingleLine + exFilterBarVisible
var_Column2 = oTree.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item A|Item B"
oTree.ApplyFilter()
oTree.EndUpdate()

643
How can I display the control's filter on a single line (prompt-combined)

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarCaption = "`<r>` + value"
oTree.FilterBarPromptVisible = 2067 'exFilterBarCompact + exFilterBarSingleLine + exFilterBarVisible + exFilterBarPromptVisible
var_Column2 = oTree.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item A|Item B"
oTree.ApplyFilter()
oTree.EndUpdate()

642
How can I get the number of results after a filter is applied

' Occurs when the user presses and then releases the left mouse button over the tree control.
function Click as v ()
	oTree = topparent:CONTROL_ACTIVEX1.activex
	oTree.ClearFilter()
end function

' Notifies your application that the filter is changed.
function FilterChange as v ()
	oTree = topparent:CONTROL_ACTIVEX1.activex
	? "Items.MatchItemCount" 
	? oTree.Items.MatchItemCount 
	? oTree.FormatABC("value < 0 ? `filter applied: ` + abs(value + 1) + ` result(s)` : `no filter`",oTree.Items.MatchItemCount) 
end function

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarPromptVisible = 1
oTree.FilterBarPromptPattern = "Item"
oTree.EndUpdate()

641
How can I programmatically clear the control's filter

' Occurs when the user presses and then releases the left mouse button over the tree control.
function Click as v ()
	oTree = topparent:CONTROL_ACTIVEX1.activex
	oTree.ClearFilter()
end function

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarPromptVisible = 1
oTree.FilterBarPromptPattern = "B"
oTree.EndUpdate()

640
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt-combined)

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarPromptPattern = "B"
oTree.FilterBarPromptVisible = 3 'exFilterBarVisible + exFilterBarPromptVisible
var_Column2 = oTree.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item B"
oTree.ApplyFilter()
oTree.EndUpdate()

639
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt)

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarPromptVisible = 1
oTree.FilterBarPromptPattern = "B"
oTree.EndUpdate()

638
Is it possible to prevent closing the control's filter bar, so it is always shown

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
' oTree.Columns.Add("Item").DisplayFilterButton = .t.
var_Column = oTree.Columns.Add("Item")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.DisplayFilterButton = True"

var_Column1 = oTree.Columns.Add("Pos")
	var_Column1.AllowSizing = .f.
	var_Column1.AllowSort = .f.
	var_Column1.Width = 32
	var_Column1.FormatColumn = "1 apos ``"
	var_Column1.Position = 0
var_Items = oTree.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oTree.FilterBarCaption = "len(value) = 0 ? `<fgcolor=808080>no filter` : value"
oTree.FilterBarPromptVisible = 2
var_Column2 = oTree.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item B"
oTree.ApplyFilter()
oTree.EndUpdate()

637
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 4)

Dim h as N
Dim oTree as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
oTree.VisualDesign = "gBFLBWIgBAEHhEJAEGg6VAkHeLpgwChAOhULB8XAUUg8MAAREEHGMcgRCJ0ei8dhABDEcQAAYAQGKIYBkAKBQAGaAoDDMOQwQwAAxjGKEEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBRWAkEwiBiEQTjea5CgOIAFS7LIqjRQEBxhIaZYIGaiQADENo9TxIMZAfBIHShK6NJABCCSQKkYx0HScRijDIEFwGIQmbKiej4DCiCQQW7OYYRVCNMQSfa8HivJyrcamfp/YBgOBYHb1eLVPR5LwfPCGUw1P6PLxkORZHimK4tSLHV7xVpMIwZFafIQhCCoHomS5NU7UNR0TQUFx9FaGX7rDDsGwLAJ6XRgF4bg2VpnHePpenAN4bH2GwHFmApSjEGBLnWOpRGOTBZHOegrE6BxPiWVJqCweQrn0LgJAWJBjwgaw1gKO5HmWch5h+fovF+G5bmich4BgfZkB8dynRUVYqiUR5rnmex/F6N4tn2AJfnebZ3DEXw3HWXgzAyIwgicKJKBKEIhCeCgiHyHYFEmSAFmqBghFIdgSCeIJygYDAyAgJx6AoIINAMOJNCgCZCGoGoLmMCI+CwJoihMNglCCIhzFCUg0EmMhghWDBkAiQg9CUY4jEYN4Jk2IxklYJoJHIUg+CSZJSESFwkkkGI+FOFIJEIRhPhMCRJCSVoRrSBhiDgTZjHYT4PEkYhwhgJYm0SaIaiaSYuE+GQNlmCIBGCJxjhiZQ5AkMhAg6ExJCkPhPguaAiFYUAlAkKZ0g6HoOEmWR/GHcA4m0OwIlIJIHCRgQshGJhpjoaocieaZiC6GAimkUgehIOwnGYGYIGkah6jaE4rg6SpCjKK5rEOMYlGIGIihKOggloFoqj6L5aGaBo6CkGIkAQjiPpCAAaJILCTJQlKPACDaXJgmSaJsnCdJ4nygKEoijKQpSmKcqCpKoqysK0rivLAsSyLMtC1LYty4Lkui7LwvS+L8wDBMIwzEMUxjHMgyTKMszDNM4zzQNE0jTNQ1TWNc2DZNo2zcN03jfOA4TiOM5DlOY5zoOk6jrOw7TuO88DxPI8z0PU9j3Pg+T6Ps/D9P4/0AQFAkDQRBUGQdCEJQpC0MQ1DkPRBEUSRNFEVBhFkXRhGQ9D6Dxfh+W5gGGd4QH2XQjCmDpFFaKoVB+D5Xmed5+H8YAHnIAh9EwV5Fl0d4MkMKJICmSgygSJAoEmMUCIPgnDCCIOQFYCxJjwFoCcA4kxoF+AIJkAgExegDEgEYQInAzCUAIOEGgfxiiRDYF1Q4EQ2BSCaEQYwbAiKREMpRSymFNDIAkAxT6oVRgSA2qdVKq1WqvVirMZQUhSCnBUMoIgoQRgnGSIQUgkg1hIHYAkAYMROAmHiLsE4xxSCxBwEwCQ0wmDdBsE0GYXBtg2CSPMFIuwYiQBYBQeAcwOCnBCCZgw0g0glBONAQgqQThCGgPQGoBQfiRGmOEZIPAXjsBoPAO4HRThhA0EQSA5BAgaCKJIGg3QdhOCmNUBoQAijTCIF0FwQxpCHDIPAYYMQGgtCmFcaQtRAjZCyFYSojQ2B2BoKwIYFApBXEIBsIQ1QsAWAWEwaA1xCgjAoIAQBAQ="
oTree.Columns.Add("Column")
var_Items = oTree.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,,"Child")
oTree.EndUpdate()

636
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 3)

Dim h as N
Dim oTree as P
Dim var_Appearance as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
var_Appearance = oTree.VisualAppearance
	var_Appearance.Add(3,"gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSBcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfDxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5JlgXIcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIRgwZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOMINCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA=")
	var_Appearance.Add(1,"CP:3 -2 -2 2 2")
	var_Appearance.Add(4,"gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSBcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfDxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCEeBkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchOFSFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQOJtDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI=")
	var_Appearance.Add(2,"CP:4 -2 -2 2 2")
oTree.LinesAtRoot = 1
oTree.HasButtons = 4
oTree.Template = "HasButtonsCustom(0) = 16777216" // oTree.HasButtonsCustom(.f.) = 16777216
oTree.Template = "HasButtonsCustom(1) = 33554432" // oTree.HasButtonsCustom(.t.) = 33554432
oTree.Columns.Add("Column")
var_Items = oTree.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,,"Child")
oTree.EndUpdate()

635
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 2)

Dim h as N
Dim oTree as P
Dim var_Appearance as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
var_Appearance = oTree.VisualAppearance
	var_Appearance.Add(1,"XP:TREEVIEW 2 1")
	var_Appearance.Add(2,"XP:TREEVIEW 2 2")
oTree.Template = "Background(180) = 16777216" // oTree.Background(180) = 16777216
oTree.Template = "Background(181) = 33554432" // oTree.Background(181) = 33554432
oTree.LinesAtRoot = -1
oTree.Columns.Add("Column")
var_Items = oTree.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,,"Child")
oTree.EndUpdate()

634
How can I find if the control is running in DPI mode
Dim oTree as P

oTree = topparent:CONTROL_ACTIVEX1.activex
? oTree.FormatABC("dpi = 1 ? `normal/stretch mode` : `dpi mode`") 

633
How can I change the visual appearance of the +/- buttons (method 1)

Dim h as N
Dim oTree as P
Dim var_Appearance as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
var_Appearance = oTree.VisualAppearance
	var_Appearance.Add(1,"gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSBcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfDxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5JlgXIcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIRgwZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOMINCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA=")
	var_Appearance.Add(2,"gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSBcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfDxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCEeBkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchOFSFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQOJtDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI=")
oTree.LinesAtRoot = -1
oTree.Template = "Background(180) = 16777216" // oTree.Background(180) = 16777216
oTree.Template = "Background(181) = 33554432" // oTree.Background(181) = 33554432
oTree.Columns.Add("Column")
var_Items = oTree.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,,"Child")
oTree.EndUpdate()

632
I am using single selection, the question is if possible to select an item only when the user releases the mouse, as currently it selects the item as soon as the user clicks it
' Fired after a new item has been selected.
function SelectionChanged as v ()
	oTree = topparent:CONTROL_ACTIVEX1.activex
	? "SelectionChanged" 
end function

Dim oTree as P
Dim var_Column as local
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.FreezeEvents(.t.)
oTree.SingleSel = .t.
oTree.SelectOnRelease = .t.
' oTree.Columns.Add("Column").FormatColumn = "1 apos `A-Z`"
var_Column = oTree.Columns.Add("Column")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.FormatColumn = `1 apos ``A-Z```"

var_Items = oTree.Items
	var_Items.AddItem("")
	' var_Items.SelectItem(var_Items.AddItem("")) = .t.
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.SelectItem(AddItem(``)) = True"

	var_Items.AddItem("")
oTree.FreezeEvents(.f.)
oTree.EndUpdate()

631
Is it possible to select nothing
' Fired after a new item has been selected.
function SelectionChanged as v ()
	oTree = topparent:CONTROL_ACTIVEX1.activex
	? "SelectionChanged" 
end function

Dim oTree as P
Dim var_Column as local
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.FreezeEvents(.t.)
oTree.AllowSelectNothing = .t.
' oTree.Columns.Add("Column").FormatColumn = "1 apos `A-Z`"
var_Column = oTree.Columns.Add("Column")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.FormatColumn = `1 apos ``A-Z```"

var_Items = oTree.Items
	var_Items.AddItem("")
	' var_Items.SelectItem(var_Items.AddItem("")) = .t.
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.SelectItem(AddItem(``)) = True"

	var_Items.AddItem("")
oTree.FreezeEvents(.f.)
oTree.EndUpdate()

630
How can I specify the color for control's selection when it loses the focus

Dim oTree as P
Dim var_Column as P
Dim var_Column1 as local
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
var_Column = oTree.Columns.Add("")
	var_Column.AllowSizing = .f.
	var_Column.AllowDragging = .f.
	var_Column.AllowSort = .f.
	var_Column.Width = 24
	' var_Column.Def(2) = .t.
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(2) = True"

' oTree.Columns.Add("Column").FormatColumn = "1 apos `A-Z`"
var_Column1 = oTree.Columns.Add("Column")
oTree.TemplateDef = "dim var_Column1"
oTree.TemplateDef = var_Column1
oTree.Template = "var_Column1.FormatColumn = `1 apos ``A-Z```"

var_Items = oTree.Items
	var_Items.AddItem("")
	' var_Items.SelectItem(var_Items.AddItem("")) = .t.
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.SelectItem(AddItem(``)) = True"

	var_Items.AddItem("")
oTree.Template = "Background(166) = 12895428" // oTree.Background(166) = 12895428
oTree.Template = "Background(167) = 65536" // oTree.Background(167) = 65536
oTree.EndUpdate()

629
How can I change the background color for checked items (EBN color, frame)

' Fired after cell's state has been changed.
function CellStateChanged as v (Item  as  OLE::Exontrol.Tree.1::HITEM,ColIndex  as  N)
	oTree = topparent:CONTROL_ACTIVEX1.activex
	oTree.Refresh()
end function

Dim h as N
Dim hChild as N
Dim oTree as P
Dim var_Appearance as P
Dim var_Column as P
Dim var_ConditionalFormat as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
oTree.SelBackMode = 1
oTree.DefaultItemHeight = 22
var_Column = oTree.Columns.Add("Tasks")
	' var_Column.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(0) = True"

	var_Column.PartialCheck = .t.
var_Appearance = oTree.VisualAppearance
	var_Appearance.Add(2,"gBFLBCJwBAEHhEJAAEhABUkIQAAYAQGKIcBiAKBQAGYBIJDEMQ3DjAUBjMK4ZwTC4AIQjCK4JDKHYJRpHEZgLBMJAAGIZYhhUYRUiYMkiJBGGDIDiGGI2SJAcbTVIEcx9EyUJSgSTJOjCMokTTIU4TTLYASbJafJJhWSaAiyMouDIOMg1BDNIw/Hika6jOgKUisNJXRzWIBTbDlOQ3JqnbCjOQRSrQBoNDAMAiiaKlbwJPK9RoieQXfwUAJrXJcFqXFSLVxNBKAQEBA=")
	var_Appearance.Add(1,"CP:2 1 1 -1 -1")
var_ConditionalFormat = oTree.ConditionalFormats.Add("%CS0 = 1")
	var_ConditionalFormat.BackColor = 16777216
oTree.HeaderVisible = .t.
var_Items = oTree.Items
	h = var_Items.AddItem("Project")
	hChild = var_Items.InsertItem(h,,"Task 1")
	' var_Items.SelectItem(hChild) = .t.
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.SelectItem(hChild) = True"

	hChild = var_Items.InsertItem(h,,"Task 2")
	' var_Items.CellState(hChild,0) = 1
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.CellState(hChild,0) = 1"

	hChild = var_Items.InsertItem(h,,"Task 3")
	' var_Items.CellState(hChild,0) = 1
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.CellState(hChild,0) = 1"

	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

oTree.EndUpdate()

628
How can I change the caption of the checked items (sample 2)

Dim h as N
Dim hChild as N
Dim oTree as P
Dim var_Column as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
var_Column = oTree.Columns.Add("Tasks")
	' var_Column.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(0) = True"

	var_Column.PartialCheck = .t.
	' var_Column.Def(17) = 1
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(17) = 1"

	var_Column.FormatColumn = "%CS0 = 1 ? `<bgcolor=000000><fgcolor=FFFFFF> ` + value + ` </fgcolor></bgcolor>` : value"
oTree.HeaderVisible = .t.
var_Items = oTree.Items
	h = var_Items.AddItem("Project")
	hChild = var_Items.InsertItem(h,,"Task 1")
	' var_Items.SelectItem(hChild) = .t.
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.SelectItem(hChild) = True"

	hChild = var_Items.InsertItem(h,,"Task 2")
	' var_Items.CellState(hChild,0) = 1
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.CellState(hChild,0) = 1"

	hChild = var_Items.InsertItem(h,,"Task 3")
	' var_Items.CellState(hChild,0) = 1
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.CellState(hChild,0) = 1"

	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

oTree.EndUpdate()

627
How can I change the caption of the checked items (sample 1)

Dim h as N
Dim hChild as N
Dim oTree as P
Dim var_Column as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
var_Column = oTree.Columns.Add("Tasks")
	' var_Column.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(0) = True"

	var_Column.PartialCheck = .t.
	' var_Column.Def(17) = 1
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(17) = 1"

	var_Column.FormatColumn = "value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)"
oTree.HeaderVisible = .t.
var_Items = oTree.Items
	h = var_Items.AddItem("Project")
	hChild = var_Items.InsertItem(h,,"Task 1")
	' var_Items.SelectItem(hChild) = .t.
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.SelectItem(hChild) = True"

	hChild = var_Items.InsertItem(h,,"Task 2")
	' var_Items.CellState(hChild,0) = 1
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.CellState(hChild,0) = 1"

	hChild = var_Items.InsertItem(h,,"Task 3")
	' var_Items.CellState(hChild,0) = 1
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.CellState(hChild,0) = 1"

	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

oTree.EndUpdate()

626
How can I change the font for the checked items

' Fired after cell's state has been changed.
function CellStateChanged as v (Item  as  OLE::Exontrol.Tree.1::HITEM,ColIndex  as  N)
	oTree = topparent:CONTROL_ACTIVEX1.activex
	oTree.Refresh()
end function

Dim f as P
Dim h as N
Dim hChild as N
Dim oTree as P
Dim var_Column as P
Dim var_ConditionalFormat as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
oTree.DefaultItemHeight = 22
var_Column = oTree.Columns.Add("Tasks")
	' var_Column.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(0) = True"

	var_Column.PartialCheck = .t.
var_ConditionalFormat = oTree.ConditionalFormats.Add("%CS0 = 1")
	f = OLE.Create("StdFont")
		f.Name = oTree.Font.Name
		f.Size = 12
	var_ConditionalFormat.Font = f
oTree.HeaderVisible = .t.
var_Items = oTree.Items
	h = var_Items.AddItem("Project")
	hChild = var_Items.InsertItem(h,,"Task 1")
	' var_Items.SelectItem(hChild) = .t.
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.SelectItem(hChild) = True"

	hChild = var_Items.InsertItem(h,,"Task 2")
	' var_Items.CellState(hChild,0) = 1
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.CellState(hChild,0) = 1"

	hChild = var_Items.InsertItem(h,,"Task 3")
	' var_Items.CellState(hChild,0) = 1
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.CellState(hChild,0) = 1"

	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

oTree.EndUpdate()

625
How can I bold the checked items

' Fired after cell's state has been changed.
function CellStateChanged as v (Item  as  OLE::Exontrol.Tree.1::HITEM,ColIndex  as  N)
	oTree = topparent:CONTROL_ACTIVEX1.activex
	oTree.Refresh()
end function

Dim h as N
Dim hChild as N
Dim oTree as P
Dim var_Column as P
Dim var_ConditionalFormat as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
var_Column = oTree.Columns.Add("Tasks")
	' var_Column.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(0) = True"

	var_Column.PartialCheck = .t.
var_ConditionalFormat = oTree.ConditionalFormats.Add("%CS0 = 1")
	var_ConditionalFormat.Bold = .t.
oTree.HeaderVisible = .t.
var_Items = oTree.Items
	h = var_Items.AddItem("Project")
	hChild = var_Items.InsertItem(h,,"Task 1")
	' var_Items.SelectItem(hChild) = .t.
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.SelectItem(hChild) = True"

	hChild = var_Items.InsertItem(h,,"Task 2")
	' var_Items.CellState(hChild,0) = 1
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.CellState(hChild,0) = 1"

	hChild = var_Items.InsertItem(h,,"Task 3")
	' var_Items.CellState(hChild,0) = 1
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.CellState(hChild,0) = 1"

	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

oTree.EndUpdate()

624
How can I change the foreground color for checked items

' Fired after cell's state has been changed.
function CellStateChanged as v (Item  as  OLE::Exontrol.Tree.1::HITEM,ColIndex  as  N)
	oTree = topparent:CONTROL_ACTIVEX1.activex
	oTree.Refresh()
end function

Dim h as N
Dim hChild as N
Dim oTree as P
Dim var_Column as P
Dim var_ConditionalFormat as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
oTree.SelBackMode = 1
var_Column = oTree.Columns.Add("Tasks")
	' var_Column.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(0) = True"

	var_Column.PartialCheck = .t.
var_ConditionalFormat = oTree.ConditionalFormats.Add("%CS0 = 1")
	var_ConditionalFormat.ForeColor = 8421631
oTree.HeaderVisible = .t.
var_Items = oTree.Items
	h = var_Items.AddItem("Project")
	hChild = var_Items.InsertItem(h,,"Task 1")
	' var_Items.SelectItem(hChild) = .t.
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.SelectItem(hChild) = True"

	hChild = var_Items.InsertItem(h,,"Task 2")
	' var_Items.CellState(hChild,0) = 1
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.CellState(hChild,0) = 1"

	hChild = var_Items.InsertItem(h,,"Task 3")
	' var_Items.CellState(hChild,0) = 1
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.CellState(hChild,0) = 1"

	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

oTree.EndUpdate()

623
How can I change the background color for checked items (solid color)

' Fired after cell's state has been changed.
function CellStateChanged as v (Item  as  OLE::Exontrol.Tree.1::HITEM,ColIndex  as  N)
	oTree = topparent:CONTROL_ACTIVEX1.activex
	oTree.Refresh()
end function

Dim h as N
Dim hChild as N
Dim oTree as P
Dim var_Column as P
Dim var_ConditionalFormat as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
oTree.SelBackMode = 1
var_Column = oTree.Columns.Add("Tasks")
	' var_Column.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(0) = True"

	var_Column.PartialCheck = .t.
var_ConditionalFormat = oTree.ConditionalFormats.Add("%CS0 = 1")
	var_ConditionalFormat.BackColor = 8421631
oTree.HeaderVisible = .t.
var_Items = oTree.Items
	h = var_Items.AddItem("Project")
	hChild = var_Items.InsertItem(h,,"Task 1")
	' var_Items.SelectItem(hChild) = .t.
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.SelectItem(hChild) = True"

	hChild = var_Items.InsertItem(h,,"Task 2")
	' var_Items.CellState(hChild,0) = 1
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.CellState(hChild,0) = 1"

	hChild = var_Items.InsertItem(h,,"Task 3")
	' var_Items.CellState(hChild,0) = 1
	oTree.TemplateDef = "dim var_Items,hChild"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = hChild
	oTree.Template = "var_Items.CellState(hChild,0) = 1"

	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

oTree.EndUpdate()

622
How can I export the cell's state as well

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Column2 as local
Dim var_Column3 as P
Dim var_Columns as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
var_Columns = oTree.Columns
	' var_Columns.Add("C1").Def(0) = .t.
	var_Column = var_Columns.Add("C1")
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(0) = True"

	' var_Columns.Add("C2").FormatColumn = "1 index `A-Z`"
	var_Column1 = var_Columns.Add("C2")
	oTree.TemplateDef = "dim var_Column1"
	oTree.TemplateDef = var_Column1
	oTree.Template = "var_Column1.FormatColumn = `1 index ``A-Z```"

	' var_Columns.Add("C3").FormatColumn = "100 index ``"
	var_Column2 = var_Columns.Add("C3")
	oTree.TemplateDef = "dim var_Column2"
	oTree.TemplateDef = var_Column2
	oTree.Template = "var_Column2.FormatColumn = `100 index `````"

var_Items = oTree.Items
	var_Items.AddItem("Item 1")
	' var_Items.CellState(var_Items.AddItem("Item 2")) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(`Item 2`)) = 1"

	' var_Items.CellState(var_Items.AddItem("Item 3")) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(`Item 3`)) = 1"

oTree.EndUpdate()
? "Export CSV Items including Check-State:" 
oTree.BeginUpdate()
var_Column3 = oTree.Columns.Add("Check")
	var_Column3.Position = 0
	var_Column3.FormatColumn = "%CS0"
? oTree.Export("") 
oTree.Columns.Remove("Check")
oTree.EndUpdate()

621
The BeforeExpandItem event is fired when clicking the drop down filter button. What we can do to prevent that (method 2)
' Fired before an item is about to be expanded (collapsed).
function BeforeExpandItem as v (Item  as  OLE::Exontrol.Tree.1::HITEM,Cancel  as  A)
	oTree = topparent:CONTROL_ACTIVEX1.activex
	? "BeforeExpandItem" 
	? Item 
	? "ColumnFromPoint" 
	? oTree.ColumnFromPoint(-1,-1) 
	? "ColumnFromPoint return -1, if the user clicks the +/- glitch, else it returns the index of the column where the click occurs." 
	oTree.Items.InsertItem(Item,,"new child")
end function

Dim oTree as P
Dim var_Column as local
Dim var_Columns as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
var_Columns = oTree.Columns
	' var_Columns.Add("Items").DisplayFilterButton = .t.
	var_Column = var_Columns.Add("Items")
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.DisplayFilterButton = True"

var_Items = oTree.Items
	' var_Items.ItemHasChildren(var_Items.InsertItem(,,"Group 1")) = .t.
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.ItemHasChildren(InsertItem(,,`Group 1`)) = True"

	' var_Items.ItemHasChildren(var_Items.InsertItem(,,"Group 2")) = .t.
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.ItemHasChildren(InsertItem(,,`Group 2`)) = True"

oTree.EndUpdate()

620
The BeforeExpandItem event is fired when clicking the drop down filter button. What we can do to prevent that (method 1)
' Fired before an item is about to be expanded (collapsed).
function BeforeExpandItem as v (Item  as  OLE::Exontrol.Tree.1::HITEM,Cancel  as  A)
	oTree = topparent:CONTROL_ACTIVEX1.activex
	? "BeforeExpandItem" 
	? Item 
	oTree.Items.InsertItem(Item,,"new child")
end function

Dim oTree as P
Dim var_Column as P
Dim var_Columns as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
var_Columns = oTree.Columns
	var_Column = var_Columns.Add("Items")
		var_Column.DisplayFilterButton = .t.
		var_Column.FilterList = 4
var_Items = oTree.Items
	' var_Items.ItemHasChildren(var_Items.InsertItem(,,"Group 1")) = .t.
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.ItemHasChildren(InsertItem(,,`Group 1`)) = True"

	' var_Items.ItemHasChildren(var_Items.InsertItem(,,"Group 2")) = .t.
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.ItemHasChildren(InsertItem(,,`Group 2`)) = True"

oTree.EndUpdate()

619
How do I change the drop down filter icon/button (black)

Dim oTree as P
Dim var_Appearance as P
Dim var_Column as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
var_Appearance = oTree.VisualAppearance
	var_Appearance.Add(1,"gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQgmPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThdr4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA")
oTree.Template = "Background(32) = -1" // oTree.Background(32) = -1
oTree.Template = "Background(0) = 16777216" // oTree.Background(0) = 16777216
oTree.Template = "Background(26) = 65536" // oTree.Background(26) = 65536
oTree.Template = "Background(27) = 16777215" // oTree.Background(27) = 16777215
oTree.Template = "Description(25) = `<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>`" // oTree.Description(25) = "<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>"
oTree.HeaderAppearance = 0
oTree.BackColorHeader = 0
oTree.ForeColorHeader = 16777215
oTree.HeaderVisible = .t.
oTree.BackColorLevelHeader = oTree.BackColor
var_Column = oTree.Columns.Add("Filter")
	var_Column.FilterList = 8448 'exShowExclude + exShowCheckBox
	var_Column.DisplayFilterButton = .t.
	var_Column.AllowSort = .f.
	var_Column.AllowDragging = .f.
var_Items = oTree.Items
	var_Items.AddItem("One")
	var_Items.AddItem("Two")
	var_Items.AddItem("Three")
oTree.EndUpdate()

618
How do I change the drop down filter icon/button (white)

Dim oTree as P
Dim var_Appearance as P
Dim var_Column as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
var_Appearance = oTree.VisualAppearance
	var_Appearance.Add(2,"gBFLBCJwBAEHhEJAAEhABX8GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwYgmNYiTLAcgANJ0WBaGIZJ4gOT5fDKMoEDRRYADFCscwxJybQAqGQKKb+VgAVY/cTyBIAEQSKA0TDOQ5TSKWB4JPZQRBEbZMNBtBIUJquKaqShdQJCU5FdY3Xblez9P7AMBwLFEC4NQ8YNYuPhjR4dRTIMhvVAsUArFh8Zg9GZZFjmDIDT4ydBLTQwcyVIKnP5qOa6XbmPoCQDYKxZHYxPzVDa3axuL76dqCAT7XrXNy1TbNRrzQKfcJqfCbdw2YaDZLOOT3fjuI4hhKaRzFAHJ+jYQ4xHuY4gHuGIXGeExqC8Tp6C+PoEm+G5ImycRgh0XwvDGa5rgOeoejyXwnFeQp2mkf5ClgBB9gCWIYAwfYAEKV58mkdwOggNArgOXY2EWLoDkKOA0mgbhOGgZApgaSBIHWSYHSmbApgYThmESZYJkIeIkgeCpfliLIHgpMIcmUYYYmODAlg2SI4mWfRfGOEguDcCRjFYAJihCQhJBSDoRmONgKEcI4kFCEJhhOVYTmYnAlEAQhWBMJYJGYWoWmWSR2F6F5lnkWAQhUAgpEieRWEuSYkjWGpmkmNhuhuZwJkYcocmaaYkjyEhngnUA6lEFAlAEgI=")
	var_Appearance.Add(1,"CP:2 -14 -4 -2 4")
oTree.Template = "Background(0) = 16777216" // oTree.Background(0) = 16777216
oTree.Template = "Background(32) = BackColor" // oTree.Background(32) = oTree.BackColor
oTree.HeaderAppearance = 0
oTree.BackColorHeader = 16777215
oTree.HeaderVisible = .t.
oTree.HeaderHeight = 24
oTree.BackColorLevelHeader = oTree.BackColor
var_Column = oTree.Columns.Add("Filter")
	var_Column.DisplayFilterButton = .t.
	var_Column.AllowSort = .f.
	var_Column.AllowDragging = .f.
oTree.EndUpdate()

617
Do you have any Fit-To-Page options when printing the control (W x T, Fit-To )

Dim oTree as P
Dim rs as P
Dim var_Print as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.ColumnAutoResize = .f.
oTree.ContinueColumnScroll = .f.
rs = OLE.Create("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExTree\Sample\Access\sample.accdb",3,3)
oTree.DataSource = rs
oTree.EndUpdate()
var_Print = OLE.Create("Exontrol.Print")
	var_Print.Options = "FitToPage =2 x 1"
	var_Print.PrintExt = oTree
	var_Print.Preview()

616
Do you have any Fit-To-Page options when printing the control ( x T, Fit-To Tall )

Dim oTree as P
Dim rs as P
Dim var_Print as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.ColumnAutoResize = .f.
oTree.ContinueColumnScroll = .f.
rs = OLE.Create("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExTree\Sample\Access\sample.accdb",3,3)
oTree.DataSource = rs
oTree.EndUpdate()
var_Print = OLE.Create("Exontrol.Print")
	var_Print.Options = "FitToPage = x 2"
	var_Print.PrintExt = oTree
	var_Print.Preview()

615
Do you have any Fit-To-Page options when printing the control ( W x, Fit-To Wide )

Dim oTree as P
Dim rs as P
Dim var_Print as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.ColumnAutoResize = .f.
oTree.ContinueColumnScroll = .f.
rs = OLE.Create("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExTree\Sample\Access\sample.accdb",3,3)
oTree.DataSource = rs
oTree.EndUpdate()
var_Print = OLE.Create("Exontrol.Print")
	var_Print.Options = "FitToPage = 2 x"
	var_Print.PrintExt = oTree
	var_Print.Preview()

614
Do you have any Fit-To-Page options when printing the control ( percent view, Adjust-To )

Dim oTree as P
Dim rs as P
Dim var_Print as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.ColumnAutoResize = .f.
oTree.ContinueColumnScroll = .f.
rs = OLE.Create("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExTree\Sample\Access\sample.accdb",3,3)
oTree.DataSource = rs
oTree.EndUpdate()
var_Print = OLE.Create("Exontrol.Print")
	var_Print.Options = "FitToPage = 50%"
	var_Print.PrintExt = oTree
	var_Print.Preview()

613
How do I prevent changing the cell's state ( check-box state )
' Fired before cell's state is about to be changed.
function CellStateChanging as v (Item  as  OLE::Exontrol.Tree.1::HITEM,ColIndex  as  N,NewState  as  N)
	Dim var_Items as P
	oTree = topparent:CONTROL_ACTIVEX1.activex
	var_Items = oTree.Items
		NewState = var_Items.CellState(Item,ColIndex)
end function

Dim h as N
Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = -1
var_Column = oTree.Columns.Add("P1")
	' var_Column.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(0) = True"

	var_Column.PartialCheck = .t.
var_Column1 = oTree.Columns.Add("P2")
	' var_Column1.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column1"
	oTree.TemplateDef = var_Column1
	oTree.Template = "var_Column1.Def(0) = True"

	var_Column1.PartialCheck = .t.
var_Items = oTree.Items
	h = var_Items.AddItem("Root")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

oTree.EndUpdate()

612
How can I use the CellState with ConditionalFormat/ComputedField/FormatColumn

' Fired after cell's state has been changed.
function CellStateChanged as v (Item  as  OLE::Exontrol.Tree.1::HITEM,ColIndex  as  N)
	oTree = topparent:CONTROL_ACTIVEX1.activex
end function

Dim h as N
Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.LinesAtRoot = 4
oTree.SelBackMode = 1
var_Column = oTree.Columns.Add("Items")
	' var_Column.Def(0) = .t.
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(0) = True"

	var_Column.PartialCheck = .t.
var_Column1 = oTree.Columns.Add("Format")
	var_Column1.FormatColumn = "%CS0"
	var_Column1.Caption = var_Column1.FormatColumn
	' var_Column1.Def(5) = 8421504
	oTree.TemplateDef = "dim var_Column1"
	oTree.TemplateDef = var_Column1
	oTree.Template = "var_Column1.Def(5) = 8421504"

	' var_Column1.Def(8) = var_Column1.Def(5)
	oTree.TemplateDef = "dim var_Column1"
	oTree.TemplateDef = var_Column1
	oTree.Template = "var_Column1.Def(8) = Def(5)"

var_Items = oTree.Items
	h = var_Items.AddItem("Root")
	var_Items.InsertItem(h,,"Item 1")
	' var_Items.CellState(var_Items.InsertItem(h,,"Item 2"),0) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(InsertItem(h,,`Item 2`),0) = 1"

	' var_Items.CellState(var_Items.InsertItem(h,,"Item 3"),0) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(InsertItem(h,,`Item 3`),0) = 1"

	' var_Items.ExpandItem(h) = .t.
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.ExpandItem(h) = True"

oTree.EndUpdate()

611
How can I use the CellData with ConditionalFormat/ComputedField/FormatColumn

Dim oTree as P
Dim var_Column as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.Columns.Add("Items")
var_Column = oTree.Columns.Add("Format")
	var_Column.FormatColumn = "%CD0"
	var_Column.Caption = var_Column.FormatColumn
	' var_Column.Def(5) = 8421504
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(5) = 8421504"

	' var_Column.Def(8) = var_Column.Def(5)
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(8) = Def(5)"

var_Items = oTree.Items
	' var_Items.CellData(var_Items.AddItem("Item 1"),0) = 1234
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellData(AddItem(`Item 1`),0) = 1234"

	' var_Items.CellData(var_Items.AddItem("Item 2"),0) = "this is just an user data"
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellData(AddItem(`Item 2`),0) = `this is just an user data`"

	' var_Items.CellData(var_Items.AddItem("Item 3"),0) = {01/01/2001}
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellData(AddItem(`Item 3`),0) = #1/1/2001#"

oTree.EndUpdate()

610
How can I use the CellCaption with ConditionalFormat/ComputedField/FormatColumn

Dim h as N
Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.Columns.Add("Items")
var_Column = oTree.Columns.Add("Format")
	var_Column.FormatColumn = "%0"
	var_Column.Caption = var_Column.FormatColumn
	' var_Column.Def(5) = 8421504
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(5) = 8421504"

	' var_Column.Def(8) = var_Column.Def(5)
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Def(8) = Def(5)"

	var_Column.Width = 96
	var_Column.AllowSizing = .f.
var_Column1 = oTree.Columns.Add("Format")
	var_Column1.FormatColumn = "%C0"
	var_Column1.Caption = var_Column1.FormatColumn
	' var_Column1.Def(5) = 8421504
	oTree.TemplateDef = "dim var_Column1"
	oTree.TemplateDef = var_Column1
	oTree.Template = "var_Column1.Def(5) = 8421504"

	' var_Column1.Def(8) = var_Column1.Def(5)
	oTree.TemplateDef = "dim var_Column1"
	oTree.TemplateDef = var_Column1
	oTree.Template = "var_Column1.Def(8) = Def(5)"

	var_Column1.Width = 96
	var_Column1.AllowSizing = .f.
var_Items = oTree.Items
	var_Items.AddItem(1)
	h = var_Items.AddItem(0)
	' var_Items.CellCaption(h,0) = "<b>HTML</b> Text"
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,0) = `<b>HTML</b> Text`"

	' var_Items.CellCaptionFormat(h,0) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaptionFormat(h,0) = 1"

	var_Items.AddItem(2)
oTree.EndUpdate()

609
Can I display the radio-button with a solid color

Dim oTree as P
Dim var_Column as local
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.Template = "RadioImage(0) = 32699122" // oTree.RadioImage(.f.) = 32699122
oTree.Template = "RadioImage(1) = 16777216" // oTree.RadioImage(.t.) = 16777216
' oTree.Columns.Add("Check").Def(1) = .t.
var_Column = oTree.Columns.Add("Check")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.Def(1) = True"

var_Items = oTree.Items
	var_Items.AddItem("Radio 1")
	' var_Items.CellState(var_Items.AddItem("Radio 2"),0) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(`Radio 2`),0) = 1"

	var_Items.AddItem("Radio 1")
oTree.EndUpdate()

608
Can I display the check-box with a solid color

Dim oTree as P
Dim var_Column as local
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.Template = "CheckImage(0) = 32699122" // oTree.CheckImage(0) = 32699122
oTree.Template = "CheckImage(1) = 16777216" // oTree.CheckImage(1) = 16777216
' oTree.Columns.Add("Check").Def(0) = .t.
var_Column = oTree.Columns.Add("Check")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.Def(0) = True"

var_Items = oTree.Items
	var_Items.AddItem("Check 1")
	' var_Items.CellState(var_Items.AddItem("Check 2"),0) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(`Check 2`),0) = 1"

	var_Items.AddItem("Check 3")
oTree.EndUpdate()

607
Can I display the column's multiple-lines caption vertically oriented (method 2)

Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Columns as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.HeaderHeight = 48
oTree.ColumnAutoResize = .t.
var_Columns = oTree.Columns
	var_Columns.Add("And others ...")
	var_Column = var_Columns.Add("")
		var_Column.HTMLCaption = "First Column"
		var_Column.HeaderVertical = .t.
		var_Column.Width = 36
		var_Column.AllowSizing = .f.
		' var_Column.Def(0) = .t.
		oTree.TemplateDef = "dim var_Column"
		oTree.TemplateDef = var_Column
		oTree.Template = "var_Column.Def(0) = True"

		' var_Column.Def(48) = 8
		oTree.TemplateDef = "dim var_Column"
		oTree.TemplateDef = var_Column
		oTree.Template = "var_Column.Def(48) = 8"

		var_Column.Position = 0
	var_Column1 = var_Columns.Add("")
		var_Column1.HTMLCaption = "<c><b>Second Column"
		var_Column1.HeaderVertical = .t.
		var_Column1.Width = 36
		var_Column1.AllowSizing = .f.
		' var_Column1.Def(0) = .t.
		oTree.TemplateDef = "dim var_Column1"
		oTree.TemplateDef = var_Column1
		oTree.Template = "var_Column1.Def(0) = True"

		' var_Column1.Def(48) = 8
		oTree.TemplateDef = "dim var_Column1"
		oTree.TemplateDef = var_Column1
		oTree.Template = "var_Column1.Def(48) = 8"

		var_Column1.Position = 1
	var_Column2 = var_Columns.Add("")
		var_Column2.HTMLCaption = "<r>Third Column"
		var_Column2.HeaderVertical = .t.
		var_Column2.Width = 36
		var_Column2.AllowSizing = .f.
		' var_Column2.Def(0) = .t.
		oTree.TemplateDef = "dim var_Column2"
		oTree.TemplateDef = var_Column2
		oTree.Template = "var_Column2.Def(0) = True"

		' var_Column2.Def(48) = 8
		oTree.TemplateDef = "dim var_Column2"
		oTree.TemplateDef = var_Column2
		oTree.Template = "var_Column2.Def(48) = 8"

		var_Column2.Position = 2
var_Items = oTree.Items
	' var_Items.CellState(var_Items.AddItem("Item 1"),3) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(`Item 1`),3) = 1"

	' var_Items.CellState(var_Items.AddItem("Item 2"),2) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(`Item 2`),2) = 1"

	' var_Items.CellState(var_Items.AddItem("Item 3"),1) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(`Item 3`),1) = 1"

oTree.EndUpdate()

606
Can I display the column's multiple-lines caption vertically oriented (method 1)

Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Columns as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.HeaderHeight = 48
oTree.HeaderSingleLine = .f.
oTree.ColumnAutoResize = .t.
var_Columns = oTree.Columns
	var_Columns.Add("And others ...")
	var_Column = var_Columns.Add("First Column")
		var_Column.HeaderVertical = .t.
		var_Column.Width = 36
		var_Column.AllowSizing = .f.
		' var_Column.Def(0) = .t.
		oTree.TemplateDef = "dim var_Column"
		oTree.TemplateDef = var_Column
		oTree.Template = "var_Column.Def(0) = True"

		' var_Column.Def(48) = 8
		oTree.TemplateDef = "dim var_Column"
		oTree.TemplateDef = var_Column
		oTree.Template = "var_Column.Def(48) = 8"

		var_Column.Position = 0
	var_Column1 = var_Columns.Add("Second Column")
		var_Column1.HeaderBold = .t.
		var_Column1.HeaderVertical = .t.
		var_Column1.Width = 36
		var_Column1.AllowSizing = .f.
		' var_Column1.Def(0) = .t.
		oTree.TemplateDef = "dim var_Column1"
		oTree.TemplateDef = var_Column1
		oTree.Template = "var_Column1.Def(0) = True"

		' var_Column1.Def(48) = 8
		oTree.TemplateDef = "dim var_Column1"
		oTree.TemplateDef = var_Column1
		oTree.Template = "var_Column1.Def(48) = 8"

		var_Column1.Position = 1
	var_Column2 = var_Columns.Add("Third Column")
		var_Column2.HeaderVertical = .t.
		var_Column2.Width = 36
		var_Column2.AllowSizing = .f.
		' var_Column2.Def(0) = .t.
		oTree.TemplateDef = "dim var_Column2"
		oTree.TemplateDef = var_Column2
		oTree.Template = "var_Column2.Def(0) = True"

		' var_Column2.Def(48) = 8
		oTree.TemplateDef = "dim var_Column2"
		oTree.TemplateDef = var_Column2
		oTree.Template = "var_Column2.Def(48) = 8"

		var_Column2.Position = 2
var_Items = oTree.Items
	' var_Items.CellState(var_Items.AddItem("Item 1"),3) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(`Item 1`),3) = 1"

	' var_Items.CellState(var_Items.AddItem("Item 2"),2) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(`Item 2`),2) = 1"

	' var_Items.CellState(var_Items.AddItem("Item 3"),1) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(`Item 3`),1) = 1"

oTree.EndUpdate()

605
Can I display the column's caption vertically oriented (method 2)

Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Columns as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.HeaderHeight = 48
oTree.ColumnAutoResize = .t.
var_Columns = oTree.Columns
	var_Columns.Add("And others ...")
	var_Column = var_Columns.Add("")
		var_Column.HTMLCaption = "First"
		var_Column.HeaderVertical = .t.
		var_Column.Width = 20
		var_Column.AllowSizing = .f.
		' var_Column.Def(0) = .t.
		oTree.TemplateDef = "dim var_Column"
		oTree.TemplateDef = var_Column
		oTree.Template = "var_Column.Def(0) = True"

		var_Column.Position = 0
	var_Column1 = var_Columns.Add("")
		var_Column1.HTMLCaption = "<c><b>Second"
		var_Column1.HeaderVertical = .t.
		var_Column1.Width = 20
		var_Column1.AllowSizing = .f.
		' var_Column1.Def(0) = .t.
		oTree.TemplateDef = "dim var_Column1"
		oTree.TemplateDef = var_Column1
		oTree.Template = "var_Column1.Def(0) = True"

		var_Column1.Position = 1
	var_Column2 = var_Columns.Add("")
		var_Column2.HTMLCaption = "<r>Third"
		var_Column2.HeaderVertical = .t.
		var_Column2.Width = 20
		var_Column2.AllowSizing = .f.
		' var_Column2.Def(0) = .t.
		oTree.TemplateDef = "dim var_Column2"
		oTree.TemplateDef = var_Column2
		oTree.Template = "var_Column2.Def(0) = True"

		var_Column2.Position = 2
var_Items = oTree.Items
	' var_Items.CellState(var_Items.AddItem("Item 1"),3) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(`Item 1`),3) = 1"

	' var_Items.CellState(var_Items.AddItem("Item 2"),2) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(`Item 2`),2) = 1"

	' var_Items.CellState(var_Items.AddItem("Item 3"),1) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(`Item 3`),1) = 1"

oTree.EndUpdate()

604
Can I display the column's caption vertically oriented (method 1)

Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Columns as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.HeaderHeight = 48
oTree.ColumnAutoResize = .t.
var_Columns = oTree.Columns
	var_Columns.Add("And others ...")
	var_Column = var_Columns.Add("First")
		var_Column.HeaderVertical = .t.
		var_Column.Width = 20
		var_Column.AllowSizing = .f.
		' var_Column.Def(0) = .t.
		oTree.TemplateDef = "dim var_Column"
		oTree.TemplateDef = var_Column
		oTree.Template = "var_Column.Def(0) = True"

		var_Column.Position = 0
	var_Column1 = var_Columns.Add("Second")
		var_Column1.HeaderBold = .t.
		var_Column1.HeaderVertical = .t.
		var_Column1.Width = 20
		var_Column1.AllowSizing = .f.
		' var_Column1.Def(0) = .t.
		oTree.TemplateDef = "dim var_Column1"
		oTree.TemplateDef = var_Column1
		oTree.Template = "var_Column1.Def(0) = True"

		var_Column1.Position = 1
	var_Column2 = var_Columns.Add("Third")
		var_Column2.HeaderVertical = .t.
		var_Column2.Width = 20
		var_Column2.AllowSizing = .f.
		' var_Column2.Def(0) = .t.
		oTree.TemplateDef = "dim var_Column2"
		oTree.TemplateDef = var_Column2
		oTree.Template = "var_Column2.Def(0) = True"

		var_Column2.Position = 2
var_Items = oTree.Items
	' var_Items.CellState(var_Items.AddItem("Item 1"),3) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(`Item 1`),3) = 1"

	' var_Items.CellState(var_Items.AddItem("Item 2"),2) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(`Item 2`),2) = 1"

	' var_Items.CellState(var_Items.AddItem("Item 3"),1) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(`Item 3`),1) = 1"

oTree.EndUpdate()

603
How do I automatically bold items being checked

' Fired after cell's state has been changed.
function CellStateChanged as v (Item  as  OLE::Exontrol.Tree.1::HITEM,ColIndex  as  N)
	oTree = topparent:CONTROL_ACTIVEX1.activex
end function

Dim oTree as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_ConditionalFormat as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.SelBackMode = 1
var_ConditionalFormat = oTree.ConditionalFormats.Add("%CS0","check")
	var_ConditionalFormat.Bold = .t.
' oTree.Columns.Add("Items").Def(0) = .t.
var_Column = oTree.Columns.Add("Items")
oTree.TemplateDef = "dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.Def(0) = True"

' oTree.Columns.Add(oTree.ConditionalFormats.Item("check").Expression).FormatColumn = oTree.ConditionalFormats.Item("check").Expression
var_Column1 = oTree.Columns.Add(oTree.ConditionalFormats.Item("check").Expression)
oTree.TemplateDef = "dim var_Column1"
oTree.TemplateDef = var_Column1
oTree.Template = "var_Column1.FormatColumn = Me.ConditionalFormats.Item(`check`).Expression"

var_Items = oTree.Items
	var_Items.AddItem("Item 1")
	' var_Items.CellState(var_Items.AddItem("Item 2"),0) = 1
	oTree.TemplateDef = "dim var_Items"
	oTree.TemplateDef = var_Items
	oTree.Template = "var_Items.CellState(AddItem(`Item 2`),0) = 1"

	var_Items.AddItem("Item 3")
oTree.EndUpdate()

602
How can I include the child items, when a filter is applied

Dim h0 as N
Dim oTree as P
Dim var_Column as local
Dim var_Column1 as local
Dim var_Columns as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
oTree.ColumnAutoResize = .t.
oTree.ContinueColumnScroll = .f.
oTree.MarkSearchColumn = .f.
oTree.SearchColumnIndex = 1
oTree.Indent = 16
oTree.LinesAtRoot = -1
oTree.FilterBarPromptVisible = .t.
oTree.FilterBarPromptPattern = "Nancy"
oTree.FilterInclude = 1
var_Columns = oTree.Columns
	' var_Columns.Add("Name").Width = 96
	var_Column = var_Columns.Add("Name")
	oTree.TemplateDef = "dim var_Column"
	oTree.TemplateDef = var_Column
	oTree.Template = "var_Column.Width = 96"

	' var_Columns.Add("Title").Width = 96
	var_Column1 = var_Columns.Add("Title")
	oTree.TemplateDef = "dim var_Column1"
	oTree.TemplateDef = var_Column1
	oTree.Template = "var_Column1.Width = 96"

	var_Columns.Add("City")
var_Items = oTree.Items
	h0 = var_Items.AddItem("Nancy Davolio")
	' var_Items.CellCaption(h0,1) = "Sales Representative"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,1) = `Sales Representative`"

	' var_Items.CellCaption(h0,2) = "Seattle"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,2) = `Seattle`"

	h0 = var_Items.InsertItem(h0,,"Andrew Fuller")
	' var_Items.CellCaption(h0,1) = "Vice President, Sales"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,1) = `Vice President, Sales`"

	' var_Items.CellCaption(h0,2) = "Tacoma"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,2) = `Tacoma`"

	h0 = var_Items.InsertItem(h0,,"Michael Suyama")
	' var_Items.CellCaption(h0,1) = "Sales Representative"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,1) = `Sales Representative`"

	' var_Items.CellCaption(h0,2) = "London"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,2) = `London`"

	h0 = var_Items.AddItem("Janet Leverling")
	' var_Items.CellCaption(h0,1) = "Sales Representative"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,1) = `Sales Representative`"

	' var_Items.CellCaption(h0,2) = "Kirkland"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,2) = `Kirkland`"

	h0 = var_Items.InsertItem(h0,,"Margaret Peacock")
	' var_Items.CellCaption(h0,1) = "Sales Representative"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,1) = `Sales Representative`"

	' var_Items.CellCaption(h0,2) = "Redmond"
	oTree.TemplateDef = "dim var_Items,h0"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h0
	oTree.Template = "var_Items.CellCaption(h0,2) = `Redmond`"

oTree.ApplyFilter()
oTree.EndUpdate()

601
How do I get sorted the column as string, numeric, date, date and time. Also how can it be applied to drop down filter panel

Dim h as N
Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Column4 as P
Dim var_Items as P

oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.BeginUpdate()
var_Column = oTree.Columns.Add("Date")
	var_Column.SortType = 2
	var_Column.DisplayFilterButton = .t.
	var_Column.DisplayFilterPattern = .f.
	var_Column.DisplayFilterDate = .t.
	var_Column.FilterList = 1296 'exShowFocusItem + exShowCheckBox + exSortItemsDesc
var_Column1 = oTree.Columns.Add("DateTime")
	var_Column1.SortType = 3
	var_Column1.DisplayFilterButton = .t.
	var_Column1.DisplayFilterPattern = .f.
	var_Column1.FilterList = 1296 'exShowFocusItem + exShowCheckBox + exSortItemsDesc
var_Column2 = oTree.Columns.Add("Time")
	var_Column2.SortType = 4
	var_Column2.DisplayFilterButton = .t.
	var_Column2.DisplayFilterPattern = .f.
	var_Column2.FilterList = 1296 'exShowFocusItem + exShowCheckBox + exSortItemsDesc
	var_Column2.FormatColumn = "time(value)"
var_Column3 = oTree.Columns.Add("Numeric")
	var_Column3.SortType = 1
	var_Column3.DisplayFilterButton = .t.
	var_Column3.FilterList = 1296 'exShowFocusItem + exShowCheckBox + exSortItemsDesc
var_Column4 = oTree.Columns.Add("String")
	var_Column4.DisplayFilterButton = .t.
	var_Column4.FilterList = 1296 'exShowFocusItem + exShowCheckBox + exSortItemsDesc
var_Items = oTree.Items
	h = var_Items.AddItem({01/27/2010})
	' var_Items.CellCaption(h,1) = {01/27/2010 10:00:00}
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,1) = #1/27/2010 10:00:00 AM#"

	' var_Items.CellCaption(h,2) = var_Items.CellCaption(h,1)
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,2) = CellCaption(h,1)"

	' var_Items.CellCaption(h,3) = 1
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,3) = 1"

	' var_Items.CellCaption(h,4) = var_Items.CellCaption(h,3)
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,4) = CellCaption(h,3)"

	h = var_Items.AddItem({01/27/2011})
	' var_Items.CellCaption(h,1) = {01/27/2011 09:00:00}
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,1) = #1/27/2011 9:00:00 AM#"

	' var_Items.CellCaption(h,2) = var_Items.CellCaption(h,1)
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,2) = CellCaption(h,1)"

	' var_Items.CellCaption(h,3) = 11
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,3) = 11"

	' var_Items.CellCaption(h,4) = var_Items.CellCaption(h,3)
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,4) = CellCaption(h,3)"

	h = var_Items.AddItem({11/02/2010})
	' var_Items.CellCaption(h,1) = {11/02/2010 09:00:00}
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,1) = #11/2/2010 9:00:00 AM#"

	' var_Items.CellCaption(h,2) = var_Items.CellCaption(h,1)
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,2) = CellCaption(h,1)"

	' var_Items.CellCaption(h,3) = 2
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,3) = 2"

	' var_Items.CellCaption(h,4) = var_Items.CellCaption(h,3)
	oTree.TemplateDef = "dim var_Items,h"
	oTree.TemplateDef = var_Items
	oTree.TemplateDef = h
	oTree.Template = "var_Items.CellCaption(h,4) = CellCaption(h,3)"

oTree.Columns.Item("DateTime").DisplayFilterDate = .f.
oTree.EndUpdate()