1065:
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.Grid.1::HITEM)
	Dim i as 
	Dim var_Items as local
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	i = oGrid.FormatABC("value + 1",oGrid.Items.ItemToIndex(Item))
	' oGrid.Items.CellImage(Item,3) = i
	var_Items = oGrid.Items
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellImage(Item,3) = i"

end function

Dim h as N
Dim oGrid 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_Editor as P
Dim var_Items as P

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

	var_Column2.DisplayFilterButton = .t.
	var_Column2.DisplayFilterPattern = .f.
	var_Column2.FilterType = 6
var_Column3 = oGrid.Columns.Add("Image")
	var_Column3.DisplayFilterButton = .t.
	var_Column3.FilterType = 10
	var_Column3.FilterList = 9472 'exShowExclude + exShowFocusItem + exShowCheckBox
var_Column4 = oGrid.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 = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem("Item A"),1) = "Sub-Item A"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(`Item A`),1) = `Sub-Item A`"

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

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

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

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

1064:
FilterBarCaption ALL Keyword ( sample 1 )

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

end function

Dim h as N
Dim oGrid 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_Editor as P
Dim var_Items as P

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

	var_Column2.DisplayFilterButton = .t.
	var_Column2.DisplayFilterPattern = .f.
	var_Column2.FilterType = 6
var_Column3 = oGrid.Columns.Add("Image")
	var_Column3.DisplayFilterButton = .t.
	var_Column3.FilterType = 10
	var_Column3.FilterList = 9472 'exShowExclude + exShowFocusItem + exShowCheckBox
var_Column4 = oGrid.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 = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem("Item A"),1) = "Sub-Item A"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(`Item A`),1) = `Sub-Item A`"

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

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

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

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

1063:
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.Grid.1::HITEM)
	Dim i as 
	Dim var_Items as local
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	i = oGrid.FormatABC("value + 1",oGrid.Items.ItemToIndex(Item))
	' oGrid.Items.CellImage(Item,3) = i
	var_Items = oGrid.Items
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellImage(Item,3) = i"

end function

Dim h as N
Dim oGrid 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_Editor as P
Dim var_Items as P

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

	var_Column2.DisplayFilterButton = .t.
	var_Column2.DisplayFilterPattern = .f.
	var_Column2.FilterType = 6
var_Column3 = oGrid.Columns.Add("Image")
	var_Column3.DisplayFilterButton = .t.
	var_Column3.FilterType = 10
	var_Column3.FilterList = 9472 'exShowExclude + exShowFocusItem + exShowCheckBox
var_Column4 = oGrid.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 = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem("Item A"),1) = "Sub-Item A"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(`Item A`),1) = `Sub-Item A`"

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

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

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

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

1062:
FilterBarCaption ALLUI Keyword ( sample 1 )

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

end function

Dim h as N
Dim oGrid 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_Editor as P
Dim var_Items as P

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

	var_Column2.DisplayFilterButton = .t.
	var_Column2.DisplayFilterPattern = .f.
	var_Column2.FilterType = 6
var_Column3 = oGrid.Columns.Add("Image")
	var_Column3.DisplayFilterButton = .t.
	var_Column3.FilterType = 10
	var_Column3.FilterList = 9472 'exShowExclude + exShowFocusItem + exShowCheckBox
var_Column4 = oGrid.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 = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem("Item A"),1) = "Sub-Item A"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(`Item A`),1) = `Sub-Item A`"

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

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

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

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

1061:
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.Grid.1::HITEM)
	Dim i as 
	Dim var_Items as local
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	i = oGrid.FormatABC("value + 1",oGrid.Items.ItemToIndex(Item))
	' oGrid.Items.CellImage(Item,3) = i
	var_Items = oGrid.Items
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellImage(Item,3) = i"

end function

Dim h as N
Dim oGrid 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_Editor as P
Dim var_Items as P

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

	var_Column2.DisplayFilterButton = .t.
	var_Column2.DisplayFilterPattern = .f.
	var_Column2.FilterType = 6
var_Column3 = oGrid.Columns.Add("Image")
	var_Column3.DisplayFilterButton = .t.
	var_Column3.FilterType = 10
	var_Column3.FilterList = 9472 'exShowExclude + exShowFocusItem + exShowCheckBox
var_Column4 = oGrid.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 = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem("Item A"),1) = "Sub-Item A"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(`Item A`),1) = `Sub-Item A`"

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

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

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

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

1060:
FilterBarCaption AVAILABLE Keyword ( sample 1 )

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

end function

Dim h as N
Dim oGrid 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_Editor as P
Dim var_Items as P

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

	var_Column2.DisplayFilterButton = .t.
	var_Column2.DisplayFilterPattern = .f.
	var_Column2.FilterType = 6
var_Column3 = oGrid.Columns.Add("Image")
	var_Column3.DisplayFilterButton = .t.
	var_Column3.FilterType = 10
	var_Column3.FilterList = 9472 'exShowExclude + exShowFocusItem + exShowCheckBox
var_Column4 = oGrid.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 = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem("Item A"),1) = "Sub-Item A"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(`Item A`),1) = `Sub-Item A`"

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

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

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

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

1059:
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 oGrid 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

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
var_Column = oGrid.Columns.Add("Col-1")
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column1 = oGrid.Columns.Add("Col-2")
	var_Column1.DisplayFilterButton = .t.
	var_Column1.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column2 = oGrid.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 = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem("Item A"),1) = "Sub-Item A"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(`Item A`),1) = `Sub-Item A`"

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

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

oGrid.FilterBarFont = oGrid.Font
oGrid.Template = "Description(11) = FormatABC(```<fgcolor=808080>`` + value + ``</fgcolor>```,Description(11))" // oGrid.Description(11) = oGrid.FormatABC("`<fgcolor=808080>` + value + `</fgcolor>`",oGrid.Description(11))
oGrid.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>`"
oGrid.FilterBarPromptVisible = 256
var_Column3 = oGrid.Columns.Item(0)
	var_Column3.FilterType = 240
	var_Column3.Filter = "Item A|Item B"
var_Column4 = oGrid.Columns.Item(1)
	var_Column4.FilterType = 3
	var_Column4.Filter = "*B"
oGrid.ApplyFilter()
oGrid.EndUpdate()

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

Dim oGrid 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

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
var_Column = oGrid.Columns.Add("Col-1")
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column1 = oGrid.Columns.Add("Col-2")
	var_Column1.DisplayFilterButton = .t.
	var_Column1.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column2 = oGrid.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 = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem("Item A"),1) = "Sub-Item A"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(`Item A`),1) = `Sub-Item A`"

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

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

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

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

Dim oGrid 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

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
var_Column = oGrid.Columns.Add("Col-1")
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column1 = oGrid.Columns.Add("Col-2")
	var_Column1.DisplayFilterButton = .t.
	var_Column1.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column2 = oGrid.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 = oGrid.Items
	' var_Items.CellValue(var_Items.AddItem("Item A"),1) = "Sub-Item A"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(`Item A`),1) = `Sub-Item A`"

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

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

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

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

Dim oGrid as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
var_Column = oGrid.Columns.Add("Item")
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarCaption = "`<r>` + value"
oGrid.FilterBarPromptVisible = 1280 'exFilterBarShowCloseOnRight + exFilterBarToggle
var_Column2 = oGrid.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item B"
oGrid.ApplyFilter()
oGrid.EndUpdate()

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

Dim oGrid as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
var_Column = oGrid.Columns.Add("Item")
	var_Column.DisplayFilterButton = .t.
	var_Column.FilterList = 9504 'exShowExclude + exShowFocusItem + exShowCheckBox + exSortItemsAsc
var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarFont = oGrid.Font
oGrid.FilterBarPrompt = oGrid.FormatABC("`<b>` + value",oGrid.FilterBarPrompt)
oGrid.FilterBarCaption = "`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )"
oGrid.FilterBarPromptVisible = 3591 'exFilterBarCompact + exFilterBarShowCloseOnRight + exFilterBarShowCloseIfRequired + exFilterBarCaptionVisible + exFilterBarVisible + exFilterBarPromptVisible
oGrid.EndUpdate()

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

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

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

var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarFont = oGrid.Font
oGrid.FilterBarCaption = "`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : ``)"
oGrid.FilterBarPromptVisible = 2055 'exFilterBarCompact + exFilterBarCaptionVisible + exFilterBarVisible + exFilterBarPromptVisible
var_Column2 = oGrid.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item A|Item B"
oGrid.ApplyFilter()
oGrid.EndUpdate()

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

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

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

var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarFont = oGrid.Font
oGrid.FilterBarCaption = "`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? `<off -4> ` + abs(matchitemcount + 1) + ` result(s)` : ``)"
oGrid.FilterBarPromptVisible = 2071 'exFilterBarCompact + exFilterBarSingleLine + exFilterBarCaptionVisible + exFilterBarVisible + exFilterBarPromptVisible
var_Column2 = oGrid.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item A|Item B"
oGrid.ApplyFilter()
oGrid.EndUpdate()

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

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

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

var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarFont = oGrid.Font
oGrid.FilterBarCaption = "`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)"
oGrid.FilterBarPromptVisible = 7 'exFilterBarCaptionVisible + exFilterBarVisible + exFilterBarPromptVisible
var_Column2 = oGrid.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item A|Item B"
oGrid.ApplyFilter()
oGrid.EndUpdate()

1051:
FilterBarCaption Predefined Keywords

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

Dim h as N
Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Column3 as P
Dim var_Editor as P
Dim var_Items as P

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

var_Column1 = oGrid.Columns.Add("Check")
	var_Editor = var_Column1.Editor
		var_Editor.EditType = 19
		' var_Editor.Option(17) = 1
		oGrid.TemplateDef = "dim var_Editor"
		oGrid.TemplateDef = var_Editor
		oGrid.Template = "var_Editor.Option(17) = 1"

	var_Column1.DisplayFilterButton = .t.
	var_Column1.DisplayFilterPattern = .f.
	var_Column1.FilterType = 6
var_Column2 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	h = var_Items.AddItem("Item B")
	' var_Items.CellState(var_Items.InsertItem(h,,"Sub-Item B1"),1) = 1
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellState(InsertItem(h,,`Sub-Item B1`),1) = 1"

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

	var_Items.AddItem("Item C")
oGrid.FilterInclude = 1
oGrid.FilterBarFont = oGrid.Font
oGrid.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>`"
oGrid.FilterBarPromptPattern = "B"
oGrid.FilterBarPromptVisible = 7 'exFilterBarCaptionVisible + exFilterBarVisible + exFilterBarPromptVisible
var_Column3 = oGrid.Columns.Item(0)
	var_Column3.FilterType = 240
	var_Column3.Filter = "Item A|Item B"
oGrid.ApplyFilter()
oGrid.EndUpdate()

1050:
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 oGrid as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Items as P

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

var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarFont = oGrid.Font
oGrid.FilterBarCaption = "`<r><i><fgcolor=808080><upline><solidline><sha ;;0>` + value"
oGrid.FilterBarPromptPattern = "B"
oGrid.FilterBarPromptVisible = 2067 'exFilterBarCompact + exFilterBarSingleLine + exFilterBarVisible + exFilterBarPromptVisible
var_Column2 = oGrid.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item A|Item B"
oGrid.ApplyFilter()
oGrid.EndUpdate()

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

Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Items as P

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

var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarPromptVisible = 1281 'exFilterBarShowCloseOnRight + exFilterBarToggle + exFilterBarPromptVisible
oGrid.FilterBarPrompt = oGrid.FormatABC("`<r>` + value",oGrid.FilterBarPrompt)
oGrid.EndUpdate()

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

Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Items as P

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

var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarPromptVisible = 257 'exFilterBarToggle + exFilterBarPromptVisible
oGrid.EndUpdate()

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

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

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

var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarPromptVisible = 257 'exFilterBarToggle + exFilterBarPromptVisible
oGrid.Template = "Background(1) = 16777216" // oGrid.Background(1) = 16777216
oGrid.EndUpdate()

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

Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Items as P

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

var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarPromptVisible = 1
oGrid.Template = "Background(1) = 255" // oGrid.Background(1) = 255
oGrid.EndUpdate()

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

Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Items as P

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

var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarPromptVisible = 1
oGrid.Template = "Background(1) = -1" // oGrid.Background(1) = -1
oGrid.EndUpdate()

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

Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Items as P

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

var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarPromptVisible = 513 'exFilterBarShowCloseIfRequired + exFilterBarPromptVisible
oGrid.EndUpdate()

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

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

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

var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
	' var_Items.LockedItemCount(2) = 1
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.LockedItemCount(2) = 1"

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

	' var_Items.CellValue(h,0) = "<c><fgcolor=808080>Press the CTRL + F to turn on/off the control's filter bar. ALT + Up/Down moves the focus."
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValue(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.CellValueFormat(h,0) = 1
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.CellValueFormat(h,0) = 1"

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

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

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

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

var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarCaption = "len(value) ? `filter for: <fgcolor 808080>` + value  : `<fgcolor 808080>no filter`"
oGrid.FilterBarPromptVisible = 18 'exFilterBarSingleLine + exFilterBarVisible
var_Column2 = oGrid.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item A|Item B"
oGrid.ApplyFilter()
oGrid.EndUpdate()

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

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

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

var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarCaption = "`<r>` + value"
oGrid.FilterBarPromptVisible = 2067 'exFilterBarCompact + exFilterBarSingleLine + exFilterBarVisible + exFilterBarPromptVisible
var_Column2 = oGrid.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item A|Item B"
oGrid.ApplyFilter()
oGrid.EndUpdate()

1040:
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 grid control.
function Click as v ()
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	oGrid.ClearFilter()
end function

' Occurs when filter was changed.
function FilterChange as v ()
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	? "Items.MatchItemCount" 
	? oGrid.Items.MatchItemCount 
	? oGrid.FormatABC("value < 0 ? `filter applied: ` + abs(value + 1) + ` result(s)` : `no filter`",oGrid.Items.MatchItemCount) 
end function

Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Items as P

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

var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarPromptPattern = "Item"
oGrid.EndUpdate()

1039:
How can I programmatically clear the control's filter
' Occurs when the user presses and then releases the left mouse button over the grid control.
function Click as v ()
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	oGrid.ClearFilter()
end function

Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Items as P

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

var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarPromptPattern = "B"
oGrid.EndUpdate()

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

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

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

var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarPromptPattern = "B"
oGrid.FilterBarPromptVisible = 3 'exFilterBarVisible + exFilterBarPromptVisible
var_Column2 = oGrid.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item B"
oGrid.ApplyFilter()
oGrid.EndUpdate()

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

Dim oGrid as P
Dim var_Column as local
Dim var_Column1 as P
Dim var_Items as P

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

var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarPromptVisible = 1
oGrid.FilterBarPromptPattern = "B"
oGrid.EndUpdate()

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

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

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

var_Column1 = oGrid.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 = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.FilterBarCaption = "len(value) = 0 ? `<fgcolor=808080>no filter` : value"
oGrid.FilterBarPromptVisible = 2
var_Column2 = oGrid.Columns.Item(0)
	var_Column2.FilterType = 240
	var_Column2.Filter = "Item B"
oGrid.ApplyFilter()
oGrid.EndUpdate()

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

Dim h as N
Dim oGrid as P
Dim var_Items as P

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

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

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

Dim h as N
Dim oGrid as P
Dim var_Appearance as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
var_Appearance = oGrid.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")
oGrid.LinesAtRoot = 1
oGrid.HasButtons = 4
oGrid.Template = "HasButtonsCustom(0) = 16777216" // oGrid.HasButtonsCustom(.f.) = 16777216
oGrid.Template = "HasButtonsCustom(1) = 33554432" // oGrid.HasButtonsCustom(.t.) = 33554432
oGrid.Columns.Add("Column")
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

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

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

Dim h as N
Dim oGrid as P
Dim var_Appearance as P
Dim var_Items as P

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

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

1032:
How can I find if the control is running in DPI mode
Dim oGrid as P

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

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

Dim h as N
Dim oGrid as P
Dim var_Appearance as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
var_Appearance = oGrid.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=")
oGrid.LinesAtRoot = -1
oGrid.Template = "Background(180) = 16777216" // oGrid.Background(180) = 16777216
oGrid.Template = "Background(181) = 33554432" // oGrid.Background(181) = 33554432
oGrid.Columns.Add("Column")
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,,"Child 1")
	var_Items.InsertItem(h,,"Child 2")
	' var_Items.ExpandItem(h) = .t.
	oGrid.TemplateDef = "dim var_Items,h"
	oGrid.TemplateDef = var_Items
	oGrid.TemplateDef = h
	oGrid.Template = "var_Items.ExpandItem(h) = True"

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

1030:
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 ()
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	? "SelectionChanged" 
end function

Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

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

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

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

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

Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

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

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

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

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

Dim oGrid as P
Dim var_Column as P
Dim var_Column1 as local
Dim var_Items as P

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

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

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

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

1027:
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.Grid.1::HITEM,ColIndex  as  N)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	oGrid.Refresh()
end function

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

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

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

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

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

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

oGrid.EndUpdate()

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

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

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

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

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

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

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

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

oGrid.EndUpdate()

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

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

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

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

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

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

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

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

oGrid.EndUpdate()

1024:
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.Grid.1::HITEM,ColIndex  as  N)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	oGrid.Refresh()
end function

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

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

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

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

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

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

oGrid.EndUpdate()

1023:
How can I bold the checked items

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

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

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

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

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

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

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

oGrid.EndUpdate()

1022:
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.Grid.1::HITEM,ColIndex  as  N)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	oGrid.Refresh()
end function

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

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

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

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

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

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

oGrid.EndUpdate()

1021:
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.Grid.1::HITEM,ColIndex  as  N)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
	oGrid.Refresh()
end function

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

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

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

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

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

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

oGrid.EndUpdate()

1020:
How can I export the cell's state as well

Dim oGrid 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

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

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

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

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

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

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

1019:
Is it possible to customize the editor selection colour of the built in text editor, from standard blue to black

Dim oGrid as P
Dim var_Editor as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.SelBackColor = 0
oGrid.SelForeColor = 16777215
var_Editor = oGrid.Columns.Add("Edit").Editor
	var_Editor.EditType = 8
	var_Editor.Mask = ";;;rich"
var_Items = oGrid.Items
	var_Items.AddItem("")
	var_Items.AddItem("Just a text")
	var_Items.AddItem("")
oGrid.EndUpdate()

1018:
Is it possible to customize the editor selection colour of the built in dropdown editor, from standard blue to black

Dim oGrid as P
Dim var_Editor as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.SelBackColor = 0
oGrid.SelForeColor = 16777215
var_Editor = oGrid.Columns.Add("DropDown").Editor
	var_Editor.AddItem(1,"This is just the first item")
	var_Editor.AddItem(2,"This is just the second item")
	var_Editor.AddItem(3,"This is just the third item")
	var_Editor.EditType = 2
	var_Editor.Mask = ";;;rich"
var_Items = oGrid.Items
	var_Items.AddItem("")
	var_Items.AddItem("Just a text")
	var_Items.AddItem("")
oGrid.EndUpdate()

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

Dim oGrid as P
Dim var_Column as local
Dim var_Columns as P
Dim var_Items as P

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

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

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

oGrid.EndUpdate()

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

Dim oGrid as P
Dim var_Appearance as P
Dim var_Column as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
var_Appearance = oGrid.VisualAppearance
	var_Appearance.Add(1,"gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQgmPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThdr4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA")
oGrid.Template = "Background(0) = 16777216" // oGrid.Background(0) = 16777216
oGrid.Template = "Background(32) = -1" // oGrid.Background(32) = -1
oGrid.HeaderAppearance = 0
oGrid.BackColorHeader = 0
oGrid.ForeColorHeader = 16777215
oGrid.HeaderVisible = .t.
var_Column = oGrid.Columns.Add("Filter")
	var_Column.DisplayFilterButton = .t.
	var_Column.AllowSort = .f.
	var_Column.AllowDragging = .f.
oGrid.EndUpdate()

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

Dim oGrid as P
Dim var_Appearance as P
Dim var_Column as P

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

1014:
How can I draw a solid frame around the the focusing item

Dim h as N
Dim oGrid as P
Dim var_Appearance as P
Dim var_Column as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.SingleSel = .f.
oGrid.DefaultItemHeight = 20
var_Appearance = oGrid.VisualAppearance
	var_Appearance.RenderType = -1
	var_Appearance.Add(1,"gBFLBCJwBAEHhEJAAEhABOkGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBKUQSDqEYyjGLIXAWCYSAAMIwDKAUEwpFAZBhgeDYMiSNoYDJCM4wHIURRJFCUJSGWQpTgSIgyT5HFIxXKoASbJabZLhWS6EpWOotTbIQQRYCkEyfKKfZyGURZQqOKA1DBZErWTJESRFJqLazgO4LAhyQYrVgAErzVKVCRNOqbJzADApdpGQJTULDNTQHRFIyhOSnIRrWbMAhid6JUZiVT4dBOIYhSYANAqCwLFqrDJmWrpV5WZjlZ47V6BdAyXJsIrmFJEXaOGhyDDlGybSDZYryfZhUziUw4XjbWwZDqPF6DKTTdSGLREE8WZVlURZvDaep3C+AY8kAYRgGCCBJECUhjDoHROEYWgoAGTQ1CEEx9lGMY0CQUYSnuZQDBGBYFlOH5+H+igGAKAJgEgFgGgGVgDn4CoCmCSA2A6A5hAgDgQgSYRIE4EoFGGCBiBeBhhkgPgbgcYgICoH4IGGWIOCSBhiGiHgVgoYooFoAoLGIWI+DCCgjCiTgrgII4ImYOoOmOSJ2AYOpWlQDQBICA=")
oGrid.ShowFocusRect = .t.
oGrid.Template = "Background(19) = 16777216" // oGrid.Background(19) = 16777216
oGrid.LinesAtRoot = -1
var_Column = oGrid.Columns.Add("P1")
	' var_Column.Def(0) = .t.
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Def(0) = True"

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

oGrid.EndUpdate()

1013:
The frame around the focusing item is not very clear. Can I show it larger or more cleared (sample 2)

Dim h as N
Dim oGrid as P
Dim var_Appearance as P
Dim var_Column as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.SingleSel = .f.
oGrid.DefaultItemHeight = 20
oGrid.ShowFocusRect = .t.
var_Appearance = oGrid.VisualAppearance
	var_Appearance.RenderType = -1
	var_Appearance.Add(2,"gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBKUQSDqEYyjGLIXAWCYSAAMIwDKAUEwpFAZBhgeCRUgyJI3RgMUIzVAcRRFEiUJQlIZZCjOAw0SIMU7xZRcNxsACnaZnCR4NiuRYiUhOcqzRIQIQ4CiEahqOgJbDUJYwWZKAyjBY8XTZFCSJCpeJ6egOc5jRxQUp1WAEXx3GSsJKvCZ5cADBY+VLQNS0JBtMSTKSLaiuWoIJqCPaDRheWKQJh1NSnLqEcjyYANDxDCZlWzAYxWTZ2Uz7N7PbB0HY4DyPGKZYrfESVRbQcZNS6nNigPI9XhfGq6VjRe63ZaOaYpWrnOJqTRWjOKYujWdZ2BGO5lkuBAAkmcQkDmDBEAwEQJCgGhMGcQ4pkiSxGAAOYmkQIhvkYNg2gSCgyj+LI4GIMIwF2XQoAYAoAmASAWAaAZgggJgKFiT54DYDoDmECBGBKBJgGgTgWgWYRoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChiigYgsgsYYYBYMIKCMKJOCuDRjGiOgLg6Y5InYPoPmQCAkmsXAQDQBCAg=")
	var_Appearance.Add(3,"CP:2 -3 0 3 0")
oGrid.Template = "Background(19) = 50397441" // oGrid.Background(19) = 50397441
oGrid.LinesAtRoot = -1
var_Column = oGrid.Columns.Add("P1")
	' var_Column.Def(0) = .t.
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Def(0) = True"

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

oGrid.EndUpdate()

1012:
The frame around the focusing item is not very clear. Can I show it larger or more cleared (sample 1)

Dim h as N
Dim oGrid as P
Dim var_Appearance as P
Dim var_Column as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.SingleSel = .f.
oGrid.ShowFocusRect = .t.
var_Appearance = oGrid.VisualAppearance
	var_Appearance.Add(1,"gBFLBCJwBAEHhEJAAEhABHoDg6AADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBIZQ7BKNIxjSJwFiCCQwSDKEjyCKcGRHF6MI6gOYpCgOIYjRJNIASVAceAAGaUZrjSgobjmOYhAJCLqhYIgASXJqLaBlOCaAieSc+QhjQJIJoeCZXU5TFg1BTsOhqEqcRiseaRVDCaIJWzbdYWLDdNQHHKYLjnWorbpSJZ5XjNEySDQkMS9PrEJ7vST8FBCdAABLJUB2BR9RwxRafKpnWwJDpmCaOQLXEB5DK1PyVMTKYrtGy7GrIAJxWxbV4UHh+QABOzIMAvHKJMwvHYcUZne5XVLeF41HbONogPaJZyIAK2cLROq6Xo7GEcJZEcLASB4DwvgWUZlE6AQQhKAYkkYdA6hyDIwHgSoqFwQgmnsYxjGgSIiBOTpSEiAwRgOJI7j4JAHA6U5wm0MpPlOBIjD8TZiGYCICiCGAuA6AxhAgMgSgOYQ4DYBg/g6cw1n+ABOmMMJ9DmCwjnScw4RsVJngkYh4hoKIKmKKI2CmC5ikiQgqgiT5jhyMw8g4QwIn0OIKEiCJhD8DwTGyfA7k0WQOEWEQkGkJhIhKZB5DYSoTiSCQEn4PQOCOXJcCeIJjliaIQk0aRyF4O5llmAhfhgZhJg4ZoYiaAxYn4PZOhOZJaCUZYTiYQw1mcOZUm+HQnHmWh4h6Z4pnYeYfk0eYsmqG4nAgNJ2DqD5DkCWoiGiOgqgyI5omoRoNiSaQKFKEojCaM4ugSFhOjkAJcieKgDkaH4oioGoOiaKRqgqEoqDddwyhuAxPgOMJ8DyDZqk6NYtCsapmjiLprHqdo6i+K5K1oPhOlqPgKD4DpjnII4yiOewuk6MxtAsMpSjObQ7EaT4wk6ewYn0PgPAiCJkjeLgDk6X44i4G4OmaORuguEpqDkLAzkaWg+E8GIUmaPIvEOVpzj2Lxbl6eo+G+S5in4OYPmOaJyjuTwjnYWpBg6DAjAqQZwkwJwNkKcJsEcEJCDBEpaD6Dw8BiapGjGSgfB2RpxmyBwgkicZ8haBw/g+M5TBcPQPlOXJskscp8jsMJMnMLJXDGTZzEyYw2kwMoDlcFw9i2M4/EGUJPg0CxFlENBtCcSJSnQfQ0m+SgPHsaJ7lALZLG6XZVHWDRfFqVY1k0ZxdladYTnifJUGaeAWAeMnSGcGWgBObJ3lWbwdjKW5cHcTZPHaLkN4GxXDlFqFsA4uRbBOGAFAEIzAsDEFOBkfYqR4D6AOBEYo8QuBvAmMceInBDgcD0JwOIqQyJ1DMAwG4IANDnHSMoK4QhOgMBGNEIQvQWAdGenETIswGiddsAAQAgCAgA==")
	var_Appearance.Add(2,"gBFLBCJwBAEHhEJAAEhABeEGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADDFIBQSLAYROGSDJBGODJDjWGIeQLOEhQHIMRxPE6UYLhWYpBDKPYcUbGc7yBBMVwGf59XzACoKSheQIVSDQkw6Fo6NYhAxHALyNRkBy8f60KjtGpodDUJYvW5JYyjBZ8EznOqbJBkeJ7BgOe5NQjaD72VgdWQJFSWJajWYYJDOJY2ZAAE5TVINEwxJbDaylChIdxaF6WAzZEBhBYoATPNLBMrhWqKDw2XaQWBCOgwHYeR5LU7BdRwbIrRq2eAAXbcVyXfDddZlBK+QA0SK9lRVTKvJZmKgBWw1COSxmAAGw4kcNx1iKFBiCAfQsG8lJemucg7nsXpUHOOxrm+DI3jOH4XAOBx2nscw0j2HhPG4L5uGEVIECQCBCEUAYkGMHQHFGSBlGaAxkEgQgTGCVBsDYQhCgQJZrHKUggGEShkFGNgIlsNpPnMHJHD+TADAIJIJiIWIeCqChikiIgmgiD5zHyXxgiACJKCuC4jHiZgtg6I4IlkCQwkwOIonMPJjEkFhGhGZBpA4KoMBCGJuEiE5lAkGg7hMY4JEYVoUCUNAOE6FZl0KWQACWOR2GKF5mBmChchkJRZhoXYaCKKYqGuDglEmNhuhWZpIiYc4dCcCRqGmHZlgm2YxAwSQKESHwkFkKgpiAIAIH4PIimOOg2DiChoiQJRRD+TZDHCfwyAyCgyg+JpiioYJ/DgDgIlECQ6lwRAEICA=")
	var_Appearance.Add(3,"CP:2 -2 0 2 0")
oGrid.SelBackColor = 16777216
oGrid.SelForeColor = 0
oGrid.Template = "Background(19) = 67043328" // oGrid.Background(19) = 67043328
oGrid.LinesAtRoot = -1
var_Column = oGrid.Columns.Add("P1")
	' var_Column.Def(0) = .t.
	oGrid.TemplateDef = "dim var_Column"
	oGrid.TemplateDef = var_Column
	oGrid.Template = "var_Column.Def(0) = True"

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

oGrid.EndUpdate()

1011:
I have a column right-aligned. How can I display its check box aligned to the right, as it appears to the left of the cell's caption

Dim oGrid 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

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = .t.
oGrid.DrawGridLines = 2
var_Columns = oGrid.Columns
	var_Column = var_Columns.Add("Left")
		var_Column.AllowSizing = .f.
		var_Column.Width = 96
		' var_Column.Def(0) = .t.
		oGrid.TemplateDef = "dim var_Column"
		oGrid.TemplateDef = var_Column
		oGrid.Template = "var_Column.Def(0) = True"

		var_Column.FormatColumn = "0 pos `A-Z`"
	var_Column1 = var_Columns.Add("Center")
		var_Column1.HeaderAlignment = 1
		var_Column1.Alignment = var_Column1.HeaderAlignment
		var_Column1.AllowSizing = .f.
		var_Column1.Width = 96
		' var_Column1.Def(0) = .t.
		oGrid.TemplateDef = "dim var_Column1"
		oGrid.TemplateDef = var_Column1
		oGrid.Template = "var_Column1.Def(0) = True"

		var_Column1.FormatColumn = "0 pos `A-Z`"
	var_Column2 = var_Columns.Add("Right")
		var_Column2.HeaderAlignment = 2
		var_Column2.Alignment = var_Column2.HeaderAlignment
		var_Column2.AllowSizing = .f.
		var_Column2.Width = 96
		' var_Column2.Def(0) = .t.
		oGrid.TemplateDef = "dim var_Column2"
		oGrid.TemplateDef = var_Column2
		oGrid.Template = "var_Column2.Def(0) = True"

		var_Column2.FormatColumn = "0 pos `A-Z`"
		' var_Column2.Def(34) = "caption,check,icon,icons,picture"
		oGrid.TemplateDef = "dim var_Column2"
		oGrid.TemplateDef = var_Column2
		oGrid.Template = "var_Column2.Def(34) = `caption,check,icon,icons,picture`"

	var_Columns.Add("")
var_Items = oGrid.Items
	' var_Items.CellState(var_Items.AddItem("Item 1"),3) = 1
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellState(AddItem(`Item 1`),3) = 1"

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

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

oGrid.EndUpdate()

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

Dim oGrid 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

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.HeaderHeight = 48
oGrid.ColumnAutoResize = .t.
var_Columns = oGrid.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.
		oGrid.TemplateDef = "dim var_Column"
		oGrid.TemplateDef = var_Column
		oGrid.Template = "var_Column.Def(0) = True"

		' var_Column.Def(48) = 8
		oGrid.TemplateDef = "dim var_Column"
		oGrid.TemplateDef = var_Column
		oGrid.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.
		oGrid.TemplateDef = "dim var_Column1"
		oGrid.TemplateDef = var_Column1
		oGrid.Template = "var_Column1.Def(0) = True"

		' var_Column1.Def(48) = 8
		oGrid.TemplateDef = "dim var_Column1"
		oGrid.TemplateDef = var_Column1
		oGrid.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.
		oGrid.TemplateDef = "dim var_Column2"
		oGrid.TemplateDef = var_Column2
		oGrid.Template = "var_Column2.Def(0) = True"

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

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

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

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

oGrid.EndUpdate()

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

Dim oGrid 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

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.HeaderHeight = 48
oGrid.HeaderSingleLine = .f.
oGrid.ColumnAutoResize = .t.
var_Columns = oGrid.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.
		oGrid.TemplateDef = "dim var_Column"
		oGrid.TemplateDef = var_Column
		oGrid.Template = "var_Column.Def(0) = True"

		' var_Column.Def(48) = 8
		oGrid.TemplateDef = "dim var_Column"
		oGrid.TemplateDef = var_Column
		oGrid.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.
		oGrid.TemplateDef = "dim var_Column1"
		oGrid.TemplateDef = var_Column1
		oGrid.Template = "var_Column1.Def(0) = True"

		' var_Column1.Def(48) = 8
		oGrid.TemplateDef = "dim var_Column1"
		oGrid.TemplateDef = var_Column1
		oGrid.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.
		oGrid.TemplateDef = "dim var_Column2"
		oGrid.TemplateDef = var_Column2
		oGrid.Template = "var_Column2.Def(0) = True"

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

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

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

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

oGrid.EndUpdate()

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

Dim oGrid 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

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.HeaderHeight = 48
oGrid.ColumnAutoResize = .t.
var_Columns = oGrid.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.
		oGrid.TemplateDef = "dim var_Column"
		oGrid.TemplateDef = var_Column
		oGrid.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.
		oGrid.TemplateDef = "dim var_Column1"
		oGrid.TemplateDef = var_Column1
		oGrid.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.
		oGrid.TemplateDef = "dim var_Column2"
		oGrid.TemplateDef = var_Column2
		oGrid.Template = "var_Column2.Def(0) = True"

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

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

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

oGrid.EndUpdate()

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

Dim oGrid 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

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
oGrid.HeaderHeight = 48
oGrid.ColumnAutoResize = .t.
var_Columns = oGrid.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.
		oGrid.TemplateDef = "dim var_Column"
		oGrid.TemplateDef = var_Column
		oGrid.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.
		oGrid.TemplateDef = "dim var_Column1"
		oGrid.TemplateDef = var_Column1
		oGrid.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.
		oGrid.TemplateDef = "dim var_Column2"
		oGrid.TemplateDef = var_Column2
		oGrid.Template = "var_Column2.Def(0) = True"

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

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

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

oGrid.EndUpdate()

1006:
How do I automatically bold items being checked

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

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

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

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

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

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

1005:
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.Grid.1::HITEM,ColIndex  as  N)
	oGrid = topparent:CONTROL_ACTIVEX1.activex
end function

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

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

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

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

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

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

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

oGrid.EndUpdate()

1004:
How can I use the CellData with ConditionalFormat/ComputedField/FormatColumn

Dim oGrid as P
Dim var_Column as P
Dim var_Items as P

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

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

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

	' var_Items.CellData(var_Items.AddItem("Item 2"),0) = "this is just an user data"
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.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}
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellData(AddItem(`Item 3`),0) = #1/1/2001#"

oGrid.EndUpdate()

1003:
How can I use the CellValue/CellCaption with ConditionalFormat/ComputedField/FormatColumn

Dim oGrid as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Column2 as P
Dim var_Editor as P
Dim var_Items as P

oGrid = topparent:CONTROL_ACTIVEX1.activex
oGrid.BeginUpdate()
var_Column = oGrid.Columns.Add("Items")
	var_Editor = var_Column.Editor
		var_Editor.EditType = 3
		var_Editor.AddItem(1,"Item 1")
		var_Editor.AddItem(2,"Item 2")
		var_Editor.AddItem(3,"Item 3")
var_Column1 = oGrid.Columns.Add("Format")
	var_Column1.FormatColumn = "%0"
	var_Column1.Caption = var_Column1.FormatColumn
	' var_Column1.Def(5) = 8421504
	oGrid.TemplateDef = "dim var_Column1"
	oGrid.TemplateDef = var_Column1
	oGrid.Template = "var_Column1.Def(5) = 8421504"

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

	var_Column1.AllowSizing = .f.
var_Column2 = oGrid.Columns.Add("Format")
	var_Column2.FormatColumn = "%C0"
	var_Column2.Caption = var_Column2.FormatColumn
	' var_Column2.Def(5) = 8421504
	oGrid.TemplateDef = "dim var_Column2"
	oGrid.TemplateDef = var_Column2
	oGrid.Template = "var_Column2.Def(5) = 8421504"

	' var_Column2.Def(8) = var_Column2.Def(5)
	oGrid.TemplateDef = "dim var_Column2"
	oGrid.TemplateDef = var_Column2
	oGrid.Template = "var_Column2.Def(8) = Def(5)"

	var_Column2.AllowSizing = .f.
var_Items = oGrid.Items
	var_Items.AddItem(1)
	' var_Items.CellValue(var_Items.AddItem(0),0) = 2
	oGrid.TemplateDef = "dim var_Items"
	oGrid.TemplateDef = var_Items
	oGrid.Template = "var_Items.CellValue(AddItem(0),0) = 2"

	var_Items.AddItem(2)
oGrid.EndUpdate()

1002:
Can I display the radio-button with a solid color

Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

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

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

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

1001:
Can I display the check-box with a solid color

Dim oGrid as P
Dim var_Column as local
Dim var_Items as P

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

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

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