1122:
How can I define a column of button type

// ButtonClick event - Occurs when user clicks on the cell's button.
void onEvent_ButtonClick(int   _Item,int   _ColIndex,COMVariant   _Key)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exgrid1.Items(); com_Items = var_Items;
		print( com_Items.CellValue(_Item,_ColIndex) );
}

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Button")); com_Column = var_Column;
		com_Column.Def(2/*exCellHasButton*/,COMVariant::createFromBoolean(true));
		com_Column.Def(3/*exCellButtonAutoWidth*/,COMVariant::createFromBoolean(false));
		com_Column.FormatColumn("``");
		com_Column.AllowSizing(false);
		com_Column.Width(48);
	COM::createFromVariant(exgrid1.Columns().Add("Second")).FormatColumn("` Item ` + 1 index ``");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Button 1");
		com_Items.AddItem("Button 2");
		com_Items.AddItem("Button 3 ");
	exgrid1.EndUpdate();
}
1121:
Is it possible to configure different colour/icon when there is a active filter

// FilterChange event - Occurs when filter was changed.
void onEvent_FilterChange()
{
	;
	exgrid1.Background(0/*exHeaderFilterBarButton*/,exgrid1.FormatABC("value = 0 ? 0x1000001 : 0x10000FF ",exgrid1.Columns().Item(COMVariant::createFromInt(0)).FilterType()));
}

public void init()
{
	COM com_Appearance,com_Column,com_Column1,com_Items;
	anytype var_Appearance,var_Column,var_Column1,var_Items;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		com_Appearance.RenderType(-16777216);
		var_s = "gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQg";
		var_s = var_s + "mPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThd";
		var_s = var_s + "r4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s));
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	exgrid1.ShowFocusRect(false);
	exgrid1.Background(0/*exHeaderFilterBarButton*/,0x1000001);
	exgrid1.Background(32/*exCursorHoverColumn*/,-1);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.BackColorHeader(WinApi::RGB2int(255,255,255));
	exgrid1.HeaderVisible(1);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Filter")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.AllowSort(false);
		com_Column.AllowDragging(false);
		com_Column.FilterList(256/*exShowCheckBox*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	var_Column1 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.Filter("Item B");
		com_Column1.FilterType(240/*exFilter*/);
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1120:
How can I display the type of the value the column display

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Values")); com_Column = var_Column;
		com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
		com_Column.FormatColumn("value + ` <off 4><fgcolor=808080>type(` + type(%0) + `)`");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem();
		com_Items.AddItem(COMVariant::createFromInt(-1));
		com_Items.AddItem("string");
		com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213)));
		com_Items.AddItem(COMVariant::createFromInt(2));
		com_Items.AddItem(COMVariant::createFromBoolean(true));
		com_Items.AddItem(COMVariant::createFromReal(12.34));
	exgrid1.EndUpdate();
}
1119:
I want to create a conditional format for a column, verifying that the value of the cell is numeric, how can I do

public void init()
{
	COM com_ConditionalFormat,com_ConditionalFormat1,com_Items;
	anytype var_ConditionalFormat,var_ConditionalFormat1,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	exgrid1.Columns().Add("Values");
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("type(%0) in (2,3,4,5,18,19,20,21)"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.ForeColor(WinApi::RGB2int(255,0,0));
		com_ConditionalFormat.Bold(true);
	var_ConditionalFormat1 = COM::createFromObject(exgrid1.ConditionalFormats()).Add("type(%0) = 11"); com_ConditionalFormat1 = var_ConditionalFormat1;
	com_ConditionalFormat1.ForeColor(WinApi::RGB2int(0,255,0));
	var_ConditionalFormat1 = COM::createFromObject(exgrid1.ConditionalFormats()).Add("type(%0) = 7"); com_ConditionalFormat1 = var_ConditionalFormat1;
	com_ConditionalFormat1.ForeColor(WinApi::RGB2int(0,0,255));
	var_ConditionalFormat1 = COM::createFromObject(exgrid1.ConditionalFormats()).Add("type(%0) in (0,1)"); com_ConditionalFormat1 = var_ConditionalFormat1;
	com_ConditionalFormat1.BackColor(WinApi::RGB2int(240,240,240));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem();
		com_Items.AddItem(COMVariant::createFromInt(-1));
		com_Items.AddItem("string");
		com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213)));
		com_Items.AddItem(COMVariant::createFromInt(2));
		com_Items.AddItem(COMVariant::createFromBoolean(true));
		com_Items.AddItem(COMVariant::createFromReal(12.34));
	exgrid1.EndUpdate();
}
1118:
How can I assign a computed value on a different column based on other columns

// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int   _Item,int   _ColIndex,COMVariant /*variant*/   _NewValue)
{
	COM com_Items;
	anytype var_Items;
	;
	exgrid1.FreezeEvents(true);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(_Item,COMVariant::createFromInt(1),exgrid1.FormatABC("int(255*sin(value/2))",_NewValue));
		com_Items.CellValue(_Item,COMVariant::createFromInt(2),exgrid1.FormatABC("int(255*cos(value/2))",_NewValue));
	exgrid1.FreezeEvents(false);
}

public void init()
{
	COM com_Column,com_ConditionalFormat,com_Editor,com_Items;
	anytype var_Column,var_ConditionalFormat,var_Editor,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.SelBackMode(1/*exTransparent*/);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Value")); com_Column = var_Column;
		var_Editor = COM::createFromObject(com_Column.Editor()); com_Editor = var_Editor;
		com_Editor.EditType(4/*SpinType*/);
		com_Column.Width(64);
		com_Column.AllowSizing(false);
	COM::createFromVariant(exgrid1.Columns().Add("Assign A")).Def(4/*exCellBackColor*/,COMVariant::createFromInt(16448250));
	COM::createFromVariant(exgrid1.Columns().Add("Assign B")).Def(4/*exCellBackColor*/,COMVariant::createFromInt(16448250));
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Computed")); com_Column = var_Column;
		com_Column.Def(4/*exCellBackColor*/,COMVariant::createFromInt(16448250));
		com_Column.ComputedField("%1 + %2");
		com_Column.FormatColumn("value format ``");
		com_Column.Alignment(2/*RightAlignment*/);
		com_Column.HeaderAlignment(com_Column.Alignment());
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("%3 >= 0"); com_ConditionalFormat = var_ConditionalFormat;
	com_ConditionalFormat.Bold(true);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromInt(1989));
		com_Items.AddItem(COMVariant::createFromInt(2001));
		com_Items.AddItem(COMVariant::createFromInt(2017));
		com_Items.AddItem(COMVariant::createFromInt(2018));
		com_Items.AddItem(COMVariant::createFromInt(2019));
	exgrid1.EndUpdate();
}
1117:
How can I get computed a value on a different column

public void init()
{
	COM com_Column,com_Editor,com_Items;
	anytype var_Column,var_Editor,var_Items;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Year")); com_Column = var_Column;
		var_Editor = COM::createFromObject(com_Column.Editor()); com_Editor = var_Editor;
		com_Editor.EditType(4/*SpinType*/);
		com_Column.Width(64);
		com_Column.AllowSizing(false);
	var_s = "date(dateS('3/1/' + %0)  + ((1:=(((255 - 11 * (%0 mod 19)) - 21) mod 30) + 21) + (=:1 > 48 ? -1 : 0) + 6 - ((%0 + int(%0 / 4)) +";
	var_s = var_s + " =:1 + (=:1 > 48 ? -1 : 0) + 1) mod 7))";
	COM::createFromVariant(exgrid1.Columns().Add("Easter")).FormatColumn(var_s);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromInt(1989));
		com_Items.AddItem(COMVariant::createFromInt(2001));
		com_Items.AddItem(COMVariant::createFromInt(2017));
		com_Items.AddItem(COMVariant::createFromInt(2018));
		com_Items.AddItem(COMVariant::createFromInt(2019));
	exgrid1.EndUpdate();
}
1116:
How can I prevent applying ConditionalFormats on a specified cell, for instance I am displaying a Total field, and I will like to have formatted in a different way (method 2)

// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int   _Item,int   _ColIndex,COMVariant /*variant*/   _NewValue)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Column,com_ConditionalFormat,com_Editor,com_Items,com_Items1;
	anytype var_Column,var_ConditionalFormat,var_Editor,var_Items,var_Items1;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("(%0 >= 0)"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.Expression("(0=type(%CD0)) and (%0 >= 0)");
		com_ConditionalFormat.Bold(true);
		com_ConditionalFormat.ForeColor(WinApi::RGB2int(255,0,0));
		print( "ConditionalFormat.Valid" );
		print( com_ConditionalFormat.Valid() );
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Numbers")); com_Column = var_Column;
		var_Editor = com_Column.Editor(); com_Editor = var_Editor;
			com_Editor.Numeric(-1/*exInteger*/);
			com_Editor.EditType(4/*SpinType*/);
		com_Column.SortType(1/*SortNumeric*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromInt(100));
		com_Items.AddItem(COMVariant::createFromInt(-25));
		com_Items.AddItem(COMVariant::createFromInt(31));
		com_Items.AddItem(COMVariant::createFromInt(-48));
	var_Items1 = exgrid1.Items(); com_Items1 = var_Items1;
		h = com_Items1.AddItem("sum(all,dir,dbl(%0))");
		com_Items1.SelectableItem(h,false);
		com_Items1.SortableItem(h,false);
		com_Items1.ItemBackColor(h,WinApi::RGB2int(240,240,240));
		com_Items1.CellData(h,COMVariant::createFromInt(0),"total");
		com_Items1.CellValueFormat(h,COMVariant::createFromInt(0),5/*exTotalField | exHTML*/);
		com_Items1.FormatCell(h,COMVariant::createFromInt(0),"'Total: <b><fgcolor=0000FF>'+(value format ``)");
	exgrid1.EndUpdate();
}
1115:
How can I prevent applying ConditionalFormats on a specified cell, for instance I am displaying a Total field, and I will like to have formatted in a different way (method 1)

// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int   _Item,int   _ColIndex,COMVariant /*variant*/   _NewValue)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Column,com_ConditionalFormat,com_Editor,com_Items,com_Items1;
	anytype var_Column,var_ConditionalFormat,var_Editor,var_Items,var_Items1;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("%0 >= 0"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.Bold(true);
		com_ConditionalFormat.ForeColor(WinApi::RGB2int(255,0,0));
		com_ConditionalFormat.ApplyTo(0/*exFormatToColumns*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Numbers")); com_Column = var_Column;
		var_Editor = com_Column.Editor(); com_Editor = var_Editor;
			com_Editor.Numeric(-1/*exInteger*/);
			com_Editor.EditType(4/*SpinType*/);
		com_Column.SortType(1/*SortNumeric*/);
	COM::createFromVariant(exgrid1.Columns().Add("Total")).Visible(false);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.LockedItemCount(2/*exBottom*/,1);
		h = com_Items.LockedItem(2/*exBottom*/,0);
		com_Items.ItemDivider(h,1);
		com_Items.ItemDividerLine(h,0/*EmptyLine*/);
		com_Items.ItemBackColor(h,WinApi::RGB2int(240,240,240));
		com_Items.CellValue(h,COMVariant::createFromInt(1),"sum(all,dir,dbl(%0))");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(1),5/*exTotalField | exHTML*/);
		com_Items.CellHAlignment(h,COMVariant::createFromInt(1),2/*RightAlignment*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(1),"'Total: <b><fgcolor=0000FF>'+(value format ``)");
	var_Items1 = exgrid1.Items(); com_Items1 = var_Items1;
		com_Items1.AddItem(COMVariant::createFromInt(100));
		com_Items1.AddItem(COMVariant::createFromInt(-25));
		com_Items1.AddItem(COMVariant::createFromInt(31));
		com_Items1.AddItem(COMVariant::createFromInt(-48));
	exgrid1.EndUpdate();
}
1114:
ADODB Requery sample

// ButtonClick event - Occurs when user clicks on the cell's button.
void onEvent_ButtonClick(int   _Item,int   _ColIndex,COMVariant   _Key)
{
	COM com_cmd;
	anytype cmd;
	;
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	cmd = COM::createFromObject(new ADODB.Command()); com_cmd = cmd;
		cmd.ActiveConnection(COM::createFromVariant(exgrid1.DataSource().ActiveConnection()));
		cmd.CommandText("INSERT INTO Orders (EmployeeID) VALUES(12345)");
		cmd.CommandType(1/*adCmdText*/);
		cmd.Execute();
	exgrid1.DataSource().Requery();
}

// Error event - Fired when an internal error occurs.
void onEvent_Error(int   _Error,str   _Description)
{
	;
	print( _Description );
}

public void init()
{
	COM com_ConditionalFormat,com_Items,com_rs;
	anytype rs,var_ConditionalFormat,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.ColumnAutoResize(false);
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Select * From Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access2007\\sample.accdb",1/*adOpenKeyset*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("%1=12345"); com_ConditionalFormat = var_ConditionalFormat;
	com_ConditionalFormat.BackColor(WinApi::RGB2int(240,240,240));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.LockedItemCount(0/*exTop*/,1);
		h = com_Items.LockedItem(0/*exTop*/,0);
		com_Items.ItemDivider(h,0);
		com_Items.CellHasButton(h,COMVariant::createFromInt(0),true);
		com_Items.CellValue(h,COMVariant::createFromInt(0),"Requery (add a new record, using ADODB.Command)");
		com_Items.CellHAlignment(h,COMVariant::createFromInt(0),1/*CenterAlignment*/);
	exgrid1.EndUpdate();
}
1113:
I am using DetectAddNew property, but no new items is added when AddNew is performed

// ButtonClick event - Occurs when user clicks on the cell's button.
void onEvent_ButtonClick(int   _Item,int   _ColIndex,COMVariant   _Key)
{
	COM com_Recordset;
	anytype var_Recordset;
	;
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	var_Recordset = exgrid1.DataSource(); com_Recordset = var_Recordset;
		com_Recordset.AddNew("EmployeeID",COMVariant::createFromInt(123));
		com_Recordset.Update();
}

// Error event - Fired when an internal error occurs.
void onEvent_Error(int   _Error,str   _Description)
{
	;
	print( _Description );
}

public void init()
{
	COM com_Items,com_rs;
	anytype rs,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.ColumnAutoResize(false);
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access2007\\sample.accdb",1/*adOpenKeyset*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.LockedItemCount(0/*exTop*/,1);
		h = com_Items.LockedItem(0/*exTop*/,0);
		com_Items.ItemDivider(h,0);
		com_Items.CellHasButton(h,COMVariant::createFromInt(0),true);
		com_Items.CellValue(h,COMVariant::createFromInt(0),"AddNew");
		com_Items.CellHAlignment(h,COMVariant::createFromInt(0),1/*CenterAlignment*/);
	exgrid1.DetectAddNew(true);
	exgrid1.DetectDelete(true);
	exgrid1.EndUpdate();
}
1112:
I am skinning the control's header-bar, but the background of the header-bar is shown on each item in the filter-bar drop down panel. What can I do

public void init()
{
	COM com_Appearance,com_Column,com_Items;
	anytype var_Appearance,var_Column,var_Items;
	str var_s,var_s1;
	;

	super();

	exgrid1.BeginUpdate();
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxRDgMQBQKAAzQFAYcBqGqGAAGQZxYgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL";
		var_s = var_s + "UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQGhsCYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU8lORLUi+M4zSBPcZVTRtGShPDBK";
		var_s = var_s + "TjMKKYgkG4lVpRNa0PC1GTzQ6mazkKQLRADDIDVbAeL3LiMBy9LyLLItQALByua5mWhbcZyBCOPgBTrRb5zO58FjuTK7YLjMB7NrUNYtFaUMy2OpOCADIaecTNcaWLxP";
		var_s = var_s + "F2MY1HWYxVj2Jw3DuRJonKYBgggSRAlIYw6B0ThGFgPAkFUDAhBMfZRiGNAkFECZnm4YQdneJwqnsSQrGAAhWAIJBJBIQgFCQIBiEIAglgqYo0i4V4MEgRI9gSToYFSb";
		var_s = var_s + "4Fk6Y4+BmBZhFOJgTC8TBogQAArgqco4muCZOkOMJtgmYpIjYKg7GKE4uCUK4AAKKg2DwI4DiCZw5k6KJ2D6D4OHiag4DwIxiiQAArAqMosnEPBPAOIhOg+DozjIJ4PG";
		var_s = var_s + "SY4iEwPAkhKLhHUUSQsnKFCnkYU9MjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaI";
		var_s = var_s + "CokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEs";
		var_s = var_s + "HJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQgp";
		var_s = var_s + "DOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAAM";
		var_s = var_s + "R1EOZxWi+bx7HcWQ8msfRYnnDhQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARViHH4";
		var_s = var_s + "HQOYmxuCpF2MsecEQVBvGQCcIQvA6i2CAAIARAQ=";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s));
		var_s1 = "gBFLBCJwBAEHhEJAAEhABZEGACAADACAxRDgMQBQKAAzQFAYcBqGqGAAGQZxYgmFgAQhFcZQSKUOQTDKMIziYBYJhEMwwDhEIwjHCEEhsGIbJAGQBJCjWGodQLOEgzNC";
		var_s1 = var_s1 + "0IxNFCQILhEZJADKII8TTOU5UPRESwTE4cKBmKhQCo2NpKR7VUTxCKQahLLivoCjBT8EzHMqtIzrCA6MpaP4pQjKcqwHJ8YyHEi0ZrjazKaj6T5AXDUcaWbbNVx3PK3a";
		var_s1 = var_s1 + "ioOpLZrqOZZYzYFoABTuJzPMSyIhxXD8cweaZvSpLExVYK9BY3PbKMgxC77QgTIpDaQMNS6PjtF43PAALLFUaNYzoOKzABMHATBIXAYJCwIIR5G7ID4BbQcCQAHL9DBa";
		var_s1 = var_s1 + "EEIAEEISgGhMGZQmocgymmIRQkIEQ2BcGgbEIRQci8XaMBqTRVgSAZHG+S5pnOep+D6f4vjec5zn0fpfmgBgAH6TRoBYBoAh+eAmAiAgPFgNArgOQpIESdoEmCOAOAqB";
		var_s1 = var_s1 + "YfFGAgaEaBgYHYFYFmIB5UiGCJUgKCgmgeYoHk4BgCmKRQiCwApgHgYgyH8B54lQU4NkMeJlBoDgjkiXBTg0R54iYIR+koeQVBoKpkgkChKhEJBkF4SFEjkDgJhFQoeE";
		var_s1 = var_s1 + "mDJlBeehUhWJQJGIXoICWOQ6FeFIlhkfhlDsSJpiQVoamaSY2G6G5nAmRhpCOH5pkwVYdmeCZmHqHpnkmdhzhmaAIFiax8AABAEICA==";
		com_Appearance.Add(2,COMVariant::createFromStr(var_s1));
	exgrid1.BackColorHeader(0x1000000);
	exgrid1.ForeColorHeader(WinApi::RGB2int(128,128,128));
	exgrid1.Background(0/*exHeaderFilterBarButton*/,0x2000000);
	exgrid1.Background(26/*exBackColorFilter*/,WinApi::RGB2int(255,255,255));
	exgrid1.Background(27/*exForeColorFilter*/,WinApi::RGB2int(0,0,1));
	exgrid1.Background(20/*exSelBackColorFilter*/,0x1ff8000);
	exgrid1.Background(21/*exSelForeColorFilter*/,WinApi::RGB2int(240,240,240));
	exgrid1.Background(32/*exCursorHoverColumn*/,-1);
	exgrid1.HeaderHeight(24);
	exgrid1.BackColorLevelHeader(exgrid1.BackColor());
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Filter")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
		com_Column.Def(52/*exHeaderPaddingLeft*/,COMVariant::createFromInt(2));
		com_Column.Def(53/*exHeaderPaddingRight*/,COMVariant::createFromInt(2));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("A");
		com_Items.AddItem("B");
		com_Items.AddItem("C");
		com_Items.AddItem("D");
	exgrid1.EndUpdate();
}
1111:
How can I change the font for entire column (method 3)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellFont(_Item,COMVariant::createFromInt(1),exgrid1.Columns().Item(COMVariant::createFromInt(1)).Data());
		com_Items.CellBold(_Item,COMVariant::createFromInt(1),true);
		com_Items.CellForeColor(_Item,COMVariant::createFromInt(1),WinApi::RGB2int(255,0,0));
}

public void init()
{
	COM com_Column,com_Items,com_f;
	anytype f,var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderHeight(24);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.Columns().Add("C1");
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("C2")); com_Column = var_Column;
		com_Column.HTMLCaption("<b><font Tahoma;14>C2");
		f = COM::createFromObject(new stdole.StdFont()); com_f = f;
			f.Name("Tahoma");
			f.Size(11);
		com_Column.Data(COM::createFromVariant(f));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(10)),COMVariant::createFromInt(1),COMVariant::createFromInt(11));
		com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(12)),COMVariant::createFromInt(1),COMVariant::createFromInt(13));
	exgrid1.EndUpdate();
}
1110:
How can I change the font for entire column (method 2)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items,com_f;
	anytype f,var_Items;
	;
	var_Items = exgrid1.Items(); com_Items = var_Items;
		f = COM::createFromObject(new stdole.StdFont()); com_f = f;
			f.Name("Tahoma");
			f.Size(11);
		com_Items.CellFont(_Item,COMVariant::createFromInt(1),f);
		com_Items.CellBold(_Item,COMVariant::createFromInt(1),true);
		com_Items.CellForeColor(_Item,COMVariant::createFromInt(1),WinApi::RGB2int(255,0,0));
}

public void init()
{
	COM com_Items,com_f;
	anytype f,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderHeight(24);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.Columns().Add("C1");
	COM::createFromVariant(exgrid1.Columns().Add("C2")).HTMLCaption("<b><font Tahoma;14>C2");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(10)),COMVariant::createFromInt(1),COMVariant::createFromInt(11));
		com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(12)),COMVariant::createFromInt(1),COMVariant::createFromInt(13));
	exgrid1.EndUpdate();
}
1109:
How can I change the font for entire column (method 1)

public void init()
{
	COM com_ConditionalFormat,com_Items,com_f;
	anytype f,var_ConditionalFormat,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("1"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.Bold(true);
		com_ConditionalFormat.ForeColor(WinApi::RGB2int(255,0,0));
		f = COM::createFromObject(new stdole.StdFont()); com_f = f;
			f.Name("Tahoma");
			f.Size(11);
		com_ConditionalFormat.Font(f);
		com_ConditionalFormat.ApplyTo(1);
	exgrid1.HeaderHeight(24);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.Columns().Add("C1");
	COM::createFromVariant(exgrid1.Columns().Add("C2")).HTMLCaption("<b><font Tahoma;14>C2");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(10)),COMVariant::createFromInt(1),COMVariant::createFromInt(11));
		com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(12)),COMVariant::createFromInt(1),COMVariant::createFromInt(13));
	exgrid1.EndUpdate();
}
1108:
I am using ExComboBox as an user editor, how can I display a different column

// UserEditorClose event - Fired the user editor is about to be opened.
void onEvent_UserEditorClose(COM   _Object,int   _Item,int   _ColIndex)
{
	// Items.CellValue(Item,ColIndex) = Object.Select("OrderID")
	;
}

// UserEditorOleEvent event - Occurs when an user editor fires an event.
void onEvent_UserEditorOleEvent(COM   _Object,COM   _Ev,COMVariant /*bool*/   _CloseEditor,int   _Item,int   _ColIndex)
{
	;
	print( _Ev );
}

// UserEditorOpen event - Occurs when an user editor is about to be opened.
void onEvent_UserEditorOpen(COM   _Object,int   _Item,int   _ColIndex)
{
	// Object.Select("OrderID") = Me.Items.CellValue(Item,ColIndex)
	;
}

public void init()
{
	COM com_Column,com_Column1,com_ComboBox,com_Editor,com_Items,com_rs;
	anytype rs,var_Column,var_Column1,var_ComboBox,var_Editor,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.SortOnClick(0/*exNoSort*/);
	var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Exontrol.ComboBox")).Editor(); com_Editor = var_Editor;
		com_Editor.EditType(16/*UserEditorType*/);
		com_Editor.UserEditor("Exontrol.ComboBox","");
		// Add 'ExComboBox 1.0 Control Library(ExComboBox.dll)' reference to your project.
		var_ComboBox = com_Editor.UserEditorObject(); com_ComboBox = var_ComboBox;
			com_ComboBox.BeginUpdate();
			com_ComboBox.Style(2/*DropDownList*/);
			com_ComboBox.ColumnAutoResize(false);
			// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
			rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
				rs.Open("Orders","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\SAMPLE.MDB",3/*adOpenStatic*/,3/*adLockOptimistic*/);
			com_ComboBox.DataSource(rs);
			com_ComboBox.Alignment(0/*LeftAlignment*/);
			com_ComboBox.IntegralHeight(true);
			com_ComboBox.MinHeightList(128);
			com_ComboBox.MinWidthList(648);
			com_ComboBox.HeaderHeight(36);
			com_ComboBox.AllowSizeGrip(true);
			com_ComboBox.SingleEdit(true);
			com_ComboBox.LabelColumnIndex(7);
			com_ComboBox.SearchColumnIndex(0);
			var_Column = COM::createFromObject(com_ComboBox.Columns()).Item(COMVariant::createFromInt(0)); com_Column = var_Column;
				com_Column.HeaderBold(true);
				com_Column.HTMLCaption("OrderID<br><fgcolor=808080>(search)");
			var_Column1 = COM::createFromObject(com_ComboBox.Columns()).Item(COMVariant::createFromInt(7)); com_Column1 = var_Column1;
				com_Column1.HeaderBold(true);
				com_Column1.HTMLCaption("ShipName<br><fgcolor=808080>(display)");
				com_Column1.Width(128);
			com_ComboBox.UseTabKey(false);
			com_ComboBox.EndUpdate();
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	exgrid1.TreeColumnIndex(-1);
	exgrid1.DefaultItemHeight(21);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("shows always the drop-down editor");
		com_Items.CellHAlignment(h,COMVariant::createFromInt(0),1/*CenterAlignment*/);
		com_Items.ItemDivider(h,0);
		com_Items.ItemDividerLineAlignment(h,1/*DividerCenter*/);
		com_Items.SelectableItem(h,false);
		com_Items.EnableItem(h,false);
		com_Items.CellEditorVisible(com_Items.AddItem(COMVariant::createFromInt(10248)),COMVariant::createFromInt(0),1/*exEditorVisible*/);
		com_Items.CellEditorVisible(com_Items.AddItem(COMVariant::createFromInt(10249)),COMVariant::createFromInt(0),1/*exEditorVisible*/);
		com_Items.CellEditorVisible(com_Items.AddItem(COMVariant::createFromInt(10250)),COMVariant::createFromInt(0),1/*exEditorVisible*/);
		h = com_Items.AddItem("shows the drop-down editor when user clicks it");
		com_Items.CellHAlignment(h,COMVariant::createFromInt(0),1/*CenterAlignment*/);
		com_Items.ItemDivider(h,0);
		com_Items.ItemDividerLineAlignment(h,1/*DividerCenter*/);
		com_Items.SelectableItem(h,false);
		com_Items.EnableItem(h,false);
		com_Items.AddItem(COMVariant::createFromInt(10248));
		com_Items.AddItem(COMVariant::createFromInt(10249));
		com_Items.AddItem(COMVariant::createFromInt(10250));
	exgrid1.EndUpdate();
}
1107:
The ItemHeight property is not working (method 2)

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	exgrid1.ScrollBySingleLine(true);
	COM::createFromVariant(exgrid1.Columns().Add("Column")).Width(128);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellSingleLine(com_Items.AddItem("This is a bit of text that should break the line"),COMVariant::createFromInt(0),0/*exCaptionWordWrap*/);
		h = com_Items.AddItem("");
		com_Items.ItemDivider(h,0);
		com_Items.SelectableItem(h,false);
		com_Items.ItemDividerLineAlignment(h,1/*DividerCenter*/);
		com_Items.ItemHeight(h,3);
		com_Items.CellSingleLine(com_Items.AddItem("This is a bit of text that should break the line"),COMVariant::createFromInt(0),0/*exCaptionWordWrap*/);
	exgrid1.EndUpdate();
}
1106:
The ItemHeight property is not working (method 1)

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	exgrid1.ScrollBySingleLine(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Column")); com_Column = var_Column;
		com_Column.Width(128);
		com_Column.Def(16/*exCellSingleLine*/,COMVariant::createFromInt(0));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("This is a bit of text that should break the line");
		h = com_Items.AddItem("");
		com_Items.ItemDivider(h,0);
		com_Items.SelectableItem(h,false);
		com_Items.ItemDividerLineAlignment(h,1/*DividerCenter*/);
		com_Items.ItemMinHeight(h,3);
		com_Items.ItemMaxHeight(h,3);
		com_Items.AddItem("This is a bit of text that should break the line");
	exgrid1.EndUpdate();
}
1105:
How do I add a total field locked at the bottom of the control

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.ItemDividerLine(_Item,0/*EmptyLine*/);
		com_Items.FormatCell(_Item,com_Items.GroupItem(_Item),"value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column`");
		com_Items.CellValue(_Item,"Min","min(current,all,dbl(%6))");
		com_Items.CellValueFormat(_Item,"Min",4/*exTotalField*/);
		com_Items.CellValue(_Item,"Max","max(current,all,dbl(%6))");
		com_Items.CellValueFormat(_Item,"Max",4/*exTotalField*/);
		com_Items.CellValue(_Item,"Sum","sum(current,all,dbl(%6))");
		com_Items.CellValueFormat(_Item,"Sum",4/*exTotalField*/);
		com_Items.ItemBackColor(_Item,WinApi::RGB2int(240,240,240));
}

// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int   _Item,int   _ColIndex,COMVariant /*variant*/   _NewValue)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Columns,com_Items,com_rs;
	anytype rs,var_Column,var_Column1,var_Column2,var_Column3,var_Columns,var_Items;
	int hL;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HasLines(0/*exNoLine*/);
	exgrid1.Description(26/*exColumnsFloatBar*/,"Show/Hide");
	exgrid1.ColumnsFloatBarSortOrder(1/*SortAscending*/);
	exgrid1.ColumnsFloatBarVisible(2/*exColumnsFloatBarVisibleIncludeCheckColumns*/);
	exgrid1.ColumnAutoResize(false);
	exgrid1.BackColorSortBar(WinApi::RGB2int(240,240,240));
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\SAMPLE.MDB",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SingleSort(false);
	exgrid1.SortBarVisible(true);
	exgrid1.AllowGroupBy(true);
	exgrid1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Min")); com_Column = var_Column;
			com_Column.Visible(false);
			com_Column.AllowDragging(false);
		var_Column = COM::createFromVariant(com_Columns.Add("Max"));
			com_Column.Visible(false);
			com_Column.Visible(false);
			com_Column.AllowDragging(false);
		var_Column1 = COM::createFromVariant(com_Columns.Add("Sum")); com_Column1 = var_Column1;
			com_Column1.Visible(false);
			com_Column1.Visible(false);
			com_Column1.AllowDragging(false);
	var_Column2 = COM::createFromObject(exgrid1.Columns()).Item("Freight"); com_Column2 = var_Column2;
		com_Column2.FormatColumn("currency(value)");
		com_Column2.Def(4/*exCellBackColor*/,COMVariant::createFromInt(12895487));
		com_Column2.Def(7/*exHeaderBackColor*/,com_Column2.Def(4/*exCellBackColor*/));
		com_Column2.HeaderBold(true);
		com_Column2.AllowGroupBy(false);
		com_Column2.Alignment(2/*RightAlignment*/);
	exgrid1.ScrollBySingleLine(false);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.LockedItemCount(2/*exBottom*/,2);
		hL = com_Items.LockedItem(2/*exBottom*/,0);
		com_Items.ItemDivider(hL,0);
		com_Items.ItemHeight(hL,3);
		com_Items.ItemDividerLineAlignment(hL,2/*DividerTop*/);
		com_Items.ItemDividerLine(hL,2/*DoubleLine*/);
		hL = com_Items.LockedItem(2/*exBottom*/,1);
		com_Items.CellValue(hL,COMVariant::createFromInt(6),"sum(all,rec,dbl(%6))");
		com_Items.CellValueFormat(hL,COMVariant::createFromInt(6),4/*exTotalField*/);
		com_Items.ItemHeight(hL,24);
		com_Items.ItemBold(hL,true);
	var_Column3 = COM::createFromObject(exgrid1.Columns()).Item("EmployeeID"); com_Column3 = var_Column3;
	com_Column3.SortOrder(true);
	exgrid1.EndUpdate();
}
1104:
How can I add a total field, when I use grouping

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.ItemDividerLine(_Item,0/*EmptyLine*/);
		com_Items.FormatCell(_Item,com_Items.GroupItem(_Item),"value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column`");
		com_Items.CellValue(_Item,"Min","min(current,all,dbl(%6))");
		com_Items.CellValueFormat(_Item,"Min",4/*exTotalField*/);
		com_Items.CellValue(_Item,"Max","max(current,all,dbl(%6))");
		com_Items.CellValueFormat(_Item,"Max",4/*exTotalField*/);
		com_Items.CellValue(_Item,"Sum","sum(current,all,dbl(%6))");
		com_Items.CellValueFormat(_Item,"Sum",4/*exTotalField*/);
		com_Items.ItemBackColor(_Item,WinApi::RGB2int(240,240,240));
}

// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int   _Item,int   _ColIndex,COMVariant /*variant*/   _NewValue)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Column,com_Columns,com_Items,com_rs;
	anytype rs,var_Column,var_Columns,var_Items;
	int hL;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HasLines(0/*exNoLine*/);
	exgrid1.ColumnAutoResize(false);
	exgrid1.BackColorSortBar(WinApi::RGB2int(240,240,240));
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\SAMPLE.MDB",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SingleSort(false);
	exgrid1.SortBarVisible(true);
	exgrid1.AllowGroupBy(true);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
	com_Column.SortOrder(true);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("Min")).Visible(false);
		COM::createFromVariant(com_Columns.Add("Max")).Visible(false);
		COM::createFromVariant(com_Columns.Add("Sum")).Visible(false);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item("Freight"); com_Column = var_Column;
		com_Column.Def(4/*exCellBackColor*/,COMVariant::createFromInt(12895487));
		com_Column.Def(7/*exHeaderBackColor*/,com_Column.Def(4/*exCellBackColor*/));
		com_Column.HeaderBold(true);
		com_Column.AllowGroupBy(false);
	exgrid1.ScrollBySingleLine(false);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.LockedItemCount(2/*exBottom*/,1);
		hL = com_Items.LockedItem(2/*exBottom*/,0);
		com_Items.ItemDivider(hL,0);
		com_Items.ItemHeight(hL,24);
		com_Items.ItemDividerLineAlignment(hL,2/*DividerTop*/);
		com_Items.ItemDividerLine(hL,2/*DoubleLine*/);
		com_Items.CellValue(hL,COMVariant::createFromInt(0),"sum(all,rec,dbl(%6))");
		com_Items.CellValueFormat(hL,COMVariant::createFromInt(0),5/*exTotalField | exHTML*/);
		com_Items.CellHAlignment(hL,COMVariant::createFromInt(0),2/*RightAlignment*/);
		com_Items.FormatCell(hL,COMVariant::createFromInt(0),"'Freight: <bgcolor=FFC4C4> '+(value format ``) + ` `");
	exgrid1.EndUpdate();
}
1103:
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeCheckColumns

public void init()
{
	COM com_Columns;
	anytype var_Columns;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	exgrid1.HeaderAppearance(4/*Etched*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("City");
		COM::createFromVariant(com_Columns.Add("Start")).Visible(false);
		COM::createFromVariant(com_Columns.Add("End")).Visible(false);
	exgrid1.Description(26/*exColumnsFloatBar*/,"Show/Hide");
	exgrid1.ColumnsFloatBarSortOrder(1/*SortAscending*/);
	exgrid1.ColumnsFloatBarVisible(2/*exColumnsFloatBarVisibleIncludeCheckColumns*/);
	exgrid1.EndUpdate();
}
1102:
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeHiddenColumn

public void init()
{
	COM com_Columns;
	anytype var_Columns;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	exgrid1.HeaderAppearance(4/*Etched*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("City");
		COM::createFromVariant(com_Columns.Add("Start")).Visible(false);
		COM::createFromVariant(com_Columns.Add("End")).Visible(false);
	exgrid1.Description(26/*exColumnsFloatBar*/,"Show");
	exgrid1.ColumnsFloatBarVisible(-1/*exColumnsFloatBarVisibleIncludeHiddenColumns*/);
	exgrid1.ColumnsFloatBarSortOrder(1/*SortAscending*/);
	exgrid1.EndUpdate();
}
1101:
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeGroupByColumns

public void init()
{
	COM com_Column,com_Columns;
	anytype var_Column,var_Columns;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	exgrid1.HeaderAppearance(4/*Etched*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("City");
		com_Columns.Add("Start");
		com_Columns.Add("End");
	exgrid1.AllowGroupBy(true);
	exgrid1.SortBarVisible(true);
	exgrid1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exgrid1.BackColorSortBar(WinApi::RGB2int(250,250,250));
	exgrid1.Description(26/*exColumnsFloatBar*/,"Group-By");
	exgrid1.ColumnsFloatBarVisible(1/*exColumnsFloatBarVisibleIncludeGroupByColumns*/);
	exgrid1.ColumnsFloatBarSortOrder(1/*SortAscending*/);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item("City"); com_Column = var_Column;
	com_Column.SortOrder(1/*SortAscending*/);
	exgrid1.EndUpdate();
}
1100:
How can I advance to the next line, once the user presses the ENTER key

// KeyDown event - Occurs when the user presses a key while an object has the focus.
void onEvent_KeyDown(COMVariant /*short*/   _KeyCode,int   _Shift)
{
	;
	print( "KeyCode Before:" );
	print( _KeyCode );
	_KeyCode = exgrid1.FormatABC("value = 13 ? 40 : value",_KeyCode);
	print( "KeyCode After:" );
	print( _KeyCode );
}

public void init()
{
	COM com_Columns,com_Editor,com_Editor1,com_Items;
	anytype var_Columns,var_Editor,var_Editor1,var_Items;
	int h0;
	;

	super();

	exgrid1.BeginUpdate();
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		var_Editor = COM::createFromVariant(com_Columns.Add("A")).Editor(); com_Editor = var_Editor;
			com_Editor.Appearance(4/*EtchedApp*/);
			com_Editor.EditType(1/*EditType*/);
		var_Editor1 = COM::createFromVariant(com_Columns.Add("B")).Editor(); com_Editor1 = var_Editor1;
			com_Editor1.Appearance(4/*EtchedApp*/);
			com_Editor1.EditType(1/*EditType*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h0 = com_Items.AddItem("Item A.1");
		com_Items.CellValue(h0,COMVariant::createFromInt(1),"Item B.1");
		h0 = com_Items.AddItem("Item A.2");
		com_Items.CellValue(h0,COMVariant::createFromInt(1),"Item B.2");
	exgrid1.EndUpdate();
}
1099:
I am using AddNew to add new records, but I can not see them into the control

// ButtonClick event - Occurs when user clicks on the cell's button.
void onEvent_ButtonClick(int   _Item,int   _ColIndex,COMVariant   _Key)
{
	COM com_Recordset;
	anytype var_Recordset;
	;
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	var_Recordset = exgrid1.DataSource(); com_Recordset = var_Recordset;
		com_Recordset.AddNew();
		com_Recordset.Fields().Item("A").Value("new A");
		com_Recordset.Fields().Item("B").Value("new B");
		com_Recordset.Update();
}

public void init()
{
	COM com_Items,com_Recordset,com_rs;
	anytype rs,var_Items,var_Recordset;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Fields().Append("A",8/*adBSTR*/);
		rs.Fields().Append("B",8/*adBSTR*/);
		rs.Open();
		rs.AddNew();
		rs.Fields().Item("A").Value("Item A.1");
		rs.Fields().Item("B").Value("Item B.1");
		rs.Update();
		rs.AddNew();
		rs.Fields().Item("A").Value("Item A.2");
		rs.Fields().Item("B").Value("Item B.2");
		rs.Update();
	exgrid1.DataSource(rs);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.LockedItemCount(0/*exTop*/,1);
		h = com_Items.LockedItem(0/*exTop*/,0);
		com_Items.ItemDivider(h,0);
		com_Items.CellHasButton(h,COMVariant::createFromInt(0),true);
		com_Items.CellValue(h,COMVariant::createFromInt(0),"AddNew");
		com_Items.CellHAlignment(h,COMVariant::createFromInt(0),1/*CenterAlignment*/);
	exgrid1.DetectAddNew(true);
	exgrid1.DetectDelete(true);
	exgrid1.EndUpdate();
}
1098:
How can I create a new ADO recordset

public void init()
{
	COM com_rs;
	anytype rs;
	;

	super();

	exgrid1.BeginUpdate();
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Fields().Append("A",8/*adBSTR*/);
		rs.Fields().Append("B",8/*adBSTR*/);
		rs.Open();
		rs.AddNew();
		rs.Fields().Item("A").Value("Item A.1");
		rs.Fields().Item("B").Value("Item B.1");
		rs.Update();
		rs.AddNew();
		rs.Fields().Item("A").Value("Item A.2");
		rs.Fields().Item("B").Value("Item B.2");
		rs.Update();
	exgrid1.DataSource(rs);
	exgrid1.EndUpdate();
}
1097:
Do do I get the DAO version I have installed

public void init()
{
	;

	super();

	print( new DAO.PrivDBEngine().Version() );
	print( new DAO.PrivDBEngine().Version() );
	print( new DAO.PrivDBEngine().Version() );
}
1096:
How do I get a list of interfaces the object implemenets

public void init()
{
	COM com_PrivDBEngine,com_rs;
	anytype rs,var_PrivDBEngine;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft Office 12.0 Access database engine Object Library(ACEDAO.DLL)' reference to your project.
	var_PrivDBEngine = COM::createFromObject(new DAO.PrivDBEngine()); com_PrivDBEngine = var_PrivDBEngine;
		rs = com_PrivDBEngine.OpenDatabase("C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access2007\\sample.accdb").OpenRecordset("Orders"); com_rs = rs;
	// Add 'expropertieslist.dll(ExPropertiesList.dll)' reference to your project.
	print( new EXPROPERTIESLISTLib.expropertieslist().Interfaces(rs) );
	exgrid1.DataSource(rs);
	exgrid1.EndUpdate();
}
1095:
Do do I get the ADO version I have installed

public void init()
{
	;

	super();

	print( "ADO Version:" );
	print( new ADODB.Connection().Version() );
}
1094:
DAO, ACCDB, 120

public void init()
{
	COM com_PrivDBEngine,com_rs;
	anytype rs,var_PrivDBEngine;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft Office 12.0 Access database engine Object Library(ACEDAO.DLL)' reference to your project.
	var_PrivDBEngine = COM::createFromObject(new DAO.PrivDBEngine()); com_PrivDBEngine = var_PrivDBEngine;
		rs = com_PrivDBEngine.OpenDatabase("C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access2007\\sample.accdb").OpenRecordset("Orders"); com_rs = rs;
	exgrid1.DataSource(rs);
	exgrid1.EndUpdate();
}
1093:
DAO, MDB, 120

public void init()
{
	COM com_PrivDBEngine,com_rs;
	anytype rs,var_PrivDBEngine;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft Office 12.0 Access database engine Object Library(ACEDAO.DLL)' reference to your project.
	var_PrivDBEngine = COM::createFromObject(new DAO.PrivDBEngine()); com_PrivDBEngine = var_PrivDBEngine;
		rs = com_PrivDBEngine.OpenDatabase("C:\\Program Files\\Exontrol\\ExGrid\\Sample\\SAMPLE.MDB").OpenRecordset("Orders"); com_rs = rs;
	exgrid1.DataSource(rs);
	exgrid1.EndUpdate();
}
1092:
DAO, MDB

public void init()
{
	COM com_PrivDBEngine,com_rs;
	anytype rs,var_PrivDBEngine;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft DAO 3.6 Object Library(dao360.dll)' reference to your project.
	var_PrivDBEngine = COM::createFromObject(new DAO.PrivDBEngine()); com_PrivDBEngine = var_PrivDBEngine;
		rs = com_PrivDBEngine.OpenDatabase("C:\\Program Files\\Exontrol\\ExGrid\\Sample\\SAMPLE.MDB").OpenRecordset("Orders"); com_rs = rs;
	exgrid1.DataSource(rs);
	exgrid1.EndUpdate();
}
1091:
ADODB, ACCDB, x64

public void init()
{
	COM com_rs;
	anytype rs;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access2007\\sample.accdb",1/*adOpenKeyset*/,1/*adLockReadOnly*/);
	exgrid1.DataSource(rs);
	exgrid1.EndUpdate();
}
1090:
ADOR, ACCDB

public void init()
{
	COM com_rs;
	anytype rs;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access2007\\sample.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.EndUpdate();
}
1089:
ADODB, MDB

public void init()
{
	COM com_rs;
	anytype rs;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\SAMPLE.MDB",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.EndUpdate();
}
1088:
ADOR, MDB

public void init()
{
	COM com_rs;
	anytype rs;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\SAMPLE.MDB",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.EndUpdate();
}
1087:
How can I display the row on multiple lines (excrd)

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Editor,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Column3,var_Editor,var_Items;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.SelBackMode(1/*exTransparent*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Default")); com_Column = var_Column;
		var_s = "[b=0]60;1[b=15]:60,((20;\"<fgcolor=808080>Dateigröße\"[b=1][a=2]:120,2[b=15])/(20;\"<fgcolor=808080>Erstellt am\"[a=2]:120,3[b=15])/";
		var_s = var_s + "(20;\"<fgcolor=808080>Zuletzt bearbeitet\"[b=4][a=2]:120,4[b=15]))";
		com_Column.Def(32/*exCellFormatLevel*/,COMVariant::createFromStr(var_s));
		com_Column.AllowSort(false);
	COM::createFromVariant(exgrid1.Columns().Add(1)).Visible(false);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add(2)); com_Column1 = var_Column1;
		com_Column1.Visible(false);
		var_Editor = COM::createFromObject(com_Column1.Editor()); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
		com_Column1.FormatColumn("1 index `A-Z`");
	var_Column2 = COM::createFromVariant(exgrid1.Columns().Add(3)); com_Column2 = var_Column2;
		com_Column2.Visible(false);
		var_Editor = COM::createFromObject(com_Column2.Editor()); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
		com_Column2.FormatColumn("1 index ``");
	var_Column3 = COM::createFromVariant(exgrid1.Columns().Add(4)); com_Column3 = var_Column3;
		com_Column3.Visible(false);
		var_Editor = COM::createFromObject(com_Column3.Editor()); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
		com_Column3.FormatColumn("date(``)");
	exgrid1.DefaultItemHeight(48);
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	exgrid1.GridLineStyle(48/*exGridLinesSolid*/);
	exgrid1.ViewModeOption(0/*exTableView*/,0/*exBorderWidth*/,COMVariant::createFromInt(1));
	exgrid1.ViewModeOption(0/*exTableView*/,1/*exBorderHeight*/,COMVariant::createFromInt(1));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem(""),COMVariant::createFromInt(1),"One");
		com_Items.CellValue(com_Items.AddItem(""),COMVariant::createFromInt(1),"Two");
		com_Items.CellValue(com_Items.AddItem(""),COMVariant::createFromInt(1),"Three");
	exgrid1.EndUpdate();
}
1086:
Type of wraps the cell's caption support (Sample 2)

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderSingleLine(false);
	exgrid1.HeaderHeight(36);
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	exgrid1.ColumnAutoResize(false);
	exgrid1.ScrollBySingleLine(true);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Single-Line (exCaptionSingleLine)")); com_Column = var_Column;
			com_Column.Width(96);
			com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
			com_Column.Def(16/*exCellSingleLine*/,COMVariant::createFromInt(-1));
		var_Column1 = COM::createFromVariant(com_Columns.Add("Word-Wrap (exCaptionWordWrap)")); com_Column1 = var_Column1;
			com_Column1.Width(96);
			com_Column1.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
			com_Column1.Def(16/*exCellSingleLine*/,COMVariant::createFromInt(0));
			com_Column1.FormatColumn("%0");
		var_Column2 = COM::createFromVariant(com_Columns.Add("Break-Wrap (exCaptionBreakWrap)")); com_Column2 = var_Column2;
			com_Column2.Width(96);
			com_Column2.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
			com_Column2.Def(16/*exCellSingleLine*/,COMVariant::createFromInt(1));
			com_Column2.FormatColumn("%0");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.");
		com_Items.AddItem("This is the <b>first</b> line.\\r\\nThis is the <b>second</b> line.\\r\\nThis is the <b>third</b> line.");
	exgrid1.EndUpdate();
}
1085:
Type of wraps the cell's caption support (Sample 1)

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderSingleLine(false);
	exgrid1.HeaderHeight(36);
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	exgrid1.ColumnAutoResize(false);
	exgrid1.ScrollBySingleLine(true);
	COM::createFromVariant(exgrid1.Columns().Add("Default")).Width(128);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line.");
		h = com_Items.AddItem("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
		h = com_Items.AddItem("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line.");
		com_Items.CellSingleLine(h,COMVariant::createFromInt(0),0/*exCaptionWordWrap*/);
		h = com_Items.AddItem("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
		com_Items.CellSingleLine(h,COMVariant::createFromInt(0),0/*exCaptionWordWrap*/);
		h = com_Items.AddItem("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line.");
		com_Items.CellSingleLine(h,COMVariant::createFromInt(0),1/*exCaptionBreakWrap*/);
		h = com_Items.AddItem("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
		com_Items.CellSingleLine(h,COMVariant::createFromInt(0),1/*exCaptionBreakWrap*/);
	exgrid1.EndUpdate();
}
1084:
Can I break the cell's caption using the line break <br> or \r\n (Sample 2)

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	exgrid1.ColumnAutoResize(false);
	exgrid1.ScrollBySingleLine(true);
	COM::createFromVariant(exgrid1.Columns().Add("Default")).Width(128);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellSingleLine(com_Items.AddItem("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line."),COMVariant::createFromInt(0),1/*exCaptionBreakWrap*/);
		com_Items.AddItem("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line.");
	exgrid1.EndUpdate();
}
1083:
Can I break the cell's caption using the line break <br> or \r\n (Sample 1)

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	exgrid1.ColumnAutoResize(false);
	exgrid1.ScrollBySingleLine(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Default")); com_Column = var_Column;
		com_Column.Width(128);
		com_Column.Def(16/*exCellSingleLine*/,COMVariant::createFromInt(1));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line.");
		com_Items.AddItem("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line.");
	exgrid1.EndUpdate();
}
1082:
How can I change the visual appearance/color of the Filter For ... field

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.BackColorHeader(WinApi::RGB2int(1,0,0));
	exgrid1.ForeColorHeader(WinApi::RGB2int(255,255,255));
	exgrid1.Background(26/*exBackColorFilter*/,exgrid1.BackColorHeader());
	exgrid1.Background(27/*exForeColorFilter*/,exgrid1.ForeColorHeader());
	exgrid1.Background(0/*exHeaderFilterBarButton*/,WinApi::RGB2int(240,240,240));
	exgrid1.Background(32/*exCursorHoverColumn*/,-1);
	exgrid1.HeaderAppearance(5/*Bump*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.FilterOnType(true);
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(2/*exNoItems*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
	exgrid1.EndUpdate();
}
1081:
How can I display the cell's caption without spaces on both sides

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Default")); com_Column = var_Column;
		com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
		com_Column.FormatColumn("((trim(value) replace `   ` with ` `) replace `  ` with ` `) replace ` ` with `<bgcolor=FF0000> </bgcolor>`");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("");
		com_Items.AddItem("Item A");
		com_Items.AddItem("    Item B");
		com_Items.AddItem("        Item   C    ");
	exgrid1.EndUpdate();
}
1080:
How can I highlight the spaces within the column (sample 2)

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Default")); com_Column = var_Column;
		com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
		com_Column.FormatColumn("`'` + ( value replace ` ` with `_` ) + `'`");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("");
		com_Items.AddItem("Item A");
		com_Items.AddItem("    Item B");
		com_Items.AddItem("        Item   C    ");
	exgrid1.EndUpdate();
}
1079:
How can I highlight the spaces within the column (sample 1)

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Default")); com_Column = var_Column;
		com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
		com_Column.FormatColumn("len(value) = 0 ? `<bgcolor=FF0000> </bgcolor>` : ( value replace ` ` with `<bgcolor=FF0000> </bgcolor>` )");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("");
		com_Items.AddItem("Item A");
		com_Items.AddItem("    Item B");
		com_Items.AddItem("        Item   C    ");
	exgrid1.EndUpdate();
}
1078:
How can I change the visual aspect of the drop down filter-calendar

public void init()
{
	COM com_Column;
	anytype var_Column;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.Background(26/*exBackColorFilter*/,WinApi::RGB2int(0,0,1));
	exgrid1.Background(27/*exForeColorFilter*/,WinApi::RGB2int(255,255,255));
	exgrid1.Background(12/*exDateScrollRange*/,WinApi::RGB2int(255,255,255));
	exgrid1.Background(8/*exDateHeader*/,exgrid1.Background(26/*exBackColorFilter*/));
	exgrid1.Background(11/*exDateScrollThumb*/,WinApi::RGB2int(128,128,128));
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Date")); com_Column = var_Column;
		com_Column.FilterType(4/*exDate*/);
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterDate(true);
		com_Column.DisplayFilterPattern(false);
	exgrid1.EndUpdate();
}
1077:
How can I hide the filter bar description

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Filter")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterType(240/*exFilter*/);
		com_Column.Filter("B");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("A");
		com_Items.AddItem("B");
		com_Items.AddItem("C");
	exgrid1.ApplyFilter();
	exgrid1.FilterBarHeight(0);
	exgrid1.EndUpdate();
}
1076:
Export Data in HTML format

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Column6,com_Columns,com_ConditionalFormat,com_ConditionalFormat1,com_ConditionalFormats,com_Items,com_ShellBrowserWindow;
	anytype var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Column6,var_Columns,var_ConditionalFormat,var_ConditionalFormat1,var_ConditionalFormats,var_Items,var_ShellBrowserWindow;
	int h;
	str sFile,var_s;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.BackColorAlternate(WinApi::RGB2int(240,240,240));
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.Description(11/*exFilterBarAnd*/,exgrid1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exgrid1.Description(11/*exFilterBarAnd*/))));
	var_s = "(( ( value replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `";
	var_s = var_s + "[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( match";
	var_s = var_s + "itemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcoun";
	var_s = var_s + "t + ` item(s)`) )))";
	exgrid1.FilterBarCaption(var_s);
	exgrid1.FilterBarPromptVisible(2579/*exFilterBarCompact | exFilterBarShowCloseIfRequired | exFilterBarSingleLine | exFilterBarVisible | exFilterBarPromptVisible*/);
	exgrid1.FilterBarPromptType(2/*exFilterPromptContainsAny*/);
	var_ConditionalFormats = exgrid1.ConditionalFormats(); com_ConditionalFormats = var_ConditionalFormats;
		var_ConditionalFormat = COM::createFromObject(com_ConditionalFormats.Add("%0 like `*parent*`","parent")); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.BackColor(WinApi::RGB2int(192,192,192));
		var_ConditionalFormat = com_ConditionalFormats.Add("%0 like `*child*`","child"); com_ConditionalFormat = var_ConditionalFormat;
			com_ConditionalFormat.ForeColor(WinApi::RGB2int(255,128,128));
			com_ConditionalFormat.ApplyTo(0/*exFormatToColumns*/);
		var_ConditionalFormat1 = com_ConditionalFormats.Add("%0 like `*B*`","b"); com_ConditionalFormat1 = var_ConditionalFormat1;
			com_ConditionalFormat1.ForeColor(WinApi::RGB2int(0,0,255));
			com_ConditionalFormat1.Bold(true);
			com_ConditionalFormat1.Italic(true);
			com_ConditionalFormat1.ApplyTo(0/*exFormatToColumns*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Value")); com_Column = var_Column;
			com_Column.Width(128);
			com_Column.HTMLCaption("<b>VA</b><r>sko");
		var_Column1 = COM::createFromVariant(com_Columns.Add("APos")); com_Column1 = var_Column1;
			com_Column1.FormatColumn("0 apos ``");
			com_Column1.AllowSort(false);
			com_Column1.Def(4/*exCellBackColor*/,COMVariant::createFromInt(15790320));
			com_Column1.Def(5/*exCellForeColor*/,COMVariant::createFromInt(8421504));
			com_Column1.Def(8/*exHeaderForeColor*/,com_Column1.Def(5/*exCellForeColor*/));
			com_Column1.Position(0);
		var_Column2 = COM::createFromVariant(com_Columns.Add("RPos")); com_Column2 = var_Column2;
			com_Column2.FormatColumn("0 rpos ``");
			com_Column2.AllowSort(false);
			com_Column2.Position(1);
		var_Column3 = COM::createFromVariant(com_Columns.Add("Index")); com_Column3 = var_Column3;
			com_Column3.FormatColumn("0 index ``");
			com_Column3.DisplayFilterButton(true);
			com_Column3.FilterList(256/*exShowCheckBox*/);
			com_Column3.Position(2);
		var_Column4 = COM::createFromVariant(com_Columns.Add("Data 1")); com_Column4 = var_Column4;
			com_Column4.FormatColumn("0 index `A-Z`");
			com_Column4.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		var_Column5 = COM::createFromVariant(com_Columns.Add("Data 2")); com_Column5 = var_Column5;
			com_Column5.FormatColumn("0 index `AB` replace `A` with `<off -4>A</off>`");
			com_Column5.Def(16/*exCellSingleLine*/,COMVariant::createFromBoolean(false));
			com_Column5.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
			com_Column5.Def(1/*exCellHasRadioButton*/,COMVariant::createFromBoolean(true));
		var_Column6 = COM::createFromVariant(com_Columns.Add("Data 3")); com_Column6 = var_Column6;
			com_Column6.FormatColumn("0 index `CDC` replace `D` with `<b>D</b>`");
			com_Column6.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("ParentA");
		com_Items.InsertItem(h,,"Child A");
		com_Items.InsertItem(h,,"Child B");
		com_Items.CellState(h,COMVariant::createFromInt(4),1);
		com_Items.CellBackColor(com_Items.InsertItem(h,,"Child C"),COMVariant::createFromInt(5),WinApi::RGB2int(0,255,0));
		com_Items.ExpandItem(h,true);
		com_Items.AddItem("Item A");
		h = com_Items.AddItem("ParentB");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.CellBackColor(com_Items.InsertItem(h,,"Child 3"),COMVariant::createFromInt(5),WinApi::RGB2int(0,255,0));
		com_Items.CellState(h,COMVariant::createFromInt(5),1);
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
		com_Items.AddItem("Item D");
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
	sFile = "c:/temp/export.html";
	exgrid1.Export(sFile,"vis");
	// Add 'Microsoft Internet Controls(ieframe.dll)' reference to your project.
	var_ShellBrowserWindow = COM::createFromObject(new SHDocVw.ShellBrowserWindow()); com_ShellBrowserWindow = var_ShellBrowserWindow;
		com_ShellBrowserWindow.Navigate2(sFile);
}
1075:
Export Data in CSV format

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Column6,com_Columns,com_ConditionalFormat,com_ConditionalFormat1,com_ConditionalFormats,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Column6,var_Columns,var_ConditionalFormat,var_ConditionalFormat1,var_ConditionalFormats,var_Items;
	int h;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.BackColorAlternate(WinApi::RGB2int(240,240,240));
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.Description(11/*exFilterBarAnd*/,exgrid1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exgrid1.Description(11/*exFilterBarAnd*/))));
	var_s = "(( ( value replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `";
	var_s = var_s + "[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( match";
	var_s = var_s + "itemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcoun";
	var_s = var_s + "t + ` item(s)`) )))";
	exgrid1.FilterBarCaption(var_s);
	exgrid1.FilterBarPromptVisible(2579/*exFilterBarCompact | exFilterBarShowCloseIfRequired | exFilterBarSingleLine | exFilterBarVisible | exFilterBarPromptVisible*/);
	exgrid1.FilterBarPromptType(2/*exFilterPromptContainsAny*/);
	var_ConditionalFormats = exgrid1.ConditionalFormats(); com_ConditionalFormats = var_ConditionalFormats;
		var_ConditionalFormat = COM::createFromObject(com_ConditionalFormats.Add("%0 like `*parent*`","parent")); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.BackColor(WinApi::RGB2int(192,192,192));
		var_ConditionalFormat = com_ConditionalFormats.Add("%0 like `*child*`","child"); com_ConditionalFormat = var_ConditionalFormat;
			com_ConditionalFormat.ForeColor(WinApi::RGB2int(255,128,128));
			com_ConditionalFormat.ApplyTo(0/*exFormatToColumns*/);
		var_ConditionalFormat1 = com_ConditionalFormats.Add("%0 like `*B*`","b"); com_ConditionalFormat1 = var_ConditionalFormat1;
			com_ConditionalFormat1.ForeColor(WinApi::RGB2int(0,0,255));
			com_ConditionalFormat1.Bold(true);
			com_ConditionalFormat1.Italic(true);
			com_ConditionalFormat1.ApplyTo(0/*exFormatToColumns*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Value")); com_Column = var_Column;
			com_Column.Width(128);
			com_Column.HTMLCaption("<b>VA</b><r>sko");
		var_Column1 = COM::createFromVariant(com_Columns.Add("APos")); com_Column1 = var_Column1;
			com_Column1.FormatColumn("0 apos ``");
			com_Column1.AllowSort(false);
			com_Column1.Def(4/*exCellBackColor*/,COMVariant::createFromInt(15790320));
			com_Column1.Def(5/*exCellForeColor*/,COMVariant::createFromInt(8421504));
			com_Column1.Def(8/*exHeaderForeColor*/,com_Column1.Def(5/*exCellForeColor*/));
			com_Column1.Position(0);
		var_Column2 = COM::createFromVariant(com_Columns.Add("RPos")); com_Column2 = var_Column2;
			com_Column2.FormatColumn("0 rpos ``");
			com_Column2.AllowSort(false);
			com_Column2.Position(1);
		var_Column3 = COM::createFromVariant(com_Columns.Add("Index")); com_Column3 = var_Column3;
			com_Column3.FormatColumn("0 index ``");
			com_Column3.DisplayFilterButton(true);
			com_Column3.FilterList(256/*exShowCheckBox*/);
			com_Column3.Position(2);
		var_Column4 = COM::createFromVariant(com_Columns.Add("Data 1")); com_Column4 = var_Column4;
			com_Column4.FormatColumn("0 index `A-Z`");
			com_Column4.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		var_Column5 = COM::createFromVariant(com_Columns.Add("Data 2")); com_Column5 = var_Column5;
			com_Column5.FormatColumn("0 index `AB` replace `A` with `<off -4>A</off>`");
			com_Column5.Def(16/*exCellSingleLine*/,COMVariant::createFromBoolean(false));
			com_Column5.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
			com_Column5.Def(1/*exCellHasRadioButton*/,COMVariant::createFromBoolean(true));
		var_Column6 = COM::createFromVariant(com_Columns.Add("Data 3")); com_Column6 = var_Column6;
			com_Column6.FormatColumn("0 index `CDC` replace `D` with `<b>D</b>`");
			com_Column6.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("ParentA");
		com_Items.InsertItem(h,,"Child A");
		com_Items.InsertItem(h,,"Child B");
		com_Items.CellState(h,COMVariant::createFromInt(4),1);
		com_Items.CellBackColor(com_Items.InsertItem(h,,"Child C"),COMVariant::createFromInt(5),WinApi::RGB2int(0,255,0));
		com_Items.ExpandItem(h,true);
		com_Items.AddItem("Item A");
		h = com_Items.AddItem("ParentB");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.CellBackColor(com_Items.InsertItem(h,,"Child 3"),COMVariant::createFromInt(5),WinApi::RGB2int(0,255,0));
		com_Items.CellState(h,COMVariant::createFromInt(5),1);
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
		com_Items.AddItem("Item D");
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
	print( exgrid1.Export("","vis") );
}
1074:
Is it possible to check multiple-items at once

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	COMVariant bHasParent;
	anytype var_Items;
	;
	bHasParent = exgrid1.FormatABC("value != 0",exgrid1.Items().ItemParent(_Item));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellHasCheckBox(_Item,COMVariant::createFromInt(0),bHasParent);
}

public void init()
{
	COM com_Column,com_Items;
	COMVariant bHasParent;
	anytype var_Column,var_Items;
	int h,hChild;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Tasks")); com_Column = var_Column;
		com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
		com_Column.FormatColumn("value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)");
	exgrid1.HeaderVisible(1);
	exgrid1.SingleSel(false);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Project");
		hChild = com_Items.InsertItem(h,,"Task 1");
		hChild = com_Items.InsertItem(h,,"Task 2");
		hChild = com_Items.InsertItem(h,,"Task 3");
		com_Items.ExpandItem(h,true);
		com_Items.LockedItemCount(0/*exTop*/,1);
		com_Items.CellValue(com_Items.LockedItem(0/*exTop*/,0),COMVariant::createFromInt(0),"<c>Select multiple items and press the <b>SPACE</b> key");
	exgrid1.EndUpdate();
}
1073:
How can I get the icon from the cell when using the Items.CellImages property (icon index)

// MouseMove event - Occurs when the user moves the mouse.
void onEvent_MouseMove(int   _Button,int   _Shift,int   _X,int   _Y)
{
	int i;
	;
	i = exgrid1.ItemFromPoint(-1,-1,c,hit);
	print( exgrid1.FormatABC("( 0x44 = ( value bitand 0x44 ) ) ? ( ( (value bitand 0xFFFF0000) bitshift 16 ) array B split `,` )  : `no image`",hit,exgrid1.Items().CellImages(i,c)) );
}

public void init()
{
	COM com_Items;
	anytype var_Items;
	int i;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exgrid1.Images(COMVariant::createFromStr(var_s));
	exgrid1.Columns().Add("Default");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellImages(com_Items.AddItem("Item 1"),COMVariant::createFromInt(0),"3,2,1");
		com_Items.CellImages(com_Items.AddItem("Item 2"),COMVariant::createFromInt(0),"2,3");
		com_Items.CellImages(com_Items.AddItem("Item 3"),COMVariant::createFromInt(0),"2,");
	exgrid1.EndUpdate();
}
1072:
How can I get the icon from the cell when using the Items.CellImages property (icon position within the cell)

// MouseMove event - Occurs when the user moves the mouse.
void onEvent_MouseMove(int   _Button,int   _Shift,int   _X,int   _Y)
{
	int i;
	;
	i = exgrid1.ItemFromPoint(-1,-1,c,hit);
	print( exgrid1.FormatABC("( 0x44 = ( value bitand 0x44 ) ) ? 1 + ( (value bitand 0xFFFF0000) bitshift 16 ) : `no image`",hit) );
}

public void init()
{
	COM com_Items;
	anytype var_Items;
	int i;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exgrid1.Images(COMVariant::createFromStr(var_s));
	exgrid1.Columns().Add("Default");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellImages(com_Items.AddItem("Item 1"),COMVariant::createFromInt(0),"3,2,1");
		com_Items.CellImages(com_Items.AddItem("Item 2"),COMVariant::createFromInt(0),"2,3");
		com_Items.CellImages(com_Items.AddItem("Item 3"),COMVariant::createFromInt(0),"2");
	exgrid1.EndUpdate();
}
1071:
Is it possible to change the visual appearance of the position signs when user changes the column's position by drag and drop

public void init()
{
	COM com_Appearance,com_Columns;
	anytype var_Appearance,var_Columns;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Column 1");
		com_Columns.Add("Column 2");
		com_Columns.Add("Column 3");
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAEhABZEGACAADACAxRDgMQBQKAAzAJBIYhiG4cYCgMYxXDOCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADKMA4SOKIZhrE4bBhGaQRUgyI43RhHUBzVI";
		var_s = var_s + "UcQvE6TZRHCQYHgkNIhDJIM7TPLkeSVJaTIRoKhJUogApQThTMgVRDEThkGoSa6soSoYTDBKybLrSLKagOT5YUDKUqSdKEZRpEq1YztWbaQoCUoqVRRVIWfbNd4JJa4a";
		var_s = var_s + "DhWpYdpeeY5R7bWLgBYVVABL7LLRsSxpHxPF6RXxaeI3GKsaS8G6ic6nPQMHj7I4NS5pUa6Rh2VYNSa8AAtETRYznOw4bTMXAjNIea5bAYIIR5HIoDzVbQcCQAHL9DBe";
		var_s = var_s + "EMIQEEISgGhMGZQmocgymoYRRCIEQ0G2HYBnEIBig4V4zCQGINnmagCECY43medZ6H2Pw/g+X5fnueh/h+R5+AKABfkMWgGgGYA4AICoCGCE5WA4CphACMgSD2IRIDIB";
		var_s = var_s + "ICmEd5YGCBpRjGBgegWIYIgWdgoGIRQsiKCZiAiJZ0gGQI4jUS4LECOAiBmDJflGfg2BSY4Al4OhGkOCJ2DgFJjGGfgqgiH5Ch4RhGkqOQmEOEpkFkHQYhJRYyESAokG";
		var_s = var_s + "KHhIhKIxJEmf4VGUeRGFmF5iBkchPhYJQ5GoYIZg6Ug6GoFYmkmNhuhulRGHKGoImefh0BUZ4JmYeoemeSZ2H6HQmgoBgXDqXwUAQgI=";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s));
		com_Appearance.Add(2,"CP:1 0 -36 0 0");
	exgrid1.Background(182/*exColumnsPositionSign*/,0x2000000);
	exgrid1.EndUpdate();
}
1070:
How can I add a title column

public void init()
{
	COM com_Column,com_Columns,com_Items;
	anytype var_Column,var_Columns,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderHeight(22);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Col 1");
		COM::createFromVariant(com_Columns.Add("Col 2")).FormatColumn("1 pos ``");
		COM::createFromVariant(com_Columns.Add("Col 3")).FormatColumn("1 pos `A-`");
		COM::createFromVariant(com_Columns.Add("Col 4")).FormatColumn("1 pos `A-Z`");
		var_Column = COM::createFromVariant(com_Columns.Add("Title")); com_Column = var_Column;
			com_Column.ExpandColumns("0,1,2,3");
			com_Column.DisplayExpandButton(false);
			com_Column.AllowSort(false);
			com_Column.AllowDragging(false);
			com_Column.Position(0);
			com_Column.HeaderAlignment(1/*CenterAlignment*/);
	exgrid1.ColumnAutoResize(false);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.AddItem("Item 2");
		com_Items.AddItem("Item 3");
		com_Items.AddItem("Item 4");
	exgrid1.EndUpdate();
	print( exgrid1.Export("") );
}
1069:
FilterBarCaption ALLUI Keyword ( sample 3, result, leaf )

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int   _Item)
{
	COM com_Items;
	COMVariant val;
	anytype var_Items;
	;
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.ItemBackColor(_Item,WinApi::RGB2int(240,240,240));
		val = com_Items.CellValue(_Item,com_Items.GroupItem(_Item));
		com_Items.CellState(_Item,com_Items.GroupItem(_Item),exgrid1.FormatABC("A = `Checked` ? 1 : 0",val));
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COMVariant i;
	;
	i = exgrid1.FormatABC("value + 1",exgrid1.Items().ItemToIndex(_Item));
	exgrid1.Items().CellImage(_Item,COMVariant::createFromInt(3),i);
}

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Items;
	COMVariant i;
	anytype var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Items;
	int h;
	str var_s,var_s1;
	;

	super();

	exgrid1.BeginUpdate();
	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exgrid1.Images(COMVariant::createFromStr(var_s));
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exgrid1.Columns().Add("Check")); com_Column2 = var_Column2;
		com_Column2.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column2.DisplayFilterButton(true);
		com_Column2.DisplayFilterPattern(false);
		com_Column2.FilterType(6/*exCheck*/);
	var_Column3 = COM::createFromVariant(exgrid1.Columns().Add("Image")); com_Column3 = var_Column3;
		com_Column3.DisplayFilterButton(true);
		com_Column3.FilterType(10/*exImage*/);
		com_Column3.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	var_Column4 = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column4 = var_Column4;
		com_Column4.AllowSizing(false);
		com_Column4.AllowSort(false);
		com_Column4.Width(32);
		com_Column4.FormatColumn("1 rpos ``");
		com_Column4.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellState(h,COMVariant::createFromInt(2),1);
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exgrid1.FilterBarFont(exgrid1.Font());
	exgrid1.Description(11/*exFilterBarAnd*/,exgrid1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exgrid1.Description(11/*exFilterBarAnd*/))));
	var_s1 = "(( ( allui replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `";
	var_s1 = var_s1 + "[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( match";
	var_s1 = var_s1 + "itemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + leafitemcount + ` result(s)` ) : (`<r><fgcolor=808080>`+ leafitemcount + ` ";
	var_s1 = var_s1 + "item(s)`) )))";
	exgrid1.FilterBarCaption(var_s1);
	exgrid1.FilterBarPromptVisible(3/*exFilterBarVisible | exFilterBarPromptVisible*/);
	exgrid1.AllowGroupBy(true);
	exgrid1.SortBarVisible(true);
	var_Column5 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(2)); com_Column5 = var_Column5;
		com_Column5.FormatColumn("%CS2 ? `Checked` : `Unchecked`");
		com_Column5.SortOrder(1/*SortAscending*/);
	exgrid1.EndUpdate();
}
1068:
A black portion is shown while I am using the BackColorAlternate with EBN colors. What can I do

public void init()
{
	COM com_Column,com_Column1,com_ConditionalFormat,com_Items;
	anytype var_Column,var_Column1,var_ConditionalFormat,var_Items;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(true);
	exgrid1.DefaultItemHeight(20);
	var_s = "gBFLBCJwBAEHhEJAAEhIDhAxHAxg0HG0Mg4xGI3HMOig3GcJiYAf8jAEhhUnAAyhEqg8hk0oAsIjgAiAwmYxGA4mYzGwwkI0i0ooUnB0IBMIl1Dg8zmYyGolptPkI1mY";
	var_s = var_s + "1GAll9KoUslNIrVCqNQldShFUstXAVfrVcrlZtVhuFnsUHq1zoczoQGhFBkNpg6zbDykUkhsPHE2h85nc9n8xtVDtlex9Msd2p1YstVq9ux8HyMtzuFz1PsNTzQlv2hh";
	var_s = var_s + "WfkuqpeVuN0q+nvEooN5veSAGpkb/ACcZrvhU3w83nM/poxGuchGpoVBvWgg+8knA4WimnFxI45Er5XOlHMg/Q3XU33W4ew9Wyu11mchDagcO7zus8VDoNBBEIKBpMY6";
	var_s = var_s + "DqOQyokhA/IQIQmwMk4bIQFDcoO6LWgwhQkNcABwEyAB5GwWbet6cRQg3DENQ5D8QxADZvEkAB8nabsURGeBpFM3pwE2AEZRpDx/neZpOR3Dz9oO/r/wCMoZNTBQAQRJ";
	var_s = var_s + "SEwYg8HPGhEIoNCaEwq10gQ2WcRt7LcRxRFpuxUAEURQ3sczBEMgTTG8gN7HpOSEAEiQBAQZpmQ0DibPUFwbKcHwkhQoQtNQNzNEMbABOKDy/DMYQzHLeoPL0OTJSUd0";
	var_s = var_s + "pHcxTewk5zrIygIRPslz4lEngBKIAQivgASs/kLSBTlO00f8t0vGcgUbDlDRjXLCUNRERRvRgAHW2oAICA==";
	exgrid1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Default")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Position")); com_Column1 = var_Column1;
		com_Column1.FormatColumn("1 rindex ``");
		com_Column1.Visible(false);
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("%C1 mod 2"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.BackColor(0x1000000);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.AddItem("Item 2");
		com_Items.AddItem("Item 3");
		com_Items.AddItem("Item 4");
	exgrid1.EndUpdate();
}
1067:
How can I specify alternate background colors for each root item, similar with BackColorAlternate

public void init()
{
	COM com_Column,com_Column1,com_ConditionalFormat,com_Items;
	anytype var_Column,var_Column1,var_ConditionalFormat,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Default")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Position")); com_Column1 = var_Column1;
		com_Column1.FormatColumn("( ( 1:=( ( 0:=(1 rpos '') ) lfind `.`) ) < 0 ? =:0 : (=:0 left =:1) )");
		com_Column1.Visible(false);
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("%C1 mod 2"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.BackColor(WinApi::RGB2int(240,240,240));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		h = com_Items.AddItem("Root 3");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
	exgrid1.EndUpdate();
}
1066:
Is it possible to change the caption from a column without to remove the column and add it with the new caption
public void init()
{
	;

	super();

	COM::createFromVariant(exgrid1.Columns().Add("ColumnName")).Caption("NewName");
	COM::createFromVariant(exgrid1.Columns().Add("ColumnName")).HTMLCaption("<b>New</b>Name");
}
1065:
FilterBarCaption ALL Keyword ( sample 2, result )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COMVariant i;
	;
	i = exgrid1.FormatABC("value + 1",exgrid1.Items().ItemToIndex(_Item));
	exgrid1.Items().CellImage(_Item,COMVariant::createFromInt(3),i);
}

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Column6,com_Editor,com_Items;
	COMVariant i;
	anytype var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Column6,var_Editor,var_Items;
	int h;
	str var_s,var_s1;
	;

	super();

	exgrid1.BeginUpdate();
	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exgrid1.Images(COMVariant::createFromStr(var_s));
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exgrid1.Columns().Add("Check")); com_Column2 = var_Column2;
		var_Editor = com_Column2.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(19/*CheckValueType*/);
			com_Editor.Option(17/*exCheckValue2*/,COMVariant::createFromInt(1));
		com_Column2.DisplayFilterButton(true);
		com_Column2.DisplayFilterPattern(false);
		com_Column2.FilterType(6/*exCheck*/);
	var_Column3 = COM::createFromVariant(exgrid1.Columns().Add("Image")); com_Column3 = var_Column3;
		com_Column3.DisplayFilterButton(true);
		com_Column3.FilterType(10/*exImage*/);
		com_Column3.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	var_Column4 = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column4 = var_Column4;
		com_Column4.AllowSizing(false);
		com_Column4.AllowSort(false);
		com_Column4.Width(32);
		com_Column4.FormatColumn("1 apos ``");
		com_Column4.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellState(h,COMVariant::createFromInt(2),1);
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exgrid1.FilterBarFont(exgrid1.Font());
	exgrid1.Description(11/*exFilterBarAnd*/,exgrid1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exgrid1.Description(11/*exFilterBarAnd*/))));
	var_s1 = "(( ( all replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<";
	var_s1 = var_s1 + "s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matchit";
	var_s1 = var_s1 + "emcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount ";
	var_s1 = var_s1 + "+ ` item(s)`) )))";
	exgrid1.FilterBarCaption(var_s1);
	exgrid1.FilterBarPromptVisible(3/*exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column5 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column5 = var_Column5;
		com_Column5.FilterType(240/*exFilter*/);
		com_Column5.Filter("Item A|Item B");
	var_Column6 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(2)); com_Column6 = var_Column6;
	com_Column6.Filter(1);
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1064:
FilterBarCaption ALL Keyword ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COMVariant i;
	;
	i = exgrid1.FormatABC("value + 1",exgrid1.Items().ItemToIndex(_Item));
	exgrid1.Items().CellImage(_Item,COMVariant::createFromInt(3),i);
}

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Column6,com_Editor,com_Items;
	COMVariant i;
	anytype var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Column6,var_Editor,var_Items;
	int h;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exgrid1.Images(COMVariant::createFromStr(var_s));
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exgrid1.Columns().Add("Check")); com_Column2 = var_Column2;
		var_Editor = com_Column2.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(19/*CheckValueType*/);
			com_Editor.Option(17/*exCheckValue2*/,COMVariant::createFromInt(1));
		com_Column2.DisplayFilterButton(true);
		com_Column2.DisplayFilterPattern(false);
		com_Column2.FilterType(6/*exCheck*/);
	var_Column3 = COM::createFromVariant(exgrid1.Columns().Add("Image")); com_Column3 = var_Column3;
		com_Column3.DisplayFilterButton(true);
		com_Column3.FilterType(10/*exImage*/);
		com_Column3.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	var_Column4 = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column4 = var_Column4;
		com_Column4.AllowSizing(false);
		com_Column4.AllowSort(false);
		com_Column4.Width(32);
		com_Column4.FormatColumn("1 apos ``");
		com_Column4.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellState(h,COMVariant::createFromInt(2),1);
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exgrid1.FilterBarFont(exgrid1.Font());
	exgrid1.Description(11/*exFilterBarAnd*/,exgrid1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exgrid1.Description(11/*exFilterBarAnd*/))));
	exgrid1.FilterBarCaption("all");
	exgrid1.FilterBarPromptVisible(3/*exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column5 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column5 = var_Column5;
		com_Column5.FilterType(240/*exFilter*/);
		com_Column5.Filter("Item A|Item B");
	var_Column6 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(2)); com_Column6 = var_Column6;
	com_Column6.Filter(1);
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1063:
FilterBarCaption ALLUI Keyword ( sample 2, result )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COMVariant i;
	;
	i = exgrid1.FormatABC("value + 1",exgrid1.Items().ItemToIndex(_Item));
	exgrid1.Items().CellImage(_Item,COMVariant::createFromInt(3),i);
}

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Column6,com_Editor,com_Items;
	COMVariant i;
	anytype var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Column6,var_Editor,var_Items;
	int h;
	str var_s,var_s1;
	;

	super();

	exgrid1.BeginUpdate();
	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exgrid1.Images(COMVariant::createFromStr(var_s));
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exgrid1.Columns().Add("Check")); com_Column2 = var_Column2;
		var_Editor = com_Column2.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(19/*CheckValueType*/);
			com_Editor.Option(17/*exCheckValue2*/,COMVariant::createFromInt(1));
		com_Column2.DisplayFilterButton(true);
		com_Column2.DisplayFilterPattern(false);
		com_Column2.FilterType(6/*exCheck*/);
	var_Column3 = COM::createFromVariant(exgrid1.Columns().Add("Image")); com_Column3 = var_Column3;
		com_Column3.DisplayFilterButton(true);
		com_Column3.FilterType(10/*exImage*/);
		com_Column3.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	var_Column4 = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column4 = var_Column4;
		com_Column4.AllowSizing(false);
		com_Column4.AllowSort(false);
		com_Column4.Width(32);
		com_Column4.FormatColumn("1 apos ``");
		com_Column4.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellState(h,COMVariant::createFromInt(2),1);
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exgrid1.FilterBarFont(exgrid1.Font());
	exgrid1.Description(11/*exFilterBarAnd*/,exgrid1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exgrid1.Description(11/*exFilterBarAnd*/))));
	var_s1 = "(( ( allui replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `";
	var_s1 = var_s1 + "[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( match";
	var_s1 = var_s1 + "itemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcoun";
	var_s1 = var_s1 + "t + ` item(s)`) )))";
	exgrid1.FilterBarCaption(var_s1);
	exgrid1.FilterBarPromptVisible(3/*exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column5 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column5 = var_Column5;
		com_Column5.FilterType(240/*exFilter*/);
		com_Column5.Filter("Item A|Item B");
	var_Column6 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(2)); com_Column6 = var_Column6;
	com_Column6.Filter(1);
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1062:
FilterBarCaption ALLUI Keyword ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COMVariant i;
	;
	i = exgrid1.FormatABC("value + 1",exgrid1.Items().ItemToIndex(_Item));
	exgrid1.Items().CellImage(_Item,COMVariant::createFromInt(3),i);
}

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Column6,com_Editor,com_Items;
	COMVariant i;
	anytype var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Column6,var_Editor,var_Items;
	int h;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exgrid1.Images(COMVariant::createFromStr(var_s));
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exgrid1.Columns().Add("Check")); com_Column2 = var_Column2;
		var_Editor = com_Column2.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(19/*CheckValueType*/);
			com_Editor.Option(17/*exCheckValue2*/,COMVariant::createFromInt(1));
		com_Column2.DisplayFilterButton(true);
		com_Column2.DisplayFilterPattern(false);
		com_Column2.FilterType(6/*exCheck*/);
	var_Column3 = COM::createFromVariant(exgrid1.Columns().Add("Image")); com_Column3 = var_Column3;
		com_Column3.DisplayFilterButton(true);
		com_Column3.FilterType(10/*exImage*/);
		com_Column3.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	var_Column4 = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column4 = var_Column4;
		com_Column4.AllowSizing(false);
		com_Column4.AllowSort(false);
		com_Column4.Width(32);
		com_Column4.FormatColumn("1 apos ``");
		com_Column4.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellState(h,COMVariant::createFromInt(2),1);
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exgrid1.FilterBarFont(exgrid1.Font());
	exgrid1.Description(11/*exFilterBarAnd*/,exgrid1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exgrid1.Description(11/*exFilterBarAnd*/))));
	exgrid1.FilterBarCaption("allui");
	exgrid1.FilterBarPromptVisible(3/*exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column5 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column5 = var_Column5;
		com_Column5.FilterType(240/*exFilter*/);
		com_Column5.Filter("Item A|Item B");
	var_Column6 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(2)); com_Column6 = var_Column6;
	com_Column6.Filter(1);
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1061:
FilterBarCaption AVAILABLE Keyword ( sample 2, result )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COMVariant i;
	;
	i = exgrid1.FormatABC("value + 1",exgrid1.Items().ItemToIndex(_Item));
	exgrid1.Items().CellImage(_Item,COMVariant::createFromInt(3),i);
}

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Column6,com_Editor,com_Items;
	COMVariant i;
	anytype var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Column6,var_Editor,var_Items;
	int h;
	str var_s,var_s1;
	;

	super();

	exgrid1.BeginUpdate();
	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exgrid1.Images(COMVariant::createFromStr(var_s));
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exgrid1.Columns().Add("Check")); com_Column2 = var_Column2;
		var_Editor = com_Column2.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(19/*CheckValueType*/);
			com_Editor.Option(17/*exCheckValue2*/,COMVariant::createFromInt(1));
		com_Column2.DisplayFilterButton(true);
		com_Column2.DisplayFilterPattern(false);
		com_Column2.FilterType(6/*exCheck*/);
	var_Column3 = COM::createFromVariant(exgrid1.Columns().Add("Image")); com_Column3 = var_Column3;
		com_Column3.DisplayFilterButton(true);
		com_Column3.FilterType(10/*exImage*/);
		com_Column3.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	var_Column4 = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column4 = var_Column4;
		com_Column4.AllowSizing(false);
		com_Column4.AllowSort(false);
		com_Column4.Width(32);
		com_Column4.FormatColumn("1 apos ``");
		com_Column4.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellState(h,COMVariant::createFromInt(2),1);
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exgrid1.FilterBarFont(exgrid1.Font());
	exgrid1.Description(11/*exFilterBarAnd*/,exgrid1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exgrid1.Description(11/*exFilterBarAnd*/))));
	var_s1 = "(( ( value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` ) + ` ` + ( avai";
	var_s1 = var_s1 + "lable replace `[` with `<bgcolor=C0C0C0><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` replace `<s>` with ``";
	var_s1 = var_s1 + " replace `</s>` with `` ) + `<fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount ";
	var_s1 = var_s1 + "+ 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))";
	exgrid1.FilterBarCaption(var_s1);
	exgrid1.FilterBarPromptVisible(3/*exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column5 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column5 = var_Column5;
		com_Column5.FilterType(240/*exFilter*/);
		com_Column5.Filter("Item A|Item B");
	var_Column6 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(2)); com_Column6 = var_Column6;
	com_Column6.Filter(1);
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1060:
FilterBarCaption AVAILABLE Keyword ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COMVariant i;
	;
	i = exgrid1.FormatABC("value + 1",exgrid1.Items().ItemToIndex(_Item));
	exgrid1.Items().CellImage(_Item,COMVariant::createFromInt(3),i);
}

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Column6,com_Editor,com_Items;
	COMVariant i;
	anytype var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Column6,var_Editor,var_Items;
	int h;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exgrid1.Images(COMVariant::createFromStr(var_s));
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exgrid1.Columns().Add("Check")); com_Column2 = var_Column2;
		var_Editor = com_Column2.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(19/*CheckValueType*/);
			com_Editor.Option(17/*exCheckValue2*/,COMVariant::createFromInt(1));
		com_Column2.DisplayFilterButton(true);
		com_Column2.DisplayFilterPattern(false);
		com_Column2.FilterType(6/*exCheck*/);
	var_Column3 = COM::createFromVariant(exgrid1.Columns().Add("Image")); com_Column3 = var_Column3;
		com_Column3.DisplayFilterButton(true);
		com_Column3.FilterType(10/*exImage*/);
		com_Column3.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	var_Column4 = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column4 = var_Column4;
		com_Column4.AllowSizing(false);
		com_Column4.AllowSort(false);
		com_Column4.Width(32);
		com_Column4.FormatColumn("1 apos ``");
		com_Column4.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellState(h,COMVariant::createFromInt(2),1);
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exgrid1.FilterBarFont(exgrid1.Font());
	exgrid1.Description(11/*exFilterBarAnd*/,exgrid1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exgrid1.Description(11/*exFilterBarAnd*/))));
	exgrid1.FilterBarCaption("value + ` ` + available");
	exgrid1.FilterBarPromptVisible(3/*exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column5 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column5 = var_Column5;
		com_Column5.FilterType(240/*exFilter*/);
		com_Column5.Filter("Item A|Item B");
	var_Column6 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(2)); com_Column6 = var_Column6;
	com_Column6.Filter(1);
	exgrid1.ApplyFilter();
	exgrid1.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 )

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Items;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column2 = var_Column2;
		com_Column2.AllowSizing(false);
		com_Column2.AllowSort(false);
		com_Column2.Width(32);
		com_Column2.FormatColumn("1 apos ``");
		com_Column2.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		com_Items.CellValue(com_Items.AddItem("Item B"),COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exgrid1.FilterBarFont(exgrid1.Font());
	exgrid1.Description(11/*exFilterBarAnd*/,exgrid1.FormatABC("`<fgcolor=808080>` + value + `</fgcolor>`",COMVariant::createFromStr(exgrid1.Description(11/*exFilterBarAnd*/))));
	var_s = "(`<b>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ";
	var_s = var_s + "` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )) replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace";
	var_s = var_s + " `]` with ` </b></bgcolor></fgcolor>`";
	exgrid1.FilterBarCaption(var_s);
	exgrid1.FilterBarPromptVisible(256/*exFilterBarToggle*/);
	var_Column3 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column3 = var_Column3;
		com_Column3.FilterType(240/*exFilter*/);
		com_Column3.Filter("Item A|Item B");
	var_Column4 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column4 = var_Column4;
		com_Column4.FilterType(3/*exPattern*/);
		com_Column4.Filter("*B");
	exgrid1.ApplyFilter();
	exgrid1.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 )

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column2 = var_Column2;
		com_Column2.AllowSizing(false);
		com_Column2.AllowSort(false);
		com_Column2.Width(32);
		com_Column2.FormatColumn("1 apos ``");
		com_Column2.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		com_Items.CellValue(com_Items.AddItem("Item B"),COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exgrid1.FilterBarFont(exgrid1.Font());
	exgrid1.Description(11/*exFilterBarAnd*/,exgrid1.FormatABC("`<fgcolor=808080>` + value + `</fgcolor>`",COMVariant::createFromStr(exgrid1.Description(11/*exFilterBarAnd*/))));
	exgrid1.FilterBarCaption("value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>`");
	exgrid1.FilterBarPromptVisible(256/*exFilterBarToggle*/);
	var_Column3 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column3 = var_Column3;
		com_Column3.FilterType(240/*exFilter*/);
		com_Column3.Filter("Item A|Item B");
	var_Column4 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column4 = var_Column4;
		com_Column4.FilterType(3/*exPattern*/);
		com_Column4.Filter("*B");
	exgrid1.ApplyFilter();
	exgrid1.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 )

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column2 = var_Column2;
		com_Column2.AllowSizing(false);
		com_Column2.AllowSort(false);
		com_Column2.Width(32);
		com_Column2.FormatColumn("1 apos ``");
		com_Column2.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		com_Items.CellValue(com_Items.AddItem("Item B"),COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exgrid1.Description(11/*exFilterBarAnd*/,exgrid1.FormatABC("`<fgcolor=808080>` + value + `</fgcolor>`",COMVariant::createFromStr(exgrid1.Description(11/*exFilterBarAnd*/))));
	exgrid1.FilterBarCaption("value replace `[` with `<fgcolor=808080>[` replace `]` with `]</fgcolor>`");
	exgrid1.FilterBarPromptVisible(256/*exFilterBarToggle*/);
	var_Column3 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column3 = var_Column3;
		com_Column3.FilterType(240/*exFilter*/);
		com_Column3.Filter("Item A|Item B");
	var_Column4 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column4 = var_Column4;
		com_Column4.FilterType(3/*exPattern*/);
		com_Column4.Filter("*B");
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1056:
Is it possible to automatically displays the control's filter label to the right

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Item")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column1 = var_Column1;
		com_Column1.AllowSizing(false);
		com_Column1.AllowSort(false);
		com_Column1.Width(32);
		com_Column1.FormatColumn("1 apos ``");
		com_Column1.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarCaption("`<r>` + value");
	exgrid1.FilterBarPromptVisible(1280/*exFilterBarShowCloseOnRight | exFilterBarToggle*/);
	var_Column2 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column2 = var_Column2;
		com_Column2.FilterType(240/*exFilter*/);
		com_Column2.Filter("Item B");
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1055:
How can I get the number of results/items being shown in the control's filter bar (sample 4)

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Item")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column1 = var_Column1;
		com_Column1.AllowSizing(false);
		com_Column1.AllowSort(false);
		com_Column1.Width(32);
		com_Column1.FormatColumn("1 apos ``");
		com_Column1.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarFont(exgrid1.Font());
	exgrid1.FilterBarPrompt(exgrid1.FormatABC("`<b>` + value",COMVariant::createFromStr(exgrid1.FilterBarPrompt())));
	var_s = "`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount +";
	var_s = var_s + " 1) + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )";
	exgrid1.FilterBarCaption(var_s);
	exgrid1.FilterBarPromptVisible(3591/*exFilterBarCompact | exFilterBarShowCloseOnRight | exFilterBarShowCloseIfRequired | exFilterBarCaptionVisible | exFilterBarVisible | exFilterBarPromptVisible*/);
	exgrid1.EndUpdate();
}
1054:
How can I get the number of results being shown in the control's filter bar (sample 3)

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarFont(exgrid1.Font());
	var_s = "`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount +";
	var_s = var_s + " 1) + ` result(s)` ) : ``)";
	exgrid1.FilterBarCaption(var_s);
	exgrid1.FilterBarPromptVisible(2055/*exFilterBarCompact | exFilterBarCaptionVisible | exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column1 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.FilterType(240/*exFilter*/);
		com_Column1.Filter("Item A|Item B");
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1053:
How can I get the number of results being shown in the control's filter bar (sample 2, compact)

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarFont(exgrid1.Font());
	exgrid1.FilterBarCaption("`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? `<off -4> ` + abs(matchitemcount + 1) + ` result(s)` : ``)");
	exgrid1.FilterBarPromptVisible(2071/*exFilterBarCompact | exFilterBarSingleLine | exFilterBarCaptionVisible | exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column1 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.FilterType(240/*exFilter*/);
		com_Column1.Filter("Item A|Item B");
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1052:
How can I get the number of results being shown in the control's filter bar (sample 1)

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarFont(exgrid1.Font());
	exgrid1.FilterBarCaption("`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)");
	exgrid1.FilterBarPromptVisible(7/*exFilterBarCaptionVisible | exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column1 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.FilterType(240/*exFilter*/);
		com_Column1.Filter("Item A|Item B");
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1051:
FilterBarCaption Predefined Keywords

// AfterExpandItem event - Fired after an item is expanded (collapsed).
void onEvent_AfterExpandItem(int   _Item)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Editor,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Editor,var_Items;
	int h;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Check")); com_Column = var_Column;
		var_Editor = com_Column.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(19/*CheckValueType*/);
			com_Editor.Option(17/*exCheckValue2*/,COMVariant::createFromInt(1));
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.FilterType(6/*exCheck*/);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column1 = var_Column1;
		com_Column1.AllowSizing(false);
		com_Column1.AllowSort(false);
		com_Column1.Width(32);
		com_Column1.FormatColumn("1 apos ``");
		com_Column1.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		h = com_Items.AddItem("Item B");
		com_Items.CellState(com_Items.InsertItem(h,,"Sub-Item B1"),COMVariant::createFromInt(1),1);
		com_Items.InsertItem(h,,"Sub-Item B2");
		com_Items.ExpandItem(h,true);
		com_Items.AddItem("Item C");
	exgrid1.FilterInclude(1/*exItemsWithChilds*/);
	exgrid1.FilterBarFont(exgrid1.Font());
	var_s = "`<fgcolor=0000FF><i>value/current</i></fgcolor>: <fgcolor=808080>` + value + `</fgcolor>` + `<br><fgcolor=0000FF><i>available</i";
	var_s = var_s + "></fgcolor>: ` + available + `<br><fgcolor=0000FF><i>allui</i></fgcolor>: ` + allui + `<br><fgcolor=0000FF><i>all</i></fgcolor>:";
	var_s = var_s + " ` + all + `<br><fgcolor=0000FF><i>itemcount</i></fgcolor>: <fgcolor=808080>` + itemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><";
	var_s = var_s + "i>visibleitemcount</i></fgcolor>: <fgcolor=808080>` + visibleitemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>matchitemcount</i";
	var_s = var_s + "></fgcolor>: <fgcolor=808080>` + matchitemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>promptpattern</i></fgcolor>: <fgcolor=80";
	var_s = var_s + "8080>` + promptpattern + `</fgcolor>`+ `<br><fgcolor=0000FF><i>leafitemcount</i></fgcolor>: <fgcolor=808080>` + leafitemcount + ";
	var_s = var_s + "`</fgcolor>`";
	exgrid1.FilterBarCaption(var_s);
	exgrid1.FilterBarPromptPattern("B");
	exgrid1.FilterBarPromptVisible(7/*exFilterBarCaptionVisible | exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column2 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column2 = var_Column2;
		com_Column2.FilterType(240/*exFilter*/);
		com_Column2.Filter("Item A|Item B");
	exgrid1.ApplyFilter();
	exgrid1.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

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarFont(exgrid1.Font());
	exgrid1.FilterBarCaption("`<r><i><fgcolor=808080><upline><solidline><sha ;;0>` + value");
	exgrid1.FilterBarPromptPattern("B");
	exgrid1.FilterBarPromptVisible(2067/*exFilterBarCompact | exFilterBarSingleLine | exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column1 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.FilterType(240/*exFilter*/);
		com_Column1.Filter("Item A|Item B");
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1049:
Just wondering if it is possible to show the filter bar's close button on the right ( sample 2 )

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarPromptVisible(1281/*exFilterBarShowCloseOnRight | exFilterBarToggle | exFilterBarPromptVisible*/);
	exgrid1.FilterBarPrompt(exgrid1.FormatABC("`<r>` + value",COMVariant::createFromStr(exgrid1.FilterBarPrompt())));
	exgrid1.EndUpdate();
}
1048:
Just wondering if it is possible to show the filter bar's close button on the right ( sample 1 )

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.RightToLeft(true);
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarPromptVisible(257/*exFilterBarToggle | exFilterBarPromptVisible*/);
	exgrid1.EndUpdate();
}
1047:
How can I change the visual appearance of the filter bar's close button (EBN)

public void init()
{
	COM com_Appearance,com_Column,com_Items;
	anytype var_Appearance,var_Column,var_Items;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAEhABHQDg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLOg7IJj";
		var_s = var_s + "yI4/SJAYCydKAWhxIaZKJHCZoEDaTAADCNVAQp6MEIJVbVEI0e79OgBLp/Z7kECIJJAaRjHQdJxGLA8EhtCQhCZteK6SgMKJYXhWQYRXI1JwvMBrWrdQjiOYELQtMKmS";
		var_s = var_s + "ZNLYGG4dR5SVJbcYhSYsRRFMoyDIOXYDLKsdYqSpXIThObEGgaPqJYjsUjCMKnR7HVIURrBPC9TBPE69ZgmC6ucKPX51ShKFaBWDZcwFAS+UBuYCAILiEAQGZ1XT8ORO";
		var_s = var_s + "icbgJgSTJRlCaZeDsHY7QGR4xkSYp3CaExZAQMgalQYAwjCAAfBANxcA2TgKAUOpDCGFhKg0RpXCwCwDHQHQHEyAIkCkOhbFOGA8A8DohBgRg9AccZcn8EpEjMLI2C2D";
		var_s = var_s + "YxAgQgvAIUIVkoAAPBQDJlECTZ3CCYwDACQwUA8A5MCAWAWDiQi4l8aQOEgLJuBgBgDmYFAzEoIoIl0WALgKYJbBABADAAHgHg8VAMmqCQQDMXABAATYwTmNwBDATJXA";
		var_s = var_s + "iAgjHmNQ5lgQ5QEQEQMmcWg/GwD5ylyNw2gMcJcjsBgBgOQQDDhRpVAMMwnDBFw1B0Ax8D0DxOmmJJIGQTY5hGMAwkwM4CAYLZAmAOJnAqAojiIGg6iieYkmeAYOHaKJ";
		var_s = var_s + "DCyCwjH6AoggsQpQliAJLhgaJ0CESBTnyDwjk+cg4g4P5IHIHJ+BWRRzlYWAxiOUxihsY4KjKLJRGqC44FCegkkkM58iAKAPnIWIWD8SRSFSfQnkmewUhYP4GiGKJ7G0";
		var_s = var_s + "TIbCSUoggqUo0lAQ4LnEcBcD8Coiiif4nE+eAAn2HpOkcFJqi4T5SkyMw/kqQown8IBIBOdA+A+DJrBqVxXEqYo4lCApLhGHBnD8S4ymyfxmg+cwQkQP5egOUZIWoEAk";
		var_s = var_s + "jIeIPBMBJBD+TBjBifwvkuc58hQJQPmFrYykkchclSApKjGOBuD+TRDFCfw3mmIxNi8FxFlOXhVC4aYDFyPgvg2YBcBcLZGCGCJ0DSLRzGSWQ/lmY5+mEP5gmMDBZRSM";
		var_s = var_s + "RsFsOxMhMJJ/DsTpTnwaQaE+N5ojuNhdEYNI5C4TZJO1GRDmCaxnA2Yx4n8IpIjOTBQBQC5TgyYw7gUYRYikC0BYRwsDQBoB8eA6Q2hsE0BUXgywZtYCyHMKwnxSAhAQ";
		var_s = var_s + "HkIQhRrBaDsCwA4ERiB2EWAIYIXhhiVEgAEUYwwYjyASLge4FhHgRDkM8OQih0jWPkGgBBAQ";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s));
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarPromptVisible(257/*exFilterBarToggle | exFilterBarPromptVisible*/);
	exgrid1.Background(1/*exFooterFilterBarButton*/,0x1000000);
	exgrid1.EndUpdate();
}
1046:
How can I change the visual appearance of the filter bar's close button (solid)

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarPromptVisible(1/*exFilterBarPromptVisible*/);
	exgrid1.Background(1/*exFooterFilterBarButton*/,WinApi::RGB2int(255,0,0));
	exgrid1.EndUpdate();
}
1045:
Is it possible to prevent definitely showing the filter bar's close button

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarPromptVisible(1/*exFilterBarPromptVisible*/);
	exgrid1.Background(1/*exFooterFilterBarButton*/,-1);
	exgrid1.EndUpdate();
}
1044:
Is it possible to show the close button only if there is a filter applied

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarPromptVisible(513/*exFilterBarShowCloseIfRequired | exFilterBarPromptVisible*/);
	exgrid1.EndUpdate();
}
1043:
The control's filter bar is not closed once I click the close button (toggle)

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
		com_Items.LockedItemCount(2/*exBottom*/,1);
		h = com_Items.LockedItem(2/*exBottom*/,0);
		com_Items.ItemDivider(h,0);
		com_Items.CellValue(h,COMVariant::createFromInt(0),"<c><fgcolor=808080>Press the CTRL + F to turn on/off the control's filter bar. ALT + Up/Down moves the focus.");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
	exgrid1.FilterBarCaption("`<r><fgcolor=808080>` + value");
	exgrid1.FilterBarPromptPattern("B");
	exgrid1.FilterBarPromptVisible(2323/*exFilterBarCompact | exFilterBarToggle | exFilterBarSingleLine | exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column1 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.FilterType(240/*exFilter*/);
		com_Column1.Filter("Item B");
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1042:
How can I display the control's filter on a single line

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarCaption("len(value) ? `filter for: <fgcolor 808080>` + value  : `<fgcolor 808080>no filter`");
	exgrid1.FilterBarPromptVisible(18/*exFilterBarSingleLine | exFilterBarVisible*/);
	var_Column1 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.FilterType(240/*exFilter*/);
		com_Column1.Filter("Item A|Item B");
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1041:
How can I display the control's filter on a single line (prompt-combined)

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarCaption("`<r>` + value");
	exgrid1.FilterBarPromptVisible(2067/*exFilterBarCompact | exFilterBarSingleLine | exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column1 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.FilterType(240/*exFilter*/);
		com_Column1.Filter("Item A|Item B");
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1040:
How can I get the number of results after a filter is applied

// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
void onEvent_Click()
{
	;
	exgrid1.ClearFilter();
}

// FilterChange event - Occurs when filter was changed.
void onEvent_FilterChange()
{
	;
	print( "Items.MatchItemCount" );
	print( exgrid1.Items().MatchItemCount() );
	print( exgrid1.FormatABC("value < 0 ? `filter applied: ` + abs(value + 1) + ` result(s)` : `no filter`",exgrid1.Items().MatchItemCount()) );
}

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarPromptVisible(1/*exFilterBarPromptVisible*/);
	exgrid1.FilterBarPromptPattern("Item");
	exgrid1.EndUpdate();
}
1039:
How can I programmatically clear the control's filter
// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
void onEvent_Click()
{
	;
	exgrid1.ClearFilter();
}

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarPromptVisible(1/*exFilterBarPromptVisible*/);
	exgrid1.FilterBarPromptPattern("B");
	exgrid1.EndUpdate();
}
1038:
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt-combined)

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarPromptPattern("B");
	exgrid1.FilterBarPromptVisible(3/*exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column1 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.FilterType(240/*exFilter*/);
		com_Column1.Filter("Item B");
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1037:
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt)

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarPromptVisible(1/*exFilterBarPromptVisible*/);
	exgrid1.FilterBarPromptPattern("B");
	exgrid1.EndUpdate();
}
1036:
Is it possible to prevent closing the control's filter bar, so it is always shown

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	COM::createFromVariant(exgrid1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.FilterBarCaption("len(value) = 0 ? `<fgcolor=808080>no filter` : value");
	exgrid1.FilterBarPromptVisible(2/*exFilterBarVisible*/);
	var_Column1 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.FilterType(240/*exFilter*/);
		com_Column1.Filter("Item B");
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1035:
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 4)

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_s = "gBFLBWIgBAEHhEJAEGg6VAkHeLpgwChAOhULB8XAUUg8MAAREEHGMcgRCJ0ei8dhABDEcQAAYAQGKIYBkAKBQAGaAoDDMOQwQwAAxjGKEEwsACEIrjKCRShyCYZRhGcT";
	var_s = var_s + "SBCIZBqEqSZLiEZRQiiCYsS5GQBRWAkEwiBiEQTjea5CgOIAFS7LIqjRQEBxhIaZYIGaiQADENo9TxIMZAfBIHShK6NJABCCSQKkYx0HScRijDIEFwGIQmbKiej4DCiC";
	var_s = var_s + "QQW7OYYRVCNMQSfa8HivJyrcamfp/YBgOBYHb1eLVPR5LwfPCGUw1P6PLxkORZHimK4tSLHV7xVpMIwZFafIQhCCoHomS5NU7UNR0TQUFx9FaGX7rDDsGwLAJ6XRgF4b";
	var_s = var_s + "g2VpnHePpenAN4bH2GwHFmApSjEGBLnWOpRGOTBZHOegrE6BxPiWVJqCweQrn0LgJAWJBjwgaw1gKO5HmWch5h+fovF+G5bmich4BgfZkB8dynRUVYqiUR5rnmex/F6N";
	var_s = var_s + "4tn2AJfnebZ3DEXw3HWXgzAyIwgicKJKBKEIhCeCgiHyHYFEmSAFmqBghFIdgSCeIJygYDAyAgJx6AoIINAMOJNCgCZCGoGoLmMCI+CwJoihMNglCCIhzFCUg0EmMhgh";
	var_s = var_s + "WDBkAiQg9CUY4jEYN4Jk2IxklYJoJHIUg+CSZJSESFwkkkGI+FOFIJEIRhPhMCRJCSVoRrSBhiDgTZjHYT4PEkYhwhgJYm0SaIaiaSYuE+GQNlmCIBGCJxjhiZQ5AkMh";
	var_s = var_s + "Ag6ExJCkPhPguaAiFYUAlAkKZ0g6HoOEmWR/GHcA4m0OwIlIJIHCRgQshGJhpjoaocieaZiC6GAimkUgehIOwnGYGYIGkah6jaE4rg6SpCjKK5rEOMYlGIGIihKOgglo";
	var_s = var_s + "Foqj6L5aGaBo6CkGIkAQjiPpCAAaJILCTJQlKPACDaXJgmSaJsnCdJ4nygKEoijKQpSmKcqCpKoqysK0rivLAsSyLMtC1LYty4Lkui7LwvS+L8wDBMIwzEMUxjHMgyTK";
	var_s = var_s + "MszDNM4zzQNE0jTNQ1TWNc2DZNo2zcN03jfOA4TiOM5DlOY5zoOk6jrOw7TuO88DxPI8z0PU9j3Pg+T6Ps/D9P4/0AQFAkDQRBUGQdCEJQpC0MQ1DkPRBEUSRNFEVBhF";
	var_s = var_s + "kXRhGQ9D6Dxfh+W5gGGd4QH2XQjCmDpFFaKoVB+D5Xmed5+H8YAHnIAh9EwV5Fl0d4MkMKJICmSgygSJAoEmMUCIPgnDCCIOQFYCxJjwFoCcA4kxoF+AIJkAgExegDEg";
	var_s = var_s + "EYQInAzCUAIOEGgfxiiRDYF1Q4EQ2BSCaEQYwbAiKREMpRSymFNDIAkAxT6oVRgSA2qdVKq1WqvVirMZQUhSCnBUMoIgoQRgnGSIQUgkg1hIHYAkAYMROAmHiLsE4xxS";
	var_s = var_s + "CxBwEwCQ0wmDdBsE0GYXBtg2CSPMFIuwYiQBYBQeAcwOCnBCCZgw0g0glBONAQgqQThCGgPQGoBQfiRGmOEZIPAXjsBoPAO4HRThhA0EQSA5BAgaCKJIGg3QdhOCmNUB";
	var_s = var_s + "oQAijTCIF0FwQxpCHDIPAYYMQGgtCmFcaQtRAjZCyFYSojQ2B2BoKwIYFApBXEIBsIQ1QsAWAWEwaA1xCgjAoIAQBAQ=";
	exgrid1.VisualDesign(var_s);
	exgrid1.Columns().Add("Column");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child");
	exgrid1.EndUpdate();
}
1034:
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 3)

public void init()
{
	COM com_Appearance,com_Items;
	anytype var_Appearance,var_Items;
	int h;
	str var_s,var_s1;
	;

	super();

	exgrid1.BeginUpdate();
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB";
		var_s = var_s + "cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD";
		var_s = var_s + "xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l";
		var_s = var_s + "lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5JlgX";
		var_s = var_s + "IcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIRg";
		var_s = var_s + "wZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOMI";
		var_s = var_s + "NCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA=";
		com_Appearance.Add(3,COMVariant::createFromStr(var_s));
		com_Appearance.Add(1,"CP:3 -2 -2 2 2");
		var_s1 = "gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB";
		var_s1 = var_s1 + "cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD";
		var_s1 = var_s1 + "xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l";
		var_s1 = var_s1 + "lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCEe";
		var_s1 = var_s1 + "Bkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchOF";
		var_s1 = var_s1 + "SFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQOJ";
		var_s1 = var_s1 + "tDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI=";
		com_Appearance.Add(4,COMVariant::createFromStr(var_s1));
		com_Appearance.Add(2,"CP:4 -2 -2 2 2");
	exgrid1.LinesAtRoot(1/*exGroupLinesAtRoot*/);
	exgrid1.HasButtons(4/*exCustom*/);
	exgrid1.HasButtonsCustom(0,16777216);
	exgrid1.HasButtonsCustom(1,33554432);
	exgrid1.Columns().Add("Column");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child");
	exgrid1.EndUpdate();
}
1033:
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 2)

public void init()
{
	COM com_Appearance,com_Items;
	anytype var_Appearance,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		com_Appearance.Add(1,"XP:TREEVIEW 2 1");
		com_Appearance.Add(2,"XP:TREEVIEW 2 2");
	exgrid1.Background(180/*exTreeGlyphOpen*/,0x1000000);
	exgrid1.Background(181/*exTreeGlyphClose*/,0x2000000);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.Columns().Add("Column");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child");
	exgrid1.EndUpdate();
}
1032:
How can I find if the control is running in DPI mode
public void init()
{
	;

	super();

	print( exgrid1.FormatABC("dpi = 1 ? `normal/stretch mode` : `dpi mode`") );
}
1031:
How can I change the visual appearance of the +/- buttons (method 1)

public void init()
{
	COM com_Appearance,com_Items;
	anytype var_Appearance,var_Items;
	int h;
	str var_s,var_s1;
	;

	super();

	exgrid1.BeginUpdate();
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB";
		var_s = var_s + "cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD";
		var_s = var_s + "xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l";
		var_s = var_s + "lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5JlgX";
		var_s = var_s + "IcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIRg";
		var_s = var_s + "wZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOMI";
		var_s = var_s + "NCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA=";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s));
		var_s1 = "gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB";
		var_s1 = var_s1 + "cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD";
		var_s1 = var_s1 + "xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l";
		var_s1 = var_s1 + "lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCEe";
		var_s1 = var_s1 + "Bkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchOF";
		var_s1 = var_s1 + "SFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQOJ";
		var_s1 = var_s1 + "tDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI=";
		com_Appearance.Add(2,COMVariant::createFromStr(var_s1));
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.Background(180/*exTreeGlyphOpen*/,0x1000000);
	exgrid1.Background(181/*exTreeGlyphClose*/,0x2000000);
	exgrid1.Columns().Add("Column");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child");
	exgrid1.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
// SelectionChanged event - Fired after a new item has been selected.
void onEvent_SelectionChanged()
{
	;
	print( "SelectionChanged" );
}

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.FreezeEvents(true);
	exgrid1.SingleSel(true);
	exgrid1.SelectOnRelease(true);
	COM::createFromVariant(exgrid1.Columns().Add("Column")).FormatColumn("1 apos `A-Z`");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("");
		com_Items.SelectItem(com_Items.AddItem(""),true);
		com_Items.AddItem("");
	exgrid1.FreezeEvents(false);
	exgrid1.EndUpdate();
}
1029:
Is it possible to select nothing
// SelectionChanged event - Fired after a new item has been selected.
void onEvent_SelectionChanged()
{
	;
	print( "SelectionChanged" );
}

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.FreezeEvents(true);
	exgrid1.AllowSelectNothing(true);
	COM::createFromVariant(exgrid1.Columns().Add("Column")).FormatColumn("1 apos `A-Z`");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("");
		com_Items.SelectItem(com_Items.AddItem(""),true);
		com_Items.AddItem("");
	exgrid1.FreezeEvents(false);
	exgrid1.EndUpdate();
}
1028:
How can I specify the color for control's selection when it loses the focus

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowDragging(false);
		com_Column.AllowSort(false);
		com_Column.Width(24);
		com_Column.Def(2/*exCellHasButton*/,COMVariant::createFromBoolean(true));
	COM::createFromVariant(exgrid1.Columns().Add("Column")).FormatColumn("1 apos `A-Z`");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("");
		com_Items.SelectItem(com_Items.AddItem(""),true);
		com_Items.AddItem("");
	exgrid1.Background(166/*exSelBackColorHide*/,WinApi::RGB2int(196,196,196));
	exgrid1.Background(167/*exSelForeColorHide*/,WinApi::RGB2int(0,0,1));
	exgrid1.EndUpdate();
}
1027:
How can I change the background color for checked items (EBN color, frame)

// CellStateChanged event - Fired after cell's state has been changed.
void onEvent_CellStateChanged(int   _Item,int   _ColIndex)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Appearance,com_Column,com_ConditionalFormat,com_Items;
	anytype var_Appearance,var_Column,var_ConditionalFormat,var_Items;
	int h,hChild;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.SelBackMode(1/*exTransparent*/);
	exgrid1.DefaultItemHeight(22);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Tasks")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAEhABUkIQAAYAQGKIcBiAKBQAGYBIJDEMQ3DjAUBjMK4ZwTC4AIQjCK4JDKHYJRpHEZgLBMJAAGIZYhhUYRUiYMkiJBGGDIDiGGI2SJAcbTVIEcx";
		var_s = var_s + "9EyUJSgSTJOjCMokTTIU4TTLYASbJafJJhWSaAiyMouDIOMg1BDNIw/Hika6jOgKUisNJXRzWIBTbDlOQ3JqnbCjOQRSrQBoNDAMAiiaKlbwJPK9RoieQXfwUAJrXJcF";
		var_s = var_s + "qXFSLVxNBKAQEBA=";
		com_Appearance.Add(2,COMVariant::createFromStr(var_s));
		com_Appearance.Add(1,"CP:2 1 1 -1 -1");
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("%CS0 = 1"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.BackColor(0x1000000);
	exgrid1.HeaderVisible(1);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Project");
		hChild = com_Items.InsertItem(h,,"Task 1");
		com_Items.SelectItem(hChild,true);
		hChild = com_Items.InsertItem(h,,"Task 2");
		com_Items.CellState(hChild,1);
		hChild = com_Items.InsertItem(h,,"Task 3");
		com_Items.CellState(hChild,1);
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
1026:
How can I change the caption of the checked items (sample 2)

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h,hChild;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Tasks")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
		com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
		com_Column.FormatColumn("%CS0 = 1 ? `<bgcolor=000000><fgcolor=FFFFFF> ` + value + ` </fgcolor></bgcolor>` : value");
	exgrid1.HeaderVisible(1);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Project");
		hChild = com_Items.InsertItem(h,,"Task 1");
		com_Items.SelectItem(hChild,true);
		hChild = com_Items.InsertItem(h,,"Task 2");
		com_Items.CellState(hChild,1);
		hChild = com_Items.InsertItem(h,,"Task 3");
		com_Items.CellState(hChild,1);
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
1025:
How can I change the caption of the checked items (sample 1)

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h,hChild;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Tasks")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
		com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
		com_Column.FormatColumn("value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)");
	exgrid1.HeaderVisible(1);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Project");
		hChild = com_Items.InsertItem(h,,"Task 1");
		com_Items.SelectItem(hChild,true);
		hChild = com_Items.InsertItem(h,,"Task 2");
		com_Items.CellState(hChild,1);
		hChild = com_Items.InsertItem(h,,"Task 3");
		com_Items.CellState(hChild,1);
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
1024:
How can I change the font for the checked items

// CellStateChanged event - Fired after cell's state has been changed.
void onEvent_CellStateChanged(int   _Item,int   _ColIndex)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Column,com_ConditionalFormat,com_Items,com_f;
	anytype f,var_Column,var_ConditionalFormat,var_Items;
	int h,hChild;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.DefaultItemHeight(22);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Tasks")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("%CS0 = 1"); com_ConditionalFormat = var_ConditionalFormat;
		f = COM::createFromObject(new stdole.StdFont()); com_f = f;
			f.Name(exgrid1.Font().Name());
			f.Size(12);
		com_ConditionalFormat.Font(f);
	exgrid1.HeaderVisible(1);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Project");
		hChild = com_Items.InsertItem(h,,"Task 1");
		com_Items.SelectItem(hChild,true);
		hChild = com_Items.InsertItem(h,,"Task 2");
		com_Items.CellState(hChild,1);
		hChild = com_Items.InsertItem(h,,"Task 3");
		com_Items.CellState(hChild,1);
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
1023:
How can I bold the checked items

// CellStateChanged event - Fired after cell's state has been changed.
void onEvent_CellStateChanged(int   _Item,int   _ColIndex)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Column,com_ConditionalFormat,com_Items;
	anytype var_Column,var_ConditionalFormat,var_Items;
	int h,hChild;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Tasks")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("%CS0 = 1"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.Bold(true);
	exgrid1.HeaderVisible(1);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Project");
		hChild = com_Items.InsertItem(h,,"Task 1");
		com_Items.SelectItem(hChild,true);
		hChild = com_Items.InsertItem(h,,"Task 2");
		com_Items.CellState(hChild,1);
		hChild = com_Items.InsertItem(h,,"Task 3");
		com_Items.CellState(hChild,1);
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
1022:
How can I change the foreground color for checked items

// CellStateChanged event - Fired after cell's state has been changed.
void onEvent_CellStateChanged(int   _Item,int   _ColIndex)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Column,com_ConditionalFormat,com_Items;
	anytype var_Column,var_ConditionalFormat,var_Items;
	int h,hChild;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.SelBackMode(1/*exTransparent*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Tasks")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("%CS0 = 1"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.ForeColor(WinApi::RGB2int(255,128,128));
	exgrid1.HeaderVisible(1);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Project");
		hChild = com_Items.InsertItem(h,,"Task 1");
		com_Items.SelectItem(hChild,true);
		hChild = com_Items.InsertItem(h,,"Task 2");
		com_Items.CellState(hChild,1);
		hChild = com_Items.InsertItem(h,,"Task 3");
		com_Items.CellState(hChild,1);
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
1021:
How can I change the background color for checked items (solid color)

// CellStateChanged event - Fired after cell's state has been changed.
void onEvent_CellStateChanged(int   _Item,int   _ColIndex)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Column,com_ConditionalFormat,com_Items;
	anytype var_Column,var_ConditionalFormat,var_Items;
	int h,hChild;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.SelBackMode(1/*exTransparent*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Tasks")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("%CS0 = 1"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.BackColor(WinApi::RGB2int(255,128,128));
	exgrid1.HeaderVisible(1);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Project");
		hChild = com_Items.InsertItem(h,,"Task 1");
		com_Items.SelectItem(hChild,true);
		hChild = com_Items.InsertItem(h,,"Task 2");
		com_Items.CellState(hChild,1);
		hChild = com_Items.InsertItem(h,,"Task 3");
		com_Items.CellState(hChild,1);
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
1020:
How can I export the cell's state as well

public void init()
{
	COM com_Column,com_Columns,com_Items;
	anytype var_Column,var_Columns,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("C1")).Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		COM::createFromVariant(com_Columns.Add("C2")).FormatColumn("1 index `A-Z`");
		COM::createFromVariant(com_Columns.Add("C3")).FormatColumn("100 index ``");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.CellState(com_Items.AddItem("Item 2"),1);
		com_Items.CellState(com_Items.AddItem("Item 3"),1);
	exgrid1.EndUpdate();
	print( "Export CSV Items including Check-State:" );
	exgrid1.BeginUpdate();
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Check")); com_Column = var_Column;
		com_Column.Position(0);
		com_Column.FormatColumn("%CS0");
	print( exgrid1.Export("") );
	exgrid1.Columns().Remove("Check");
	exgrid1.EndUpdate();
}
1019:
Is it possible to customize the editor selection colour of the built in text editor, from standard blue to black

public void init()
{
	COM com_Editor,com_Items;
	anytype var_Editor,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.SelBackColor(WinApi::RGB2int(0,0,0));
	exgrid1.SelForeColor(WinApi::RGB2int(255,255,255));
	var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Edit")).Editor(); com_Editor = var_Editor;
		com_Editor.EditType(8/*MaskType*/);
		com_Editor.Mask(";;;rich");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("");
		com_Items.AddItem("Just a text");
		com_Items.AddItem("");
	exgrid1.EndUpdate();
}
1018:
Is it possible to customize the editor selection colour of the built in dropdown editor, from standard blue to black

public void init()
{
	COM com_Editor,com_Items;
	anytype var_Editor,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.SelBackColor(WinApi::RGB2int(0,0,0));
	exgrid1.SelForeColor(WinApi::RGB2int(255,255,255));
	var_Editor = COM::createFromVariant(exgrid1.Columns().Add("DropDown")).Editor(); com_Editor = var_Editor;
		com_Editor.AddItem(1,"This is just the first item");
		com_Editor.AddItem(2,"This is just the second item");
		com_Editor.AddItem(3,"This is just the third item");
		com_Editor.EditType(2/*DropDownType*/);
		com_Editor.Mask(";;;rich");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("");
		com_Items.AddItem("Just a text");
		com_Items.AddItem("");
	exgrid1.EndUpdate();
}
1017:
The BeforeExpandItem event is fired when clicking the drop down filter button. What we can do to prevent that
// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
void onEvent_BeforeExpandItem(int   _Item,COMVariant /*variant*/   _Cancel)
{
	;
	print( "BeforeExpandItem" );
	print( _Item );
	print( "ColumnFromPoint" );
	print( exgrid1.ColumnFromPoint(-1,-1) );
	print( "ColumnFromPoint return -1, if the user clicks the +/- glitch, else it returns the index of the column where the click occurs." );
	exgrid1.Items().InsertItem(_Item,,"new child");
}

public void init()
{
	COM com_Columns,com_Items;
	anytype var_Columns,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("Items")).DisplayFilterButton(true);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.ItemHasChildren(com_Items.InsertItem(,,"Group 1"),true);
		com_Items.ItemHasChildren(com_Items.InsertItem(,,"Group 2"),true);
	exgrid1.EndUpdate();
}
1016:
How do I change the drop down filter icon/button (black)

public void init()
{
	COM com_Appearance,com_Column;
	anytype var_Appearance,var_Column;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQg";
		var_s = var_s + "mPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThd";
		var_s = var_s + "r4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s));
	exgrid1.Background(0/*exHeaderFilterBarButton*/,0x1000000);
	exgrid1.Background(32/*exCursorHoverColumn*/,-1);
	exgrid1.HeaderAppearance(0/*None2*/);
	exgrid1.BackColorHeader(WinApi::RGB2int(0,0,0));
	exgrid1.ForeColorHeader(WinApi::RGB2int(255,255,255));
	exgrid1.HeaderVisible(1);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Filter")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.AllowSort(false);
		com_Column.AllowDragging(false);
	exgrid1.EndUpdate();
}
1015:
How do I change the drop down filter icon/button (white)

public void init()
{
	COM com_Appearance,com_Column;
	anytype var_Appearance,var_Column;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAEhABX8GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwYgmNYiTLAcgANJ";
		var_s = var_s + "0WBaGIZJ4gOT5fDKMoEDRRYADFCscwxJybQAqGQKKb+VgAVY/cTyBIAEQSKA0TDOQ5TSKWB4JPZQRBEbZMNBtBIUJquKaqShdQJCU5FdY3Xblez9P7AMBwLFEC4NQ8YN";
		var_s = var_s + "YuPhjR4dRTIMhvVAsUArFh8Zg9GZZFjmDIDT4ydBLTQwcyVIKnP5qOa6XbmPoCQDYKxZHYxPzVDa3axuL76dqCAT7XrXNy1TbNRrzQKfcJqfCbdw2YaDZLOOT3fjuI4h";
		var_s = var_s + "hKaRzFAHJ+jYQ4xHuY4gHuGIXGeExqC8Tp6C+PoEm+G5ImycRgh0XwvDGa5rgOeoejyXwnFeQp2mkf5ClgBB9gCWIYAwfYAEKV58mkdwOggNArgOXY2EWLoDkKOA0mgb";
		var_s = var_s + "hOGgZApgaSBIHWSYHSmbApgYThmESZYJkIeIkgeCpfliLIHgpMIcmUYYYmODAlg2SI4mWfRfGOEguDcCRjFYAJihCQhJBSDoRmONgKEcI4kFCEJhhOVYTmYnAlEAQhWB";
		var_s = var_s + "MJYJGYWoWmWSR2F6F5lnkWAQhUAgpEieRWEuSYkjWGpmkmNhuhuZwJkYcocmaaYkjyEhngnUA6lEFAlAEgI=";
		com_Appearance.Add(2,COMVariant::createFromStr(var_s));
		com_Appearance.Add(1,"CP:2 -4 -4 2 4");
	exgrid1.Background(0/*exHeaderFilterBarButton*/,0x1000000);
	exgrid1.Background(32/*exCursorHoverColumn*/,exgrid1.BackColor());
	exgrid1.HeaderAppearance(0/*None2*/);
	exgrid1.HeaderHeight(24);
	exgrid1.BackColorHeader(WinApi::RGB2int(255,255,255));
	exgrid1.HeaderVisible(1);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Filter")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.AllowSort(false);
		com_Column.AllowDragging(false);
	exgrid1.EndUpdate();
}
1014:
How can I draw a solid frame around the the focusing item

public void init()
{
	COM com_Appearance,com_Column,com_Items;
	anytype var_Appearance,var_Column,var_Items;
	int h;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.SingleSel(false);
	exgrid1.DefaultItemHeight(20);
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		com_Appearance.RenderType(-1);
		var_s = "gBFLBCJwBAEHhEJAAEhABOkGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBKUQSDqEYyjGLIXAWCYSAAMIwDKAUEwpFAZBhgeDYMiSNoYDJCM4wHI";
		var_s = var_s + "URRJFCUJSGWQpTgSIgyT5HFIxXKoASbJabZLhWS6EpWOotTbIQQRYCkEyfKKfZyGURZQqOKA1DBZErWTJESRFJqLazgO4LAhyQYrVgAErzVKVCRNOqbJzADApdpGQJTU";
		var_s = var_s + "LDNTQHRFIyhOSnIRrWbMAhid6JUZiVT4dBOIYhSYANAqCwLFqrDJmWrpV5WZjlZ47V6BdAyXJsIrmFJEXaOGhyDDlGybSDZYryfZhUziUw4XjbWwZDqPF6DKTTdSGLRE";
		var_s = var_s + "E8WZVlURZvDaep3C+AY8kAYRgGCCBJECUhjDoHROEYWgoAGTQ1CEEx9lGMY0CQUYSnuZQDBGBYFlOH5+H+igGAKAJgEgFgGgGVgDn4CoCmCSA2A6A5hAgDgQgSYRIE4E";
		var_s = var_s + "oFGGCBiBeBhhkgPgbgcYgICoH4IGGWIOCSBhiGiHgVgoYooFoAoLGIWI+DCCgjCiTgrgII4ImYOoOmOSJ2AYOpWlQDQBICA=";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s));
	exgrid1.ShowFocusRect(true);
	exgrid1.Background(19/*exShowFocusRect*/,0x1000000);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("P1")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
1013:
The frame around the focusing item is not very clear. Can I show it larger or more cleared (sample 2)

public void init()
{
	COM com_Appearance,com_Column,com_Items;
	anytype var_Appearance,var_Column,var_Items;
	int h;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.SingleSel(false);
	exgrid1.DefaultItemHeight(20);
	exgrid1.ShowFocusRect(true);
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		com_Appearance.RenderType(-1);
		var_s = "gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBKUQSDqEYyjGLIXAWCYSAAMIwDKAUEwpFAZBhgeCRUgyJI3RgMUIzVA";
		var_s = var_s + "cRRFEiUJQlIZZCjOAw0SIMU7xZRcNxsACnaZnCR4NiuRYiUhOcqzRIQIQ4CiEahqOgJbDUJYwWZKAyjBY8XTZFCSJCpeJ6egOc5jRxQUp1WAEXx3GSsJKvCZ5cADBY+V";
		var_s = var_s + "LQNS0JBtMSTKSLaiuWoIJqCPaDRheWKQJh1NSnLqEcjyYANDxDCZlWzAYxWTZ2Uz7N7PbB0HY4DyPGKZYrfESVRbQcZNS6nNigPI9XhfGq6VjRe63ZaOaYpWrnOJqTRW";
		var_s = var_s + "jOKYujWdZ2BGO5lkuBAAkmcQkDmDBEAwEQJCgGhMGcQ4pkiSxGAAOYmkQIhvkYNg2gSCgyj+LI4GIMIwF2XQoAYAoAmASAWAaAZgggJgKFiT54DYDoDmECBGBKBJgGgT";
		var_s = var_s + "gWgWYRoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChiigYgsgsYYYBYMIKCMKJOCuDRjGiOgLg6Y5InYPoPmQCAkmsXAQDQBCAg=";
		com_Appearance.Add(2,COMVariant::createFromStr(var_s));
		com_Appearance.Add(3,"CP:2 -3 0 3 0");
	exgrid1.Background(19/*exShowFocusRect*/,0x3010101);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("P1")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
1012:
The frame around the focusing item is not very clear. Can I show it larger or more cleared (sample 1)

public void init()
{
	COM com_Appearance,com_Column,com_Items;
	anytype var_Appearance,var_Column,var_Items;
	int h;
	str var_s,var_s1;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.SingleSel(false);
	exgrid1.ShowFocusRect(true);
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAEhABHoDg6AADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBIZQ7BKNIxjSJwFiCCQwSDKEjyCKcGRHF6MI6gOYpCgOIYjRJNIASVA";
		var_s = var_s + "ceAAGaUZrjSgobjmOYhAJCLqhYIgASXJqLaBlOCaAieSc+QhjQJIJoeCZXU5TFg1BTsOhqEqcRiseaRVDCaIJWzbdYWLDdNQHHKYLjnWorbpSJZ5XjNEySDQkMS9PrEJ";
		var_s = var_s + "7vST8FBCdAABLJUB2BR9RwxRafKpnWwJDpmCaOQLXEB5DK1PyVMTKYrtGy7GrIAJxWxbV4UHh+QABOzIMAvHKJMwvHYcUZne5XVLeF41HbONogPaJZyIAK2cLROq6Xo7";
		var_s = var_s + "GEcJZEcLASB4DwvgWUZlE6AQQhKAYkkYdA6hyDIwHgSoqFwQgmnsYxjGgSIiBOTpSEiAwRgOJI7j4JAHA6U5wm0MpPlOBIjD8TZiGYCICiCGAuA6AxhAgMgSgOYQ4DYB";
		var_s = var_s + "g/g6cw1n+ABOmMMJ9DmCwjnScw4RsVJngkYh4hoKIKmKKI2CmC5ikiQgqgiT5jhyMw8g4QwIn0OIKEiCJhD8DwTGyfA7k0WQOEWEQkGkJhIhKZB5DYSoTiSCQEn4PQOC";
		var_s = var_s + "OXJcCeIJjliaIQk0aRyF4O5llmAhfhgZhJg4ZoYiaAxYn4PZOhOZJaCUZYTiYQw1mcOZUm+HQnHmWh4h6Z4pnYeYfk0eYsmqG4nAgNJ2DqD5DkCWoiGiOgqgyI5omoRo";
		var_s = var_s + "NiSaQKFKEojCaM4ugSFhOjkAJcieKgDkaH4oioGoOiaKRqgqEoqDddwyhuAxPgOMJ8DyDZqk6NYtCsapmjiLprHqdo6i+K5K1oPhOlqPgKD4DpjnII4yiOewuk6MxtAs";
		var_s = var_s + "MpSjObQ7EaT4wk6ewYn0PgPAiCJkjeLgDk6X44i4G4OmaORuguEpqDkLAzkaWg+E8GIUmaPIvEOVpzj2Lxbl6eo+G+S5in4OYPmOaJyjuTwjnYWpBg6DAjAqQZwkwJwN";
		var_s = var_s + "kKcJsEcEJCDBEpaD6Dw8BiapGjGSgfB2RpxmyBwgkicZ8haBw/g+M5TBcPQPlOXJskscp8jsMJMnMLJXDGTZzEyYw2kwMoDlcFw9i2M4/EGUJPg0CxFlENBtCcSJSnQf";
		var_s = var_s + "Q0m+SgPHsaJ7lALZLG6XZVHWDRfFqVY1k0ZxdladYTnifJUGaeAWAeMnSGcGWgBObJ3lWbwdjKW5cHcTZPHaLkN4GxXDlFqFsA4uRbBOGAFAEIzAsDEFOBkfYqR4D6AO";
		var_s = var_s + "BEYo8QuBvAmMceInBDgcD0JwOIqQyJ1DMAwG4IANDnHSMoK4QhOgMBGNEIQvQWAdGenETIswGiddsAAQAgCAgA==";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s));
		var_s1 = "gBFLBCJwBAEHhEJAAEhABeEGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADDFIBQSLAYROGSDJBGODJDjWGIeQLOEhQHI";
		var_s1 = var_s1 + "MRxPE6UYLhWYpBDKPYcUbGc7yBBMVwGf59XzACoKSheQIVSDQkw6Fo6NYhAxHALyNRkBy8f60KjtGpodDUJYvW5JYyjBZ8EznOqbJBkeJ7BgOe5NQjaD72VgdWQJFSWJ";
		var_s1 = var_s1 + "ajWYYJDOJY2ZAAE5TVINEwxJbDaylChIdxaF6WAzZEBhBYoATPNLBMrhWqKDw2XaQWBCOgwHYeR5LU7BdRwbIrRq2eAAXbcVyXfDddZlBK+QA0SK9lRVTKvJZmKgBWw1";
		var_s1 = var_s1 + "COSxmAAGw4kcNx1iKFBiCAfQsG8lJemucg7nsXpUHOOxrm+DI3jOH4XAOBx2nscw0j2HhPG4L5uGEVIECQCBCEUAYkGMHQHFGSBlGaAxkEgQgTGCVBsDYQhCgQJZrHKU";
		var_s1 = var_s1 + "ggGEShkFGNgIlsNpPnMHJHD+TADAIJIJiIWIeCqChikiIgmgiD5zHyXxgiACJKCuC4jHiZgtg6I4IlkCQwkwOIonMPJjEkFhGhGZBpA4KoMBCGJuEiE5lAkGg7hMY4JE";
		var_s1 = var_s1 + "YVoUCUNAOE6FZl0KWQACWOR2GKF5mBmChchkJRZhoXYaCKKYqGuDglEmNhuhWZpIiYc4dCcCRqGmHZlgm2YxAwSQKESHwkFkKgpiAIAIH4PIimOOg2DiChoiQJRRD+TZ";
		var_s1 = var_s1 + "DHCfwyAyCgyg+JpiioYJ/DgDgIlECQ6lwRAEICA=";
		com_Appearance.Add(2,COMVariant::createFromStr(var_s1));
		com_Appearance.Add(3,"CP:2 -2 0 2 0");
	exgrid1.SelBackColor(0x1000000);
	exgrid1.SelForeColor(WinApi::RGB2int(0,0,0));
	exgrid1.Background(19/*exShowFocusRect*/,0x3ff0000);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("P1")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
	exgrid1.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

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(true);
	exgrid1.DrawGridLines(2/*exVLines*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Left")); com_Column = var_Column;
			com_Column.AllowSizing(false);
			com_Column.Width(96);
			com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column.FormatColumn("0 pos `A-Z`");
		var_Column1 = COM::createFromVariant(com_Columns.Add("Center")); com_Column1 = var_Column1;
			com_Column1.HeaderAlignment(1/*CenterAlignment*/);
			com_Column1.Alignment(com_Column1.HeaderAlignment());
			com_Column1.AllowSizing(false);
			com_Column1.Width(96);
			com_Column1.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column1.FormatColumn("0 pos `A-Z`");
		var_Column2 = COM::createFromVariant(com_Columns.Add("Right")); com_Column2 = var_Column2;
			com_Column2.HeaderAlignment(2/*RightAlignment*/);
			com_Column2.Alignment(com_Column2.HeaderAlignment());
			com_Column2.AllowSizing(false);
			com_Column2.Width(96);
			com_Column2.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column2.FormatColumn("0 pos `A-Z`");
			com_Column2.Def(34/*exCellDrawPartsOrder*/,"caption,check,icon,icons,picture");
		com_Columns.Add("");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellState(com_Items.AddItem("Item 1"),COMVariant::createFromInt(3),1);
		com_Items.CellState(com_Items.AddItem("Item 2"),COMVariant::createFromInt(2),1);
		com_Items.CellState(com_Items.AddItem("Item 3"),COMVariant::createFromInt(1),1);
	exgrid1.EndUpdate();
}
1010:
Can I display the column's multiple-lines caption vertically oriented (method 2)

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderHeight(48);
	exgrid1.ColumnAutoResize(true);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("And others ...");
		var_Column = COM::createFromVariant(com_Columns.Add("")); com_Column = var_Column;
			com_Column.HTMLCaption("First Column");
			com_Column.HeaderVertical(true);
			com_Column.Width(36);
			com_Column.AllowSizing(false);
			com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(8));
			com_Column.Position(0);
		var_Column1 = COM::createFromVariant(com_Columns.Add("")); com_Column1 = var_Column1;
			com_Column1.HTMLCaption("<c><b>Second Column");
			com_Column1.HeaderVertical(true);
			com_Column1.Width(36);
			com_Column1.AllowSizing(false);
			com_Column1.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column1.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(8));
			com_Column1.Position(1);
		var_Column2 = COM::createFromVariant(com_Columns.Add("")); com_Column2 = var_Column2;
			com_Column2.HTMLCaption("<r>Third Column");
			com_Column2.HeaderVertical(true);
			com_Column2.Width(36);
			com_Column2.AllowSizing(false);
			com_Column2.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column2.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(8));
			com_Column2.Position(2);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellState(com_Items.AddItem("Item 1"),COMVariant::createFromInt(3),1);
		com_Items.CellState(com_Items.AddItem("Item 2"),COMVariant::createFromInt(2),1);
		com_Items.CellState(com_Items.AddItem("Item 3"),COMVariant::createFromInt(1),1);
	exgrid1.EndUpdate();
}
1009:
Can I display the column's multiple-lines caption vertically oriented (method 1)

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderHeight(48);
	exgrid1.HeaderSingleLine(false);
	exgrid1.ColumnAutoResize(true);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("And others ...");
		var_Column = COM::createFromVariant(com_Columns.Add("First Column")); com_Column = var_Column;
			com_Column.HeaderVertical(true);
			com_Column.Width(36);
			com_Column.AllowSizing(false);
			com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(8));
			com_Column.Position(0);
		var_Column1 = COM::createFromVariant(com_Columns.Add("Second Column")); com_Column1 = var_Column1;
			com_Column1.HeaderBold(true);
			com_Column1.HeaderVertical(true);
			com_Column1.Width(36);
			com_Column1.AllowSizing(false);
			com_Column1.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column1.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(8));
			com_Column1.Position(1);
		var_Column2 = COM::createFromVariant(com_Columns.Add("Third Column")); com_Column2 = var_Column2;
			com_Column2.HeaderVertical(true);
			com_Column2.Width(36);
			com_Column2.AllowSizing(false);
			com_Column2.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column2.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(8));
			com_Column2.Position(2);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellState(com_Items.AddItem("Item 1"),COMVariant::createFromInt(3),1);
		com_Items.CellState(com_Items.AddItem("Item 2"),COMVariant::createFromInt(2),1);
		com_Items.CellState(com_Items.AddItem("Item 3"),COMVariant::createFromInt(1),1);
	exgrid1.EndUpdate();
}
1008:
Can I display the column's caption vertically oriented (method 2)

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderHeight(48);
	exgrid1.ColumnAutoResize(true);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("And others ...");
		var_Column = COM::createFromVariant(com_Columns.Add("")); com_Column = var_Column;
			com_Column.HTMLCaption("First");
			com_Column.HeaderVertical(true);
			com_Column.Width(20);
			com_Column.AllowSizing(false);
			com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column.Position(0);
		var_Column1 = COM::createFromVariant(com_Columns.Add("")); com_Column1 = var_Column1;
			com_Column1.HTMLCaption("<c><b>Second");
			com_Column1.HeaderVertical(true);
			com_Column1.Width(20);
			com_Column1.AllowSizing(false);
			com_Column1.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column1.Position(1);
		var_Column2 = COM::createFromVariant(com_Columns.Add("")); com_Column2 = var_Column2;
			com_Column2.HTMLCaption("<r>Third");
			com_Column2.HeaderVertical(true);
			com_Column2.Width(20);
			com_Column2.AllowSizing(false);
			com_Column2.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column2.Position(2);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellState(com_Items.AddItem("Item 1"),COMVariant::createFromInt(3),1);
		com_Items.CellState(com_Items.AddItem("Item 2"),COMVariant::createFromInt(2),1);
		com_Items.CellState(com_Items.AddItem("Item 3"),COMVariant::createFromInt(1),1);
	exgrid1.EndUpdate();
}
1007:
Can I display the column's caption vertically oriented (method 1)

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderHeight(48);
	exgrid1.ColumnAutoResize(true);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("And others ...");
		var_Column = COM::createFromVariant(com_Columns.Add("First")); com_Column = var_Column;
			com_Column.HeaderVertical(true);
			com_Column.Width(20);
			com_Column.AllowSizing(false);
			com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column.Position(0);
		var_Column1 = COM::createFromVariant(com_Columns.Add("Second")); com_Column1 = var_Column1;
			com_Column1.HeaderBold(true);
			com_Column1.HeaderVertical(true);
			com_Column1.Width(20);
			com_Column1.AllowSizing(false);
			com_Column1.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column1.Position(1);
		var_Column2 = COM::createFromVariant(com_Columns.Add("Third")); com_Column2 = var_Column2;
			com_Column2.HeaderVertical(true);
			com_Column2.Width(20);
			com_Column2.AllowSizing(false);
			com_Column2.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column2.Position(2);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellState(com_Items.AddItem("Item 1"),COMVariant::createFromInt(3),1);
		com_Items.CellState(com_Items.AddItem("Item 2"),COMVariant::createFromInt(2),1);
		com_Items.CellState(com_Items.AddItem("Item 3"),COMVariant::createFromInt(1),1);
	exgrid1.EndUpdate();
}
1006:
How do I automatically bold items being checked

// CellStateChanged event - Fired after cell's state has been changed.
void onEvent_CellStateChanged(int   _Item,int   _ColIndex)
{
	;
}

public void init()
{
	COM com_ConditionalFormat,com_Items;
	anytype var_ConditionalFormat,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.SelBackMode(1/*exTransparent*/);
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("%CS0","check"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.Bold(true);
	COM::createFromVariant(exgrid1.Columns().Add("Items")).Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
	COM::createFromVariant(exgrid1.Columns().Add(exgrid1.ConditionalFormats().Item("check").Expression())).FormatColumn(exgrid1.ConditionalFormats().Item("check").Expression());
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.CellState(com_Items.AddItem("Item 2"),COMVariant::createFromInt(0),1);
		com_Items.AddItem("Item 3");
	exgrid1.EndUpdate();
}
1005:
How can I use the CellState with ConditionalFormat/ComputedField/FormatColumn

// CellStateChanged event - Fired after cell's state has been changed.
void onEvent_CellStateChanged(int   _Item,int   _ColIndex)
{
	;
}

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(4/*exGroupLinesInsideLeaf*/);
	exgrid1.SelBackMode(1/*exTransparent*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Format")); com_Column1 = var_Column1;
		com_Column1.FormatColumn("%CS0");
		com_Column1.Caption(com_Column1.FormatColumn());
		com_Column1.Def(5/*exCellForeColor*/,COMVariant::createFromInt(8421504));
		com_Column1.Def(8/*exHeaderForeColor*/,com_Column1.Def(5/*exCellForeColor*/));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Item 1");
		com_Items.CellState(com_Items.InsertItem(h,,"Item 2"),COMVariant::createFromInt(0),1);
		com_Items.CellState(com_Items.InsertItem(h,,"Item 3"),COMVariant::createFromInt(0),1);
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
1004:
How can I use the CellData with ConditionalFormat/ComputedField/FormatColumn

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.Columns().Add("Items");
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Format")); com_Column = var_Column;
		com_Column.FormatColumn("%CD0");
		com_Column.Caption(com_Column.FormatColumn());
		com_Column.Def(5/*exCellForeColor*/,COMVariant::createFromInt(8421504));
		com_Column.Def(8/*exHeaderForeColor*/,com_Column.Def(5/*exCellForeColor*/));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellData(com_Items.AddItem("Item 1"),COMVariant::createFromInt(0),COMVariant::createFromInt(1234));
		com_Items.CellData(com_Items.AddItem("Item 2"),COMVariant::createFromInt(0),"this is just an user data");
		com_Items.CellData(com_Items.AddItem("Item 3"),COMVariant::createFromInt(0),COMVariant::createFromDate(str2Date("1/1/2001",213)));
	exgrid1.EndUpdate();
}
1003:
How can I use the CellValue/CellCaption with ConditionalFormat/ComputedField/FormatColumn

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Editor,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Editor,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Items")); com_Column = var_Column;
		var_Editor = com_Column.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(3/*DropDownListType*/);
			com_Editor.AddItem(1,"Item 1");
			com_Editor.AddItem(2,"Item 2");
			com_Editor.AddItem(3,"Item 3");
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Format")); com_Column1 = var_Column1;
		com_Column1.FormatColumn("%0");
		com_Column1.Caption(com_Column1.FormatColumn());
		com_Column1.Def(5/*exCellForeColor*/,COMVariant::createFromInt(8421504));
		com_Column1.Def(8/*exHeaderForeColor*/,com_Column1.Def(5/*exCellForeColor*/));
		com_Column1.AllowSizing(false);
	var_Column2 = COM::createFromVariant(exgrid1.Columns().Add("Format")); com_Column2 = var_Column2;
		com_Column2.FormatColumn("%C0");
		com_Column2.Caption(com_Column2.FormatColumn());
		com_Column2.Def(5/*exCellForeColor*/,COMVariant::createFromInt(8421504));
		com_Column2.Def(8/*exHeaderForeColor*/,com_Column2.Def(5/*exCellForeColor*/));
		com_Column2.AllowSizing(false);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromInt(1));
		com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(0)),COMVariant::createFromInt(0),COMVariant::createFromInt(2));
		com_Items.AddItem(COMVariant::createFromInt(2));
	exgrid1.EndUpdate();
}
1002:
Can I display the radio-button with a solid color

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.RadioImage(0,32699122);
	exgrid1.RadioImage(1,16777216);
	COM::createFromVariant(exgrid1.Columns().Add("Check")).Def(1/*exCellHasRadioButton*/,COMVariant::createFromBoolean(true));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Radio 1");
		com_Items.CellState(com_Items.AddItem("Radio 2"),COMVariant::createFromInt(0),1);
		com_Items.AddItem("Radio 1");
	exgrid1.EndUpdate();
}
1001:
Can I display the check-box with a solid color

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.CheckImage(0/*Unchecked*/,32699122);
	exgrid1.CheckImage(1/*Checked*/,16777216);
	COM::createFromVariant(exgrid1.Columns().Add("Check")).Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Check 1");
		com_Items.CellState(com_Items.AddItem("Check 2"),COMVariant::createFromInt(0),1);
		com_Items.AddItem("Check 3");
	exgrid1.EndUpdate();
}