1218
How can I save the changes, such as column's width, order

// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
void onEvent_Click()
{
	;
	exgrid1.Layout("Select=\"0\";SingleSort=\"C0:2\";Columns=1");
}

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.Columns().Add("Column");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.AddItem("Item 2");
		com_Items.AddItem("Item 3");
	exgrid1.EndUpdate();
}
1217
How can I add totals to groups without having to go through the AddGroupItem grid function

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Columns,com_ConditionalFormat,com_ConditionalFormat1,com_ConditionalFormat2,com_ConditionalFormats,com_Editor,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_ConditionalFormat,var_ConditionalFormat1,var_ConditionalFormat2,var_ConditionalFormats,var_Editor,var_Items;
	int g1,g2,h,r;
	;

	super();

	exgrid1.FreezeEvents(true);
	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.HeaderHeight(24);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_ConditionalFormats = exgrid1.ConditionalFormats(); com_ConditionalFormats = var_ConditionalFormats;
		var_ConditionalFormat = com_ConditionalFormats.Add("%CT1"); com_ConditionalFormat = var_ConditionalFormat;
			com_ConditionalFormat.ForeColor(WinApi::RGB2int(128,128,128));
			com_ConditionalFormat.ApplyTo(1);
		var_ConditionalFormat1 = com_ConditionalFormats.Add("%CT2"); com_ConditionalFormat1 = var_ConditionalFormat1;
			com_ConditionalFormat1.ForeColor(WinApi::RGB2int(128,128,128));
			com_ConditionalFormat1.ApplyTo(2);
		var_ConditionalFormat2 = com_ConditionalFormats.Add("%CT3"); com_ConditionalFormat2 = var_ConditionalFormat2;
			com_ConditionalFormat2.ForeColor(WinApi::RGB2int(128,128,128));
			com_ConditionalFormat2.ApplyTo(3);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Description");
		var_Column = COM::createFromVariant(com_Columns.Add("Qty")); com_Column = var_Column;
			var_Editor = COM::createFromObject(com_Column.Editor()); com_Editor = var_Editor;
			com_Editor.EditType(4/*SpinType*/);
			com_Column.Def(20/*exTotalColumn*/,"sum(current,rec,%1)");
		var_Column1 = COM::createFromVariant(com_Columns.Add("Price")); com_Column1 = var_Column1;
			com_Column1.Def(20/*exTotalColumn*/,"avg(current,rec,%2)");
			var_Editor = COM::createFromObject(com_Column1.Editor()); com_Editor = var_Editor;
			com_Editor.EditType(4/*SpinType*/);
		var_Column2 = COM::createFromVariant(com_Columns.Add("Amount")); com_Column2 = var_Column2;
			com_Column2.ComputedField("%1 * %2");
			com_Column2.Def(20/*exTotalColumn*/,"sum(current,rec,%3)");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		r = com_Items.AddItem("Root");
		g1 = com_Items.InsertItem(r,,"Group 1");
		h = com_Items.InsertItem(g1,,"Item 1");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(1));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(10));
		h = com_Items.InsertItem(g1,,"Item 2");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(2));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(11));
		g2 = com_Items.InsertItem(r,,"Group 2");
		h = com_Items.InsertItem(g2,,"Item 1");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(3));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(12));
		h = com_Items.InsertItem(g2,,"Item 2");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(4));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(13));
		com_Items.ExpandItem(0,true);
	exgrid1.EndUpdate();
	exgrid1.FreezeEvents(false);
}
1216
How can I configure the filters in the text columns to search by content

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.FilterBarPromptVisible(1/*exFilterBarPromptVisible*/);
	exgrid1.HeaderAppearance(0/*None2*/);
	exgrid1.FilterBarPromptType(1/*exFilterPromptContainsAll*/);
	exgrid1.Columns().Add("Names");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Mantel");
		com_Items.AddItem("Mechanik");
		com_Items.AddItem("Motor");
		com_Items.AddItem("Murks");
		com_Items.AddItem("Märchen");
		com_Items.AddItem("Möhren");
		com_Items.AddItem("Mühle");
		com_Items.AddItem("Sérigraphie");
	exgrid1.FilterBarPromptPattern("a");
	exgrid1.EndUpdate();
}
1215
How can I display the control's captions in Spanish

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.FilterBarPromptVisible(1/*exFilterBarPromptVisible*/);
	exgrid1.HeaderAppearance(0/*None2*/);
	exgrid1.Description(0/*exFilterBarAll*/,"(todo) ");
	exgrid1.Description(3/*exFilterBarFilterForCaption*/,"filtrar por...");
	exgrid1.FilterBarPrompt("<i><fgcolor=808080>iniciar filtro...</fgcolor></i>");
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Names")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterType(3/*exPattern*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Mantel");
		com_Items.AddItem("Mechanik");
		com_Items.AddItem("Motor");
		com_Items.AddItem("Murks");
		com_Items.AddItem("Märchen");
		com_Items.AddItem("Möhren");
		com_Items.AddItem("Mühle");
		com_Items.AddItem("Sérigraphie");
	exgrid1.EndUpdate();
}
1214
How can I zoom in the control

public void init()
{
	COM com_Column,com_Items;
	COMVariant s2;
	anytype var_Column,var_Items;
	str s1;
	;

	super();

	exgrid1.BeginUpdate();
	s1 = 16;
	s2 = exgrid1.FormatABC("2 * value",s1);
	exgrid1.ImageSize(s2);
	exgrid1.DefaultItemHeight(s2);
	exgrid1.HeaderHeight(s2);
	exgrid1.SortBarHeight(s2);
	exgrid1.Indent(s2);
	exgrid1.Font().Size(s1);
	exgrid1.FilterBarFont().Size(s1);
	exgrid1.ToolTipFont().Size(s1);
	exgrid1.FilterBarPromptVisible(1/*exFilterBarPromptVisible*/);
	exgrid1.HeaderAppearance(0/*None2*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Names")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterType(3/*exPattern*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Mantel");
		com_Items.AddItem("Mechanik");
		com_Items.AddItem("Motor");
		com_Items.AddItem("Murks");
		com_Items.AddItem("Märchen");
		com_Items.AddItem("Möhren");
		com_Items.AddItem("Mühle");
		com_Items.AddItem("Sérigraphie");
	exgrid1.EndUpdate();
}
1213
Can I set a filter that automatically adds a * before and after the word, so the user can just search for 'cat' and it becomes '*cat*' automatically

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.HeaderHeight(24);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(true);
		com_Column.Def(21/*exFilterPatternTemplate*/,"*<%filter%>*");
		com_Column.FilterType(3/*exPattern*/);
		com_Column.Filter("1");
	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.ApplyFilter();
	exgrid1.EndUpdate();
}
1212
The fine dotted lines in the control appear much thicker than the standard ones we've been using. How can we fix this

public void init()
{
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.HeaderHeight(24);
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	exgrid1.GridLineStyle(512/*exGridLinesGeometric*/);
	exgrid1.ColumnAutoResize(false);
	exgrid1.Columns().Add("Column 1");
	exgrid1.Columns().Add("Column 2");
	exgrid1.Columns().Add("Column 3");
	exgrid1.Columns().Add("Column 4");
	exgrid1.EndUpdate();
}
1211
Load data as a tree using a parent-id relationship

public void init()
{
	COM com_Column,com_rs;
	anytype rs,var_Column;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.HeaderHeight(24);
	exgrid1.DrawGridLines(2/*exVLines*/);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	// 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("Select * FROM Employees WHERE 1=0","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.mdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column = var_Column;
	com_Column.Width(128);
	rs = COM::createFromObject(new ADODB.Recordset());
		rs.Open("Employees","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.mdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.PutItems(rs.GetRows(),";0;17");
	exgrid1.Items().ExpandItem(0,true);
	exgrid1.EndUpdate();
}
1210
Is there a way to change the contents of the drop down editor based on a value in another column

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exgrid1.Items().CellEditorVisible(_Item,COMVariant::createFromInt(0),1/*exEditorVisible*/);
	exgrid1.Items().CellEditorVisible(_Item,COMVariant::createFromInt(1),1/*exEditorVisible*/);
}

// EditOpen event - Occurs when the edit operation starts.
void onEvent_EditOpen()
{
	COM com_Column,com_Editor,com_Items;
	COMVariant v;
	anytype var_Column,var_Editor,var_Items;
	str c;
	;
	var_Items = exgrid1.Items(); com_Items = var_Items;
		v = com_Items.CellValue(com_Items.FocusItem(),COMVariant::createFromInt(0));
		c = com_Items.CellCaption(com_Items.FocusItem(),COMVariant::createFromInt(0));
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
	var_Editor = com_Column.Editor(); com_Editor = var_Editor;
		com_Editor.ClearItems();
		com_Editor.AddItem(v,c);
}

public void init()
{
	COM com_Column,com_Editor,com_Editor1,com_Items;
	COMVariant v;
	anytype var_Column,var_Editor,var_Editor1,var_Items;
	int h;
	str c,var_s;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.HeaderHeight(24);
	exgrid1.GridLineStyle(512/*exGridLinesGeometric*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("DropDownList")); com_Column = var_Column;
		var_Editor = com_Column.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(3/*DropDownListType*/);
			com_Editor.AddItem(1,"First");
			com_Editor.AddItem(2,"Second");
			com_Editor.AddItem(3,"Third");
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	var_Editor1 = COM::createFromObject(COM::createFromVariant(exgrid1.Columns().Add("DropDownList-Related"))).Editor(); com_Editor1 = var_Editor1;
	com_Editor1.EditType(3/*DropDownListType*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(1)),COMVariant::createFromInt(1),COMVariant::createFromInt(-1));
		com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(2)),COMVariant::createFromInt(1),COMVariant::createFromInt(-1));
		com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(3)),COMVariant::createFromInt(1),COMVariant::createFromInt(-1));
		com_Items.LockedItemCount(2/*exBottom*/,1);
		h = com_Items.LockedItem(2/*exBottom*/,0);
		com_Items.ItemDivider(h,0);
		com_Items.ItemDividerLineAlignment(h,2/*DividerTop*/);
		com_Items.CellEditorVisible(h,COMVariant::createFromInt(0),false);
		com_Items.CellSingleLine(h,COMVariant::createFromInt(0),false);
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
		var_s = "The drop down editor in the second column is filled during the <b>EditOpen event</b>, and the values are based on the selection ";
		var_s = var_s + "on the first column.";
		com_Items.CellValue(h,COMVariant::createFromInt(0),COMVariant::createFromStr(var_s));
	exgrid1.EndUpdate();
}
1209
Highlight the editable fields

// 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_Columns,com_ConditionalFormat,com_ConditionalFormat1,com_ConditionalFormat2,com_ConditionalFormats,com_Editor,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_ConditionalFormat,var_ConditionalFormat1,var_ConditionalFormat2,var_ConditionalFormats,var_Editor,var_Items;
	int g1,g2,h,r;
	;

	super();

	exgrid1.FreezeEvents(true);
	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.HeaderHeight(24);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_ConditionalFormats = exgrid1.ConditionalFormats(); com_ConditionalFormats = var_ConditionalFormats;
		var_ConditionalFormat = com_ConditionalFormats.Add("%CE1"); com_ConditionalFormat = var_ConditionalFormat;
			com_ConditionalFormat.Bold(true);
			com_ConditionalFormat.BackColor(WinApi::RGB2int(245,245,245));
			com_ConditionalFormat.ApplyTo(1);
		var_ConditionalFormat1 = com_ConditionalFormats.Add("%CE2"); com_ConditionalFormat1 = var_ConditionalFormat1;
			com_ConditionalFormat1.Bold(true);
			com_ConditionalFormat1.BackColor(WinApi::RGB2int(245,245,245));
			com_ConditionalFormat1.ApplyTo(2);
		var_ConditionalFormat2 = com_ConditionalFormats.Add("%CE3"); com_ConditionalFormat2 = var_ConditionalFormat2;
			com_ConditionalFormat2.Bold(true);
			com_ConditionalFormat2.BackColor(WinApi::RGB2int(245,245,245));
			com_ConditionalFormat2.ApplyTo(3);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Description");
		var_Column = COM::createFromVariant(com_Columns.Add("Qty")); com_Column = var_Column;
			var_Editor = COM::createFromObject(com_Column.Editor()); com_Editor = var_Editor;
			com_Editor.EditType(4/*SpinType*/);
			com_Column.Def(20/*exTotalColumn*/,"sum(current,rec,%1)");
		var_Column1 = COM::createFromVariant(com_Columns.Add("Price")); com_Column1 = var_Column1;
			com_Column1.Def(20/*exTotalColumn*/,"avg(current,rec,%2)");
			var_Editor = COM::createFromObject(com_Column1.Editor()); com_Editor = var_Editor;
			com_Editor.EditType(4/*SpinType*/);
		var_Column2 = COM::createFromVariant(com_Columns.Add("Amount")); com_Column2 = var_Column2;
			com_Column2.ComputedField("%1 * %2");
			com_Column2.Def(20/*exTotalColumn*/,"sum(current,rec,%3)");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		r = com_Items.AddItem("Root");
		g1 = com_Items.InsertItem(r,,"Group 1");
		h = com_Items.InsertItem(g1,,"Item 1");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(1));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(10));
		h = com_Items.InsertItem(g1,,"Item 2");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(2));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(11));
		g2 = com_Items.InsertItem(r,,"Group 2");
		h = com_Items.InsertItem(g2,,"Item 1");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(3));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(12));
		h = com_Items.InsertItem(g2,,"Item 2");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(4));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(13));
		com_Items.ExpandItem(0,true);
	exgrid1.EndUpdate();
	exgrid1.FreezeEvents(false);
}
1208
Highlight the total fields

// 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_Columns,com_ConditionalFormat,com_ConditionalFormat1,com_ConditionalFormat2,com_ConditionalFormats,com_Editor,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_ConditionalFormat,var_ConditionalFormat1,var_ConditionalFormat2,var_ConditionalFormats,var_Editor,var_Items;
	int g1,g2,h,r;
	;

	super();

	exgrid1.FreezeEvents(true);
	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.HeaderHeight(24);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_ConditionalFormats = exgrid1.ConditionalFormats(); com_ConditionalFormats = var_ConditionalFormats;
		var_ConditionalFormat = com_ConditionalFormats.Add("%CT1"); com_ConditionalFormat = var_ConditionalFormat;
			com_ConditionalFormat.ForeColor(WinApi::RGB2int(128,128,128));
			com_ConditionalFormat.ApplyTo(1);
		var_ConditionalFormat1 = com_ConditionalFormats.Add("%CT2"); com_ConditionalFormat1 = var_ConditionalFormat1;
			com_ConditionalFormat1.ForeColor(WinApi::RGB2int(128,128,128));
			com_ConditionalFormat1.ApplyTo(2);
		var_ConditionalFormat2 = com_ConditionalFormats.Add("%CT3"); com_ConditionalFormat2 = var_ConditionalFormat2;
			com_ConditionalFormat2.ForeColor(WinApi::RGB2int(128,128,128));
			com_ConditionalFormat2.ApplyTo(3);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Description");
		var_Column = COM::createFromVariant(com_Columns.Add("Qty")); com_Column = var_Column;
			var_Editor = COM::createFromObject(com_Column.Editor()); com_Editor = var_Editor;
			com_Editor.EditType(4/*SpinType*/);
			com_Column.Def(20/*exTotalColumn*/,"sum(current,rec,%1)");
		var_Column1 = COM::createFromVariant(com_Columns.Add("Price")); com_Column1 = var_Column1;
			com_Column1.Def(20/*exTotalColumn*/,"avg(current,rec,%2)");
			var_Editor = COM::createFromObject(com_Column1.Editor()); com_Editor = var_Editor;
			com_Editor.EditType(4/*SpinType*/);
		var_Column2 = COM::createFromVariant(com_Columns.Add("Amount")); com_Column2 = var_Column2;
			com_Column2.ComputedField("%1 * %2");
			com_Column2.Def(20/*exTotalColumn*/,"sum(current,rec,%3)");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		r = com_Items.AddItem("Root");
		g1 = com_Items.InsertItem(r,,"Group 1");
		h = com_Items.InsertItem(g1,,"Item 1");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(1));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(10));
		h = com_Items.InsertItem(g1,,"Item 2");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(2));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(11));
		g2 = com_Items.InsertItem(r,,"Group 2");
		h = com_Items.InsertItem(g2,,"Item 1");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(3));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(12));
		h = com_Items.InsertItem(g2,,"Item 2");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(4));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(13));
		com_Items.ExpandItem(0,true);
	exgrid1.EndUpdate();
	exgrid1.FreezeEvents(false);
}
1207
Highlight the leaf items

public void init()
{
	COM com_Columns,com_ConditionalFormat,com_Items;
	anytype var_Columns,var_ConditionalFormat,var_Items;
	int h,hR;
	;

	super();

	exgrid1.BeginUpdate();
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("%CC0=0"); com_ConditionalFormat = var_ConditionalFormat;
	com_ConditionalFormat.ForeColor(WinApi::RGB2int(128,128,128));
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.HeaderHeight(24);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("Item")).Width(16);
		com_Columns.Add("Desc");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		hR = com_Items.AddItem("Root");
		com_Items.CellValue(hR,COMVariant::createFromInt(1),"The root directory /");
		com_Items.ExpandItem(hR,true);
		h = com_Items.InsertItem(hR,,"Home");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"The home directory with user directories Alice and Bob");
		com_Items.InsertItem(h,,"Alice");
		com_Items.InsertItem(h,,"Bob");
		com_Items.ExpandItem(h,true);
		h = com_Items.InsertItem(hR,,"Etc");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"The etc directory with one configuration file");
		h = com_Items.InsertItem(h,,"nginx.conf");
		com_Items.CellValue(com_Items.InsertItem(hR,,"Var"),COMVariant::createFromInt(1),"The var directory");
	exgrid1.EndUpdate();
}
1206
Highlight the parent items

public void init()
{
	COM com_Columns,com_ConditionalFormat,com_Items;
	anytype var_Columns,var_ConditionalFormat,var_Items;
	int h,hR;
	;

	super();

	exgrid1.BeginUpdate();
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("%CC0"); com_ConditionalFormat = var_ConditionalFormat;
	com_ConditionalFormat.ForeColor(WinApi::RGB2int(255,0,0));
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.HeaderHeight(24);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("Item")).Width(16);
		com_Columns.Add("Desc");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		hR = com_Items.AddItem("Root");
		com_Items.CellValue(hR,COMVariant::createFromInt(1),"The root directory /");
		com_Items.ExpandItem(hR,true);
		h = com_Items.InsertItem(hR,,"Home");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"The home directory with user directories Alice and Bob");
		com_Items.InsertItem(h,,"Alice");
		com_Items.InsertItem(h,,"Bob");
		com_Items.ExpandItem(h,true);
		h = com_Items.InsertItem(hR,,"Etc");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"The etc directory with one configuration file");
		h = com_Items.InsertItem(h,,"nginx.conf");
		com_Items.CellValue(com_Items.InsertItem(hR,,"Var"),COMVariant::createFromInt(1),"The var directory");
	exgrid1.EndUpdate();
}
1205
Highlight the item being expanded or collapsed

public void init()
{
	COM com_Columns,com_ConditionalFormat,com_Items;
	anytype var_Columns,var_ConditionalFormat,var_Items;
	int h,hR;
	;

	super();

	exgrid1.BeginUpdate();
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("%CX0"); com_ConditionalFormat = var_ConditionalFormat;
	com_ConditionalFormat.Bold(true);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.HeaderHeight(24);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("Item")).Width(16);
		com_Columns.Add("Desc");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		hR = com_Items.AddItem("Root");
		com_Items.CellValue(hR,COMVariant::createFromInt(1),"The root directory /");
		com_Items.ExpandItem(hR,true);
		h = com_Items.InsertItem(hR,,"Home");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"The home directory with user directories Alice and Bob");
		com_Items.InsertItem(h,,"Alice");
		com_Items.InsertItem(h,,"Bob");
		com_Items.ExpandItem(h,true);
		h = com_Items.InsertItem(hR,,"Etc");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"The etc directory with one configuration file");
		h = com_Items.InsertItem(h,,"nginx.conf");
		com_Items.CellValue(com_Items.InsertItem(hR,,"Var"),COMVariant::createFromInt(1),"The var directory");
	exgrid1.EndUpdate();
}
1204
I am using exTotalColumn. Is there an option to exclude specific cells to display the total

// 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_Columns,com_Editor,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_Editor,var_Items;
	int g1,g2,h,r;
	;

	super();

	exgrid1.FreezeEvents(true);
	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.HeaderHeight(24);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Description");
		var_Column = COM::createFromVariant(com_Columns.Add("Qty")); com_Column = var_Column;
			var_Editor = COM::createFromObject(com_Column.Editor()); com_Editor = var_Editor;
			com_Editor.EditType(4/*SpinType*/);
			com_Column.Def(20/*exTotalColumn*/,"sum(current,rec,%1)");
		var_Column1 = COM::createFromVariant(com_Columns.Add("Price")); com_Column1 = var_Column1;
			com_Column1.Def(20/*exTotalColumn*/,"avg(current,rec,%2)");
			var_Editor = COM::createFromObject(com_Column1.Editor()); com_Editor = var_Editor;
			com_Editor.EditType(4/*SpinType*/);
		var_Column2 = COM::createFromVariant(com_Columns.Add("Amount")); com_Column2 = var_Column2;
			com_Column2.ComputedField("%1 * %2");
			com_Column2.Def(20/*exTotalColumn*/,"sum(current,rec,%3)");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		r = com_Items.AddItem("Root");
		g1 = com_Items.InsertItem(r,,"Group 1");
		com_Items.FormatCell(g1,COMVariant::createFromInt(2),"`<average missing>`");
		com_Items.CellEditorVisible(g1,COMVariant::createFromInt(2),false);
		com_Items.CellBold(g1,COMVariant::createFromInt(2),true);
		com_Items.CellForeColor(g1,COMVariant::createFromInt(2),WinApi::RGB2int(255,0,0));
		h = com_Items.InsertItem(g1,,"Item 1");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(1));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(10));
		h = com_Items.InsertItem(g1,,"Item 2");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(2));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(11));
		g2 = com_Items.InsertItem(r,,"Group 2");
		h = com_Items.InsertItem(g2,,"Item 1");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(3));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(12));
		h = com_Items.InsertItem(g2,,"Item 2");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(4));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(13));
		com_Items.ExpandItem(0,true);
	exgrid1.EndUpdate();
	exgrid1.FreezeEvents(false);
}
1203
How can I add a total column

// 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_Columns,com_Editor,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_Editor,var_Items;
	int g1,g2,h,r;
	;

	super();

	exgrid1.FreezeEvents(true);
	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.HeaderHeight(24);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Description");
		var_Column = COM::createFromVariant(com_Columns.Add("Qty")); com_Column = var_Column;
			var_Editor = COM::createFromObject(com_Column.Editor()); com_Editor = var_Editor;
			com_Editor.EditType(4/*SpinType*/);
			com_Column.Def(20/*exTotalColumn*/,"sum(current,rec,%1)");
		var_Column1 = COM::createFromVariant(com_Columns.Add("Price")); com_Column1 = var_Column1;
			com_Column1.Def(20/*exTotalColumn*/,"avg(current,rec,%2)");
			var_Editor = COM::createFromObject(com_Column1.Editor()); com_Editor = var_Editor;
			com_Editor.EditType(4/*SpinType*/);
		var_Column2 = COM::createFromVariant(com_Columns.Add("Amount")); com_Column2 = var_Column2;
			com_Column2.ComputedField("%1 * %2");
			com_Column2.Def(20/*exTotalColumn*/,"sum(current,rec,%3)");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		r = com_Items.AddItem("Root");
		g1 = com_Items.InsertItem(r,,"Group 1");
		h = com_Items.InsertItem(g1,,"Item 1");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(1));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(10));
		h = com_Items.InsertItem(g1,,"Item 2");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(2));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(11));
		g2 = com_Items.InsertItem(r,,"Group 2");
		h = com_Items.InsertItem(g2,,"Item 1");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(3));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(12));
		h = com_Items.InsertItem(g2,,"Item 2");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(4));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(13));
		com_Items.ExpandItem(0,true);
	exgrid1.EndUpdate();
	exgrid1.FreezeEvents(false);
}
1202
Is it possible to disable sizing(size) the column
public void init()
{
	COM com_Column;
	anytype var_Column;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.DrawGridLines(2/*exVLines*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("32px")); com_Column = var_Column;
		com_Column.Width(32);
		com_Column.AllowSizing(false);
	exgrid1.Columns().Add("Rest");
	exgrid1.ColumnAutoResize(true);
	exgrid1.EndUpdate();
}
1201
How can I add two columns of 25% and the third of 50%

public void init()
{
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.DrawGridLines(2/*exVLines*/);
	COM::createFromVariant(exgrid1.Columns().Add("25%")).Width(25);
	COM::createFromVariant(exgrid1.Columns().Add("25%")).Width(25);
	COM::createFromVariant(exgrid1.Columns().Add("50%")).Width(50);
	exgrid1.ColumnAutoResize(true);
	exgrid1.EndUpdate();
}
1200
I add two columns but I see a third column

public void init()
{
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.DrawGridLines(2/*exVLines*/);
	exgrid1.Columns().Add("C1");
	exgrid1.Columns().Add("C2");
	exgrid1.ColumnAutoResize(true);
	exgrid1.EndUpdate();
}
1199
I lose the hierarchy, all items are on the same 1st level, while I use PutItems

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.Columns().Add("C1");
	exgrid1.Columns().Add("C2");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Emily"),COMVariant::createFromInt(1),"William");
		com_Items.CellValue(com_Items.AddItem("Sophia"),COMVariant::createFromInt(1),"Alexander");
	exgrid1.PutItems(exgrid1.GetItems(""),exgrid1.Items().ItemByIndex(0));
	exgrid1.PutItems(exgrid1.GetItems(""),exgrid1.Items().ItemByIndex(1));
	exgrid1.PutItems(exgrid1.GetItems(""),exgrid1.Items().ItemByIndex(6));
	exgrid1.Items().ExpandItem(0,true);
	exgrid1.EndUpdate();
}
1198
Column width set by code is ignored or it seems that does not work

public void init()
{
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.DrawGridLines(2/*exVLines*/);
	COM::createFromVariant(exgrid1.Columns().Add("C1")).Width(32);
	COM::createFromVariant(exgrid1.Columns().Add("C2")).Width(132);
	COM::createFromVariant(exgrid1.Columns().Add("C3")).Width(264);
	exgrid1.EndUpdate();
}
1197
I want to display this computed value in a TextBox outside the grid and get it updated with any change of its value. How can this be done
// 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.Refresh();
	var_Items = exgrid1.Items(); com_Items = var_Items;
		print( "Total: " );
		print( com_Items.CellCaption(com_Items.LockedItem(0/*exTop*/,0),COMVariant::createFromInt(0)) );
}

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

	super();

	exgrid1.BeginUpdate();
	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.LockedItemCount(0/*exTop*/,1);
		h = com_Items.LockedItem(0/*exTop*/,0);
		com_Items.ItemBackColor(h,WinApi::RGB2int(240,240,240));
		com_Items.CellValue(h,COMVariant::createFromInt(0),"sum(all,dir,dbl(%0))");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),4/*exTotalField*/);
		com_Items.CellHAlignment(h,COMVariant::createFromInt(0),2/*RightAlignment*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"'Total: '+value");
	var_Items1 = exgrid1.Items(); com_Items1 = var_Items1;
		com_Items1.AddItem(COMVariant::createFromInt(10));
		com_Items1.AddItem(COMVariant::createFromInt(25));
		com_Items1.AddItem(COMVariant::createFromInt(31));
		com_Items1.AddItem(COMVariant::createFromInt(48));
	exgrid1.EndUpdate();
}
1196
Disable temporarily the column's sort, resize and drag and drop

public void init()
{
	COM com_Editor;
	anytype var_Editor;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.SortBarVisible(true);
	exgrid1.SortBarCaption("<fgcolor 808080><c>the header and the sort-bar are disabled (no drag and drop is allowed)");
	exgrid1.AllowGroupBy(true);
	exgrid1.HeaderEnabled(false);
	exgrid1.HeaderAppearance(4/*Etched*/);
	COM::createFromVariant(exgrid1.Columns().Add("Index")).FormatColumn("1 index ``");
	COM::createFromVariant(exgrid1.Columns().Add("Pos")).FormatColumn("1 apos ``");
	var_Editor = COM::createFromObject(COM::createFromVariant(exgrid1.Columns().Add("Edit"))).Editor(); com_Editor = var_Editor;
	com_Editor.EditType(1/*EditType*/);
	exgrid1.GridLineStyle(512/*exGridLinesGeometric*/);
	exgrid1.DrawGridLines(2/*exVLines*/);
	exgrid1.GridLineColor(WinApi::RGB2int(224,224,224));
	exgrid1.EndUpdate();
}
1195
I wonder if it’s possible to highlight/select a column like Excel
// ColumnClick event - Fired after the user clicks on column's header.
void onEvent_ColumnClick(COM   _Column)
{
	// Column.Selected = True
	// FocusColumnIndex = Column.Index
	COM com_Column;
	anytype var_Column;
	;
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column = var_Column;
	com_Column.Selected(false);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
	com_Column.Selected(false);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(2)); com_Column = var_Column;
	com_Column.Selected(false);
	exgrid1.Items().SelectAll();
}

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.Background(32/*exCursorHoverColumn*/,-1);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.MarkSearchColumn(false);
	exgrid1.SingleSel(false);
	exgrid1.FullRowSelect(1/*exRectSel*/);
	exgrid1.SortOnClick(0/*exNoSort*/);
	exgrid1.Columns().Add("Column1");
	exgrid1.Columns().Add("Column2");
	exgrid1.Columns().Add("Column3");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.DefaultItem(com_Items.AddItem(COMVariant::createFromInt(0)));
		com_Items.CellValue(COMVariant::createFromInt(0),COMVariant::createFromInt(1),COMVariant::createFromInt(1));
		com_Items.CellValue(COMVariant::createFromInt(0),COMVariant::createFromInt(2),COMVariant::createFromInt(2));
		com_Items.DefaultItem(com_Items.AddItem(COMVariant::createFromInt(3)));
		com_Items.CellValue(COMVariant::createFromInt(0),COMVariant::createFromInt(1),COMVariant::createFromInt(4));
		com_Items.CellValue(COMVariant::createFromInt(0),COMVariant::createFromInt(2),COMVariant::createFromInt(5));
		com_Items.DefaultItem(com_Items.AddItem(COMVariant::createFromInt(6)));
		com_Items.CellValue(COMVariant::createFromInt(0),COMVariant::createFromInt(1),COMVariant::createFromInt(7));
		com_Items.CellValue(COMVariant::createFromInt(0),COMVariant::createFromInt(2),COMVariant::createFromInt(8));
	exgrid1.EndUpdate();
}
1194
Is it possible to change the color of the border

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

	super();

	exgrid1.BeginUpdate();
	var_s = "gBFLBCJwBAEHhEJAAEhABc8IQAAYAQGKIcBiAKBQAGaAoDDMMwyQwAAxDMK8EwsACEIrjKCRShyCYZRhGcTALBIBQSHAZZKgOJIRDENg2SANACRfIUaw1DqBZwkGZoWh";
	var_s = var_s + "GKgAShIEDwSKkQBlECeJpnKaqIomJYnDLQUw0NL9HQ3JaaKqnWLBVCWEQyVzEIyjBT0EzHMqtKrjaA6NpaP4oT7LEIydKFCRJNi0bSnGqaOj6UJSURRVq3TTFcTyAC3a";
	var_s = var_s + "huOo4cpXB4SWrOd41fYNOTQACzbCsSIcPxCe6GXjiNwjPKMWhnIq+M5wXIrJyKCYUaTcejzfgdU5XWqeMoyewMXxmZqbXw/fBYRrEL5vTqNXTzSA4BEB";
	exgrid1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	exgrid1.Appearance(16842496);
	exgrid1.ColumnAutoResize(true);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.TreeColumnIndex(-1);
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	exgrid1.GridLineStyle(512/*exGridLinesGeometric*/);
	exgrid1.Columns().Add("Default");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("before item");
		com_Items.AddItem("item");
		com_Items.AddItem("after item");
	exgrid1.EndUpdate();
}
1193
Expandable-caption

// AnchorClick event - Occurs when an anchor element is clicked.
void onEvent_AnchorClick(str   _AnchorID,str   _Options)
{
	;
	print( _AnchorID );
}

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(true);
	exgrid1.TreeColumnIndex(-1);
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	exgrid1.GridLineStyle(512/*exGridLinesGeometric*/);
	exgrid1.BackColorAlternate(WinApi::RGB2int(240,240,240));
	exgrid1.ShowFocusRect(false);
	exgrid1.Columns().Add("Default");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("before item");
		var_s = "<solidline> <c><b>Bank Account</b></solidline><br>+ owner: String <r><a 1;e64=gA8ABzABvABsABpABkg8JABuABlAA+AAgAECMcTi4AMwAM4AjM";
		var_s = var_s + "GhEGOUVAA4AAwk8plcqihwAElg0wiUlOkOiUEgQvgcFhsKhkIhUQiUUnccj0gn0jmMagUlowAMNOpEfkMNkkmlEqrctjQmAAjAA5AA2sssHcbnkdq1Ln1QtVSjQAAEBA";
		var_s = var_s + "==>▲</a><br><solidline>+ balance: Currency = 0</solidline><br>+ deposit(amount: Currency)<r><a 2;e64=gA8ABjAA+AECMwAM8DABv";
		var_s = var_s + "ABshoAOQAEAAHAAGEWjEajMGNoAMoAOgANERMgAOcHAAvAEJhcEh0Qh0Tg0CmkqMMFlUuhkxiMTisXjNCjk6EwAEYAHIAG1MjY7lUsnkwh8/nUClk5gwAAEBA==>`";
		var_s = var_s + "50;</a><br>+ withdraw(amount: Currency)";
		h = com_Items.AddItem(COMVariant::createFromStr(var_s));
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
		com_Items.CellSingleLine(h,COMVariant::createFromInt(0),false);
		com_Items.AddItem("after item");
	exgrid1.EndUpdate();
}
1192
Expandable-caption

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(true);
	exgrid1.TreeColumnIndex(-1);
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	exgrid1.GridLineStyle(512/*exGridLinesGeometric*/);
	exgrid1.BackColorAlternate(WinApi::RGB2int(240,240,240));
	exgrid1.ShowFocusRect(false);
	exgrid1.Columns().Add("Default");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("before item");
		h = com_Items.AddItem("<solidline><b>Header</b></solidline><br>Line1<r><a ;exp=show lines>+</a><br>Line2<br>Line3");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
		com_Items.CellSingleLine(h,COMVariant::createFromInt(0),false);
		com_Items.AddItem("after item");
	exgrid1.EndUpdate();
}
1191
Force hover-all feature
public void init()
{
	;

	super();

	exgrid1.Background(500/*exScrollHoverAll*/,-1);
}
1190
Disable hover-all feature (Windows 11 or greater)
public void init()
{
	;

	super();

	exgrid1.Background(500/*exScrollHoverAll*/,WinApi::RGB2int(1,0,0));
}
1189
Display a custom tooltip
// MouseMove event - Occurs when the user moves the mouse.
void onEvent_MouseMove(int   _Button,int   _Shift,int   _X,int   _Y)
{
	;
	exgrid1.ShowToolTip("new content","",,"+8","+8");
}

public void init()
{
	;

	super();

}
1188
Shows the tooltip of the object moved relative to its default position
// MouseMove event - Occurs when the user moves the mouse.
void onEvent_MouseMove(int   _Button,int   _Shift,int   _X,int   _Y)
{
	;
	exgrid1.ShowToolTip("<null>","<null>",,"+8","+8");
}

public void init()
{
	;

	super();

	exgrid1.ColumnAutoResize(false);
	COM::createFromVariant(exgrid1.Columns().Add("tootip")).ToolTip("this is a tooltip assigned to a column");
}
1187
Delete all records
// 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("Delete * from ORDERS");
		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\\Access\\misc.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 (delete all records, using ADODB.Command)");
		com_Items.CellHAlignment(h,COMVariant::createFromInt(0),1/*CenterAlignment*/);
	exgrid1.EndUpdate();
}
1186
How can I get a cell that shows the sum of a column of minutes in hours + minutes format

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Minutes")); com_Column = var_Column;
		com_Column.SortType(1/*SortNumeric*/);
		var_Editor = com_Column.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(1/*EditType*/);
			com_Editor.Numeric(-1/*exInteger*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromInt(10));
		com_Items.AddItem(COMVariant::createFromInt(20));
		com_Items.AddItem(COMVariant::createFromInt(30));
		com_Items.AddItem(COMVariant::createFromInt(40));
		com_Items.AddItem(COMVariant::createFromInt(50));
		h = com_Items.AddItem("sum(all,dir,dbl(%0))");
		com_Items.SelectableItem(h,false);
		com_Items.SortableItem(h,false);
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),5/*exTotalField | exHTML*/);
		com_Items.CellHAlignment(h,COMVariant::createFromInt(0),2/*RightAlignment*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"'<b>HH:NN</b>: '+ (int(value/60) lpad '00') + ':' + ((value mod 60) lpad '00')");
	exgrid1.EndUpdate();
}
1185
Highlight the match once the filter is applied

// FilterChange event - Occurs when filter was changed.
void onEvent_FilterChange()
{
	COM com_Column;
	COMVariant format;
	anytype var_Column;
	;
	format = exgrid1.FormatABC("`lower(value) replace lower('` + value + `') with '<bgcolor 000000><fgcolor FFFFFF>` + value  + `</fgcolor></bgcolor>'`",COMVariant::createFromStr(exgrid1.FilterBarPromptPattern()));
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column = var_Column;
	com_Column.FormatColumn(format);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
	com_Column.FormatColumn(format);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(2)); com_Column = var_Column;
	com_Column.FormatColumn(format);
}

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.SelBackColor(exgrid1.BackColor());
	exgrid1.SelForeColor(exgrid1.ForeColor());
	exgrid1.ColumnAutoResize(true);
	exgrid1.ContinueColumnScroll(0);
	exgrid1.MarkSearchColumn(false);
	exgrid1.SearchColumnIndex(1);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.HeaderHeight(23);
	exgrid1.BackColorLevelHeader(exgrid1.BackColor());
	exgrid1.FilterBarCaption("`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)");
	exgrid1.FilterBarPromptVisible(2055/*exFilterBarCompact | exFilterBarCaptionVisible | exFilterBarVisible | exFilterBarPromptVisible*/);
	exgrid1.FilterBarBackColor(exgrid1.BackColor());
	exgrid1.FilterBarPromptPattern("and");
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Name")); com_Column = var_Column;
			com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
			com_Column.FormatColumn("lower(value)");
		var_Column1 = COM::createFromVariant(com_Columns.Add("Title")); com_Column1 = var_Column1;
			com_Column1.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
			com_Column1.FormatColumn("lower(value)");
		var_Column2 = COM::createFromVariant(com_Columns.Add("City")); com_Column2 = var_Column2;
			com_Column2.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
			com_Column2.FormatColumn("lower(value)");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h0 = com_Items.AddItem("Nancy Davolio");
		com_Items.CellValue(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellValue(h0,COMVariant::createFromInt(2),"Seattle");
		h0 = com_Items.AddItem("Andrew Fuller");
		com_Items.CellValue(h0,COMVariant::createFromInt(1),"Vice President, Sales");
		com_Items.CellValue(h0,COMVariant::createFromInt(2),"Tacoma");
		com_Items.SelectItem(h0,1);
		h0 = com_Items.AddItem("Janet Leverling");
		com_Items.CellValue(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellValue(h0,COMVariant::createFromInt(2),"Kirkland");
		h0 = com_Items.AddItem("Margaret Peacock");
		com_Items.CellValue(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellValue(h0,COMVariant::createFromInt(2),"Redmond");
		h0 = com_Items.AddItem("Steven Buchanan");
		com_Items.CellValue(h0,COMVariant::createFromInt(1),"Sales Manager");
		com_Items.CellValue(h0,COMVariant::createFromInt(2),"London");
		h0 = com_Items.AddItem("Michael Suyama");
		com_Items.CellValue(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellValue(h0,COMVariant::createFromInt(2),"London");
		h0 = com_Items.AddItem("Robert King");
		com_Items.CellValue(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellValue(h0,COMVariant::createFromInt(2),"London");
		h0 = com_Items.AddItem("Laura Callahan");
		com_Items.CellValue(h0,COMVariant::createFromInt(1),"Inside Sales Coordinator");
		com_Items.CellValue(h0,COMVariant::createFromInt(2),"Seattle");
		h0 = com_Items.AddItem("Anne Dodsworth");
		com_Items.CellValue(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellValue(h0,COMVariant::createFromInt(2),"London");
	exgrid1.EndUpdate();
}
1184
The count of filtered items includes the group-parents. How can I exclude them from count

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.DrawGridLines(2/*exVLines*/);
	exgrid1.HeaderAppearance(1/*Flat*/);
	exgrid1.HeaderHeight(24);
	exgrid1.SortBarHeight(28);
	exgrid1.SortBarVisible(true);
	exgrid1.AllowGroupBy(true);
	exgrid1.Columns().Add("Col 1");
	exgrid1.Columns().Add("Col 2");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("219 Smith"),COMVariant::createFromInt(1),"Ignacio 1234");
		com_Items.CellValue(com_Items.AddItem("1666 County Road 309A"),COMVariant::createFromInt(1),"897 Manassa");
		com_Items.CellValue(com_Items.AddItem("38 Lone Pine"),COMVariant::createFromInt(1),"Durango 11");
		com_Items.CellValue(com_Items.AddItem("612 Jachim Street"),COMVariant::createFromInt(1),"Lamar 222");
	exgrid1.Layout("MultipleSort=\"C1:1\"");
	exgrid1.FilterBarCaption("`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? leafitemcount + ` result(s)` : ``)");
	exgrid1.FilterBarPromptVisible(2055/*exFilterBarCompact | exFilterBarCaptionVisible | exFilterBarVisible | exFilterBarPromptVisible*/);
	exgrid1.FilterBarPromptType(257/*exFilterPromptCaseSensitive | exFilterPromptContainsAll*/);
	exgrid1.FilterBarPromptPattern("12");
	exgrid1.FilterBarBackColor(exgrid1.BackColor());
	exgrid1.EndUpdate();
}
1183
Is it possible to display the count of filtered items

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.DrawGridLines(2/*exVLines*/);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.HeaderHeight(24);
	exgrid1.Columns().Add("Col 1");
	exgrid1.Columns().Add("Col 2");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("219 Smith"),COMVariant::createFromInt(1),"Ignacio 1234");
		com_Items.CellValue(com_Items.AddItem("1666 County Road 309A"),COMVariant::createFromInt(1),"897 Manassa");
		com_Items.CellValue(com_Items.AddItem("38 Lone Pine"),COMVariant::createFromInt(1),"Durango 11");
		com_Items.CellValue(com_Items.AddItem("612 Jachim Street"),COMVariant::createFromInt(1),"Lamar 222");
	exgrid1.FilterBarCaption("`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)");
	exgrid1.FilterBarPromptVisible(2055/*exFilterBarCompact | exFilterBarCaptionVisible | exFilterBarVisible | exFilterBarPromptVisible*/);
	exgrid1.FilterBarPromptType(257/*exFilterPromptCaseSensitive | exFilterPromptContainsAll*/);
	exgrid1.FilterBarPromptPattern("12");
	exgrid1.FilterBarBackColor(exgrid1.BackColor());
	exgrid1.EndUpdate();
}
1182
GroupBy code

public void init()
{
	COM com_Column,com_rs;
	anytype rs,var_Column;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	exgrid1.ContinueColumnScroll(false);
	exgrid1.CountLockedColumns(1);
	exgrid1.BackColorLock(WinApi::RGB2int(248,248,248));
	exgrid1.HasLines(1/*exSolidLine*/);
	exgrid1.LinesAtRoot(5/*exGroupLinesOutside*/);
	// 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\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SortBarVisible(true);
	exgrid1.SingleSort(false);
	exgrid1.AllowGroupBy(true);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column = var_Column;
	com_Column.Width(128);
	exgrid1.Layout("MultipleSort = \"C12:1 C1:2\"");
	exgrid1.EndUpdate();
}
1181
ADOR, MDB (JET)
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\\Access\\misc.mdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.EndUpdate();
}
1180
Editors (ImageSize = 32)

public void init()
{
	COM com_Appearance,com_Editor,com_Editor1,com_Editor10,com_Editor11,com_Editor12,com_Editor13,com_Editor2,com_Editor3,com_Editor4,com_Editor5,com_Editor6,com_Editor7,com_Editor8,com_Editor9,com_Items,com_Object;
	anytype var_Appearance,var_Editor,var_Editor1,var_Editor10,var_Editor11,var_Editor12,var_Editor13,var_Editor2,var_Editor3,var_Editor4,var_Editor5,var_Editor6,var_Editor7,var_Editor8,var_Editor9,var_Items,var_Object;
	int h;
	str var_s,var_s1,var_s2,var_s3,var_s4,var_s5;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ImageSize(32);
	exgrid1.DefaultItemHeight(36);
	exgrid1.HeaderHeight(exgrid1.DefaultItemHeight());
	exgrid1.SortBarHeight(exgrid1.DefaultItemHeight());
	exgrid1.Font().Size(16);
	exgrid1.FilterBarFont().Size(exgrid1.Font().Size());
	exgrid1.ToolTipFont().Size(exgrid1.Font().Size());
	exgrid1.Indent(26);
	var_s = "gBJJgBAIDAAEg4AEEKAD/hz/EMNh8TIRNGwAjEZAEXjAojKAjMLjABhkaABAk0plUrlktl0vmExmUzmk1m03nE5nU7nk9miAoE+oVDolFo1HpFJpU5h8Sf9OqFNqUOqN";
	var_s = var_s + "UqdPq9VrFWrlbr1QpdhAFAkFis1ntFptVrtkrpszrNvmVxqk3uVtm1kmF3sdBvF/wGBmV+j9BYGHwWJulfxdax2NyFdx2JlV6l9Nw7AAGZymdz2Cy2GxErvWcz9ivlwy";
	var_s = var_s + "V21cuxugwktzGIzmvwtl0+53U5y0a0Wazmmyu/3dCyOMyXHx/J5nIr9q3uyqnBxFN3G46ma4vb7mD2Ng4nZze00fDkHC7t7us2rOX5tguetpHRlmz4HVqnXk1PjHO+CM";
	var_s = var_s + "Po9MBMC+j2vC8j7wS8cFNI4kBo05UIvfCT/NsnsApU+0Fqg/T+oy/kPxC0sEQfErKQK96+w28UWRI8UGvO8sTLS9r2PWmsMJTDTask3CsIbIEQRA3shOXEEAO/GclJ9F";
	var_s = var_s + "EKrrA8FRbKMXRIlb0JxCkjS1LMswhCcvuel0cv26cSMa8Ufx+2sQwhEUoSXOCjSbLcnxjKc7sdKUVyq28NtVI71P9P7JxtQEapjQ6fzfM8zPfNE2PhIsLL63E40slk5y";
	var_s = var_s + "7N89LcyU9SvMb3SdUc6VJLj5VLVLfO/PS9KzNFHUa/0XyBD0dxlS9cxhMlTRSoNXypPErWDPyfNS+MwprRNO0FD8wVVZ1AI08URwVRjtJ1WCn21QkkUrXVLVPQS/XIkF";
	var_s = var_s + "gTxT9iONZ9xVTdq+L1eKg3kkF6Upe68XtfV51/MtrVjBlwYFL1ev8y1/P6/lyzzYl02wntj0RVFmS1Qa+M5as93QxEUW9e993rfmQ2+vy65M/mL1lhl/2bj2ByVduMtN";
	var_s = var_s + "hCJT9hdz41nN14Ld12Z9UjfI/oUAaGseiw6+uFLLhcVabJOS5RqOE0BHlZ5VnEr5fOMs3st+aa/bbRzrJGV51Y0b0DbqaWXZD90hIsPbjWu52+6Wyadpe66hhO+P/Xio";
	var_s = var_s + "W5rD8ZbrUZuVg6n1dsE/cXmewu1m9PVwnd35/nueXho/NaJzmjc61W76esuT77eG8pTquy9TwWH8LEzG8RDfFalx3Gcfvna9rvG/cptGLd9tuI6TZOP5Fiqi99vea+X4";
	var_s = var_s + "VRcBq/JZZtVQ9cwSs5lsXE372+a9z7PbfB3VVqHyvMctLto8uob6eV0m/cD6MN2v+T33t6sBut42vdv2bJ8a997x2maFJfK+qArbGJPEKE+1qTflMsIdW/GCJX17KcT6";
	var_s = var_s + "/czr/X+u1g29B7j/4BQfWkkx4zIHisjhPCmE0K4SwtXM+d4BvHRwNZOoBph9IJvPek9d40FoMJxf691jj2ywQQcHEWET4XJwkTszlVqm2GokewxtBT1DpQjRxDN0rUVD";
	var_s = var_s + "NKdC3lb6tzNOwh6upMSSYfv4YBCl/bsn9PxiFCEo7SI6Obc9HeOrnY8x4jtHtdpN4GRbaorhsbu18Pph5CiHymI0RpSXGJ/z2oUOxYxG858AyiI+bfJtuTcG5yelBJyT";
	var_s = var_s + "8okhqFd4a5yxL0rvulYtKCsZiWxWkc1s1cRoxxwhA31DLE0mR9l9HqX8fJgTDmFMVH0MIsRzVYnwnMi1dyzmhLt2kS2pxIiU62Wj5ptQGlSYFakLonTUJNLKaM5Wzlff";
	var_s = var_s + "EkuFkk5wTrhVO2eE7G6lJhxFFYUZ55zmn0WuBCD4pzhirFCKkbomsOoIYmZx5p90LoYWGPdD5g0QmJRKYxbZ6zYoVQ2jVGylSak7KSkFH6RSjpHKFuU+YMyNo5SulkC6";
	var_s = var_s + "I0vonTCitMXPoEpVS2H5FQfEqp2R1opIgAEkJISYARTCukOhmPNI5Ex/wzGHUsicMwA1LHgQ90Y/KpoQHAD+pB/R4NzIaMAB9Xaw1gqaAOsh/A/ptIkWUfhGK1kZH8Rg";
	var_s = var_s + "H5GqvgArqRmt4AAPrTroRofBGADkqr6Rmu4D7CEaHARiwpJrEEZsXXwlVjyMWRsaRqwdkLGNBABZmytmyMnaINZqyVpLR2ftKAAAdd6h2osbaskdiq4EZtgSmyNcbVWR";
	var_s = var_s + "JNXe3AA7REar3b0stlAAXBtoRmvJGLjEYAHUWsFcwCD/rnaop9aEICMAPdK5hT6xpeuzdOtAgKuJeGfdq6ggEbkTvAP+p9UCHXrvKkcgIA==";
	exgrid1.Images(COMVariant::createFromStr(var_s));
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s1 = "gBFLBCJwBAEHhEJAAEhABfICg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6";
		var_s1 = var_s1 + "CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EM";
		var_s1 = var_s1 + "RwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsOatVqjG5sYjcGC3La9cz3Pq/bpuDCbMxuaK1TrYXr1TTrcofBDldAxXRKDxR";
		var_s1 = var_s1 + "DWVhLnYOw9i6XxzjuXprCaOoKB6EwbiCZZCGOdZYlcT4xHmbhMnwNxtn+G5bmqdZ7n4Pw/i+X5zm+dQ9g4CAFjsfAJheOI8HsDoWDWTB/lwSAQkmA5PEgRYoDyDwYFYF";
		var_s1 = var_s1 + "oFmGCBmBqBphDgRJ0gOTIYBGRB/lyRh0iSCZbjYWJzgWDwIjYLoLmMCJGDKDJjBgWgqG6YhyhGHRzA2aJ1mCABOAiOJvhCZBJBYRoRmSCQmEqEQimkAZgg8TZnDCV4Uk";
		var_s1 = var_s1 + "mCUmBKZYJGYWoWCUUhiFMNZckNUh2GENoaGaGZmgmJhqhqZpGGIEx2GYIxSGGGJdggWJth2Z4JmYeoemeSZ2H6H4hGmQhihyTRHGYLg7CiCgmgqIpokoNoOiOaJ4jqAo";
		var_s1 = var_s1 + "chqaZGgaCxpAoZoaiaaJqEmWIcGgShcnCJwqEqFoR3YOoFlgchflqNouiuawHmWSYqGkWZQhcatzmaOoumuSp2j6L5bBaKo0GQKRnGGCxqiyCwmkqMpsksNpOGUGI7A0";
		var_s1 = var_s1 + "ew1G0Rxlg0PptgsZuDG2Sx2l6N5tnYNZZjUDRXDCVo5l2FoymqOpukuNpujubwLjmWY5k0ZwxkaFxYlWdp6j6b5Lnafo/nABQdg2FxcUsY5BkmXAkmeQpckwNRrkKTh8";
		var_s1 = var_s1 + "CSHZBk4NwyC4KxxgMDwakOMZDn8GgwnGAo2C4cwthMcwmCcMoHBMHRehwTIghySYNksZwcH4HBMEsHx5hyPItiweYxnwSZEH4Mozn0fR+DMAo7EYJ50gkdZelKdNql2U";
		var_s1 = var_s1 + "gJn0GIukwH4HicQRai2GI4mSVpNl0dZGledgNgcYpYDWUx3FsOQi5YV5anaTY3G6W53A2RxylydxFjiaxEFCCgBBAQ==";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s1));
		var_s2 = "gBFLBCJwBAEHhEJAAEhABcoFg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6";
		var_s2 = var_s2 + "CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EM";
		var_s2 = var_s2 + "RwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsLpOS5LNKsaxmWLYdhFdTxQi6LpvfA8BwXC6JY7heRYRbFbYxRjGNi1TS7G4n";
		var_s2 = var_s2 + "GKd5WGuL4UHwI4VkaYxii8V4pgQMgVBQdQ5iCTYGi8T4vlWbJ3nuPg+l+H5AlSCg6ByPBoE8Ap3jqYxhBido5g0OgOGOGI4CsSpCCAcgcAuEokiEN5NCKfJ9DyTRjnSc";
		var_s2 = var_s2 + "g1CEYxOBmBpPCgagdgcIZoHoGIFA4AxQkCAxKAgKBwgGSpIBCZhjF2E5UnQPQMiMCJBCIBwxkSQgsgo+JtDKT4ziiQw+k6EwAnsOgLnkHI+yCQ4iEuE4klkPhShEJBpA";
		var_s2 = var_s2 + "oPgymOMoaDgHBjFMBgyD0HYTiCZSZhIIIGC4ChiHSew5kwM5omILZPiOBI0hwZw5kodIdA+M4Uj4PxOmMSJ9DuTQzmyZgviceZagaHVfj4awwmaAh2GUIYmCOEZZDaDR";
		var_s2 = var_s2 + "DFGdwcg4EwyHMN4LBOaJbCoaZqgKH8qkMfIyD8DozDyfA7A0Coui0OpMmOZJdCsahKg6NooioChwmEMxLEoXJbDUTRXGSUgykyMgQG0GpPHMdI3D4TRCgSeQ0kmaw+lG";
		var_s2 = var_s2 + "NAtCOZJVCiT5DhyRQwAqMg0EoDBBGEGAsASC5yiSCw+k4Mp6lWNQuksTpRjMTxDGzJwGmGMpDDKXYTECSAxl6Q5olkK4PgMMIVkASRMBMBgzEkaZEjsNALhIZA6AeQBg";
		var_s2 = var_s2 + "k0ZJEgAAJ0CIAgODMNIsD6DRih9uYwFyAwfCUb5ijmbI+gwdxkk8MZMGeMpPCkDxzBiC5MHMPJLDSSROFMLIoBEQogEMFJPnENYQGgE4DCOaJfC7tYkhGTQ0kyWwykuX";
		var_s2 = var_s2 + "pMiyRpKjKR4wngM4JmOWJACCdYtHMWw+Eych4nINYLAEYA8AgdAEEsQZajaQoog4GxPiMVIolcdxNG8XZVkmNoRwWRVBlFeFEeAZQJgnFiHgHwcAhjhHgGMSI5xki2Cy";
		var_s2 = var_s2 + "A4EQsA3i0HkBsLwKRFgAHcPkHopBJBcBeDUYI7xyDOHqKkWo2hLCsDIBIY4qQ5A8DoMMYwOAqCSBGKgU4yB2iDBwIgB4hxQgAAWNgBoAgsBdEcBUQ4sQ9A/HqD0JI8Rp";
		var_s2 = var_s2 + "BzH2OYVgahLBHFiJQJweQiDhDUE4SAARQAzFsG0EQwA6AOWSBkFgVAIBCHeGERQFQiCQHeFkC4vkiB8DyB4F4QxVDvGMNEOQexMjlBeOAKQiQLgfDA7QEAaRiBdEkH8T";
		var_s2 = var_s2 + "I7AZiFBAGYBIABWjYBiGACioQ4C1A+AMMgWhfgxHgPsT4URIB0COKgPgjRwiAB8AYUArxBgCF6J4GY5hrAOCAPAAoGRRCsCIMEXATXfgAF8BMJwURuEQDgD4Q4OBoAeH";
		var_s2 = var_s2 + "GFgLIwQrC2D0JoSQ+QvhrHoSgQI8AbDFGID8C4Ah6BQAQAASACwgCYCMAUMARAvCKAiAMCAokeCKBEOAKgCBoDaHuMsEAqwJDiACDURg8R6gPCyDofYWAhgoDIJ4ZAuh";
		var_s2 = var_s2 + "oiGAYGgRoQw/A0GMMga4GwxiEDeIYYInATCDBQAoBAwAoDlA0KMBoVRGiDGwDQUYIRsgaGGDgM4LAwDWB8EcIA1APhjEgGQVwgRIgjFIIQHokgZA+CSEkLIKQSjHAwMs";
		var_s2 = var_s2 + "CwDAsAEB2ABTIwRwD6A8CMToSxkAxE4HYIw+BsgbBEDAHYBwojCBoIYFgXSjABE4MsHIbQWhlGILQS4UhvBdAUKEEwHgxDAAABQQQUAhgKHiDwE4JS4A7BGLQZwCR4ga";
		var_s2 = var_s2 + "BEMUYAqgKApHgGwVAIRNgvBMMQXImwZDtE4I8UIyAZCDCAE8AwrhgAdEEBACQLRCg4FEB4AYtA7CdEiPQMoJAMDNCkOMCAXAFDhH0D0Q4EgfAaGSK4NYzRUj9BuCgAgs";
		var_s2 = var_s2 + "wOBjB4Fqpw8B2ADAwE4A4Qx2DAE6JIaQPQGhAGKBcIQ5B5gHByKIFARwADbAyKUfgdBKBBGyEcVIAB/ijHoIoSA0gdBNl+OATYERZgBGSDYWIWAUCEGKA4FAhR7CIBtY";
		var_s2 = var_s2 + "QGYZg4CMAiKEcAOwkBjHWE8Z4lQgA+DkBoTohwwCeAaMEEgBQCCABgHMRwQRhhMEWFQd4HwZgwDqFESItAbAGEANCpINAzANCCJkK4ah+heFYBURwsQrS2CsMYMoWGBh";
		var_s2 = var_s2 + "YDWI0EInQgiApXaOVI1QFDsC8MUNoMBMA1HMJga4eh+BeAWOgNNowGjYzCGAAwax+iJBeBVT4gxoBIAGFsJFBxgBiGKFkKQ7g5DFFQEcAo4AzDDACKEQQLgCiJDYB0Mg";
		var_s2 = var_s2 + "RBCCQAgQEA==";
		com_Appearance.Add(2,COMVariant::createFromStr(var_s2));
		var_s3 = "gBFLBCJwBAEHhEJAAEhABQ4Fg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6";
		var_s3 = var_s3 + "CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EM";
		var_s3 = var_s3 + "RwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsLpOS5LNKsaxmWLYdhFdTxQi6LpvfA8BwXC6JY7heRYRbFbYxRjGNi1TS7G4n";
		var_s3 = var_s3 + "GKd5WGuL4UHwI4VkaYxii8V4pgQMgVBQdQ5iCTYGi8T4vlWbJ3nuPg+l+H5AlSCg6ByPBoE8Ap3jqYxhBido5g0OgOGOGI4CsSpCCAcgcAuEosiYN5NHMOJ+D4TpTnSe";
		var_s3 = var_s3 + "Q7CEY4uBmBpPhgagdgcIZoHibIEyUBJZDQIJShoCgcCAcoyAQOYYlcZJ1D0DxDCiQgwEiAZMHEMJLFKPJ9D2DoDnidQ4k+Y5QmKEROBkIhKD0JIZDIS4TGUCQuEeEJjn";
		var_s3 = var_s3 + "OIg8CuY4RkYNgwGMM5RllGpThDRYIGKZIpCkJFUH0PINyWcQ3CaaZCG+HBnEOTJhD8Tx4GoeQ/GcaZSHOH5nCmQhshoZhihYYwhiYA4RlkNoNEMUZ3ByDjwEsPxOnMaJ";
		var_s3 = var_s3 + "9DuDR6F6GYmCmKh0nANtMioP4Gg8aoSiIO5NhodociqaY6GaFYkEyOg8lsNRNTaUgykyMgQG0GpPiONJbD8DpDEyfA6k0KwOkWMQsGsAJU0SagwkoJQJDIPISCQCJTGS";
		var_s3 = var_s3 + "UwyGaM4KkmMgtksHpFjAZ4TGCBAbgaSpcksdhNAMIJHHsD5TjSWWMAMOpwjyLwbk6cAz0KRJiDkDYzESCwiggcgcgYIQwCIEINCMCITj6TVxkMXp2j0cQLlCTo7E2F4y";
		var_s3 = var_s3 + "mkMZdhMPJHDGHpLAyVg+k4UwrCCSIyByDJ8DuDY8CiWY0kiXAXC6QJwFKGIjCeJpjgyezjlyDw6klHx5myRoMGwZwbkcToTEiew4kwbQfEmUgPkOKJUD4DpTHSHQmgkX";
		var_s3 = var_s3 + "I/ASTA1g0XIEDMTBimyfI7jSLYHEiUoPk0Fw/kadAsHGao8A0A5smEMJ2mNyg5gzJZwDgCpChyIZVyIZwFCMJEPASRkBqE+IcHInRcDxA2H4bIsx0AtDsIBpwZwYicD6";
		var_s3 = var_s3 + "BscwDwUBgHCIYaIfgtiVH2O4WgUwJjEFeAEQA7y4hMCiBMS4aRdB9A4CYE4LxljyBMHcDItBxinDCLcTYmgejBFQ9UTg9gFBOEmAQTI7A4iZGMGkQAWQ7jYA2HIL8BRA";
		var_s3 = var_s3 + "jDG4HcCwARbjZHiNoDw1nLDnGyNINQ+wjCpBMEgcovQUgICQJEcgWRuBvAyJ4d4ugpCUAINcHogxIgnDiM4N4axzD3F2JMTY/hRqYF6FsWIxhYAGGoAALQYgYirBwBEB";
		var_s3 = var_s3 + "wpAjBEAAIEIYsA2gOHCMAGgXAACIDmMITAUgFABH0D0I4WwvhNFGMAOIvxRD2GKNcMA8gjAPDCPwBogRPAxA8PgRwZRICYDED8RAXQEghEAN8DIgwIBdB4JYWwMgtiQH";
		var_s3 = var_s3 + "oFQKAiRFguFKGwGQhglDsEOVwEQQRkCKBwOIHgSREDRBYHEXQcQdD7GIGARQHRxipBrMobgewDCUCADsEYWAzgMHKHQDQxxsDzA6EMfAeQHB4GQDkUYPA0iECiKoGgRh";
		var_s3 = var_s3 + "cDdA2GMQA8AOCjDSPgHI4QnApAKBICwHg1A+BcAwcYsgbjGGQNkCIgRsA6EcBEWANADjsB0B8YYzQQDIGSBcEYZBCCPEkFIHQSgkgZAwG4IwBAbAYGGAgL4Ch4g8BOCQ";
		var_s3 = var_s3 + "AA2KKC0GcAke4AAXAFCoHkDw4xbBFEcJkE4JRSiEFeJYKQVRMgJHODwX4xAgC/AsIIZAeAHDRG0HYI40RKCLEGDUI4jAghwBWIceA+whCpHMFYZYOQxglDMHMBQGxYjV";
		var_s3 = var_s3 + "HiAoBIPgfgHGwPsHYJRSB6A0IERQLhCjJHMA4OQoAoCOACLYGYSx8DpBQIMWQdRnDRH+DsE4fB3CeAmM67kAAXBFEIDYDI7wLBtEoEIfYNwjiUGGJQYQMAjCHEAO0C4z";
		var_s3 = var_s3 + "xW29CoCgfIxR9AKA6J8BgUAIhDGMIoJ40hqgwCgKETgnBhhqCGI0AIqgZhGDANQDIlBDCRGkCoJISR0g1BSKQOgfAzBRG0DYHARh4DeDAOwANuw8ApCKKkYg/RPhjBsH";
		var_s3 = var_s3 + "0J4yg5hPGWN0GwFBHQBFaDoQIURljFAoB4GgzRVzbBECQFQRQoguHGHANwDRdCKy8CgSIGwhhoDYJYYI1giBICSAEgI=";
		com_Appearance.Add(3,COMVariant::createFromStr(var_s3));
		var_s4 = "gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL";
		var_s4 = var_s4 + "UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBU";
		var_s4 = var_s4 + "rGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3";
		var_s4 = var_s4 + "NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDsY";
		var_s4 = var_s4 + "YDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVm";
		var_s4 = var_s4 + "WCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVo";
		var_s4 = var_s4 + "WiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiS";
		var_s4 = var_s4 + "e41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbhF";
		var_s4 = var_s4 + "CcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==";
		com_Appearance.Add(4,COMVariant::createFromStr(var_s4));
	exgrid1.BackColorHeader(0x4c6c6c6);
	exgrid1.SelBackColor(0x4000000);
	exgrid1.SelForeColor(WinApi::RGB2int(0,0,1));
	exgrid1.ShowFocusRect(false);
	exgrid1.CheckImage(0/*Unchecked*/,16777216);
	exgrid1.CheckImage(1/*Checked*/,33554432);
	exgrid1.CheckImage(2/*PartialChecked*/,50331648);
	COM::createFromVariant(exgrid1.Columns().Add("Editors")).Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		var_Editor = COM::createFromObject(com_Items.CellEditor(com_Items.AddItem("(ReadOnly)"),COMVariant::createFromInt(0))); com_Editor = var_Editor;
		com_Editor.EditType(0/*ReadOnly*/);
		var_Editor = COM::createFromObject(com_Items.CellEditor(com_Items.AddItem("(EditType)"),COMVariant::createFromInt(0))); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
		h = com_Items.AddItem("Value 1");
		var_Editor = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor = var_Editor;
			com_Editor.EditType(2/*DropDownType*/);
			com_Editor.AddItem(1,"Value 1",COMVariant::createFromInt(1));
			com_Editor.AddItem(2,"Value 2",COMVariant::createFromInt(2));
			com_Editor.AddItem(3,"Value 3",COMVariant::createFromInt(3));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (DropDownType)'");
		h = com_Items.AddItem(COMVariant::createFromInt(1));
		var_Editor1 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor1 = var_Editor1;
			com_Editor1.EditType(3/*DropDownListType*/);
			com_Editor1.DropDownAutoWidth(0/*exDropDownEditorWidth*/);
			com_Editor1.AddItem(1,"Nancy Davolio",COMVariant::createFromInt(1));
			com_Editor1.AddItem(2,"Andrew Fuller",COMVariant::createFromInt(2));
			com_Editor1.AddItem(3,"Janet Leverling",COMVariant::createFromInt(3));
			com_Editor1.AddItem(4,"Peacock Margaret",COMVariant::createFromInt(3));
			com_Editor1.AddItem(5,"Steven Buchanan",COMVariant::createFromInt(2));
			com_Editor1.AddItem(6,"Michael Suyama",COMVariant::createFromInt(1));
			com_Editor1.AddItem(7,"Robert King",COMVariant::createFromInt(2));
			com_Editor1.AddItem(8,"Laura Callahan",COMVariant::createFromInt(3));
			com_Editor1.AddItem(9,"Anne Dodsworth",COMVariant::createFromInt(2));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (DropDownList - single column list)'");
		h = com_Items.AddItem(COMVariant::createFromInt(1));
		var_Editor2 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor2 = var_Editor2;
			com_Editor2.EditType(3/*DropDownListType*/);
			com_Editor2.DropDownAutoWidth(0/*exDropDownEditorWidth*/);
			com_Editor2.AddItem(1,"Nancy Davolio",COMVariant::createFromInt(1));
			com_Editor2.AddItem(2,"Andrew Fuller",COMVariant::createFromInt(2));
			com_Editor2.InsertItem(3,"Janet Leverling",COMVariant::createFromInt(3),COMVariant::createFromInt(2));
			com_Editor2.InsertItem(4,"Peacock Margaret",COMVariant::createFromInt(3),COMVariant::createFromInt(2));
			com_Editor2.InsertItem(5,"Steven Buchanan",COMVariant::createFromInt(2),COMVariant::createFromInt(2));
			com_Editor2.InsertItem(6,"Michael Suyama",COMVariant::createFromInt(1),COMVariant::createFromInt(5));
			com_Editor2.InsertItem(7,"Robert King",COMVariant::createFromInt(2),COMVariant::createFromInt(2));
			com_Editor2.InsertItem(8,"Laura Callahan",COMVariant::createFromInt(3),COMVariant::createFromInt(2));
			com_Editor2.InsertItem(9,"Anne Dodsworth",COMVariant::createFromInt(2),COMVariant::createFromInt(5));
			com_Editor2.ExpandAll();
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (DropDownList - single column tree)'");
		h = com_Items.AddItem(COMVariant::createFromInt(1));
		var_Editor3 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor3 = var_Editor3;
			com_Editor3.EditType(3/*DropDownListType*/);
			com_Editor3.DropDownAutoWidth(0/*exDropDownEditorWidth*/);
			com_Editor3.Option(57/*exDropDownColumnCaption*/,"Name¦Title¦City¦Phone");
			com_Editor3.Option(58/*exDropDownColumnWidth*/,"312¦¦¦96");
			com_Editor3.AddItem(1,"Nancy Davolio¦Sales Representative¦Seattle¦(206) 555-9857",COMVariant::createFromInt(1));
			com_Editor3.AddItem(2,"Andrew Fuller¦<b>Vice President</b>, Sales¦Tacoma¦(206) 555-9482",COMVariant::createFromInt(2));
			com_Editor3.AddItem(3,"Janet Leverling¦Sales Representative¦Kirkland¦(206) 555-3412",COMVariant::createFromInt(3));
			com_Editor3.AddItem(4,"Peacock Margaret¦Sales Representative¦Redmond¦(206) 555-8122",COMVariant::createFromInt(3));
			com_Editor3.AddItem(5,"Steven Buchanan¦Sales Manager¦London¦(71) 555-4848",COMVariant::createFromInt(2));
			com_Editor3.AddItem(6,"Michael Suyama¦Sales Representative¦London¦(71) 555-7773",COMVariant::createFromInt(1));
			com_Editor3.AddItem(7,"Robert King¦Sales Representative¦Kirkland¦(71) 555-5598",COMVariant::createFromInt(2));
			com_Editor3.AddItem(8,"Laura Callahan¦Inside Sales Coordinator¦Seattle¦(206) 555-1189",COMVariant::createFromInt(3));
			com_Editor3.AddItem(9,"Anne Dodsworth¦Sales Representative¦London¦(71) 555-4444",COMVariant::createFromInt(2));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (DropDownList - multiple columns list)'");
		h = com_Items.AddItem(COMVariant::createFromInt(1));
		var_Editor4 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor4 = var_Editor4;
			com_Editor4.EditType(3/*DropDownListType*/);
			com_Editor4.DropDownAutoWidth(0/*exDropDownEditorWidth*/);
			com_Editor4.Option(57/*exDropDownColumnCaption*/,"Name¦Title¦City¦Phone");
			com_Editor4.Option(58/*exDropDownColumnWidth*/,"312¦¦¦96");
			com_Editor4.AddItem(1,"Nancy Davolio¦Sales Representative¦Seattle¦(206) 555-9857",COMVariant::createFromInt(1));
			com_Editor4.AddItem(2,"Andrew Fuller¦<b>Vice President</b>, Sales¦Tacoma¦(206) 555-9482",COMVariant::createFromInt(2));
			com_Editor4.InsertItem(3,"Janet Leverling¦Sales Representative¦Kirkland¦(206) 555-3412",COMVariant::createFromInt(3),COMVariant::createFromInt(2));
			com_Editor4.InsertItem(4,"Peacock Margaret¦Sales Representative¦Redmond¦(206) 555-8122",COMVariant::createFromInt(3),COMVariant::createFromInt(2));
			com_Editor4.InsertItem(5,"Steven Buchanan¦Sales Manager¦London¦(71) 555-4848",COMVariant::createFromInt(2),COMVariant::createFromInt(2));
			com_Editor4.InsertItem(6,"Michael Suyama¦Sales Representative¦London¦(71) 555-7773",COMVariant::createFromInt(1),COMVariant::createFromInt(5));
			com_Editor4.InsertItem(7,"Robert King¦Sales Representative¦Kirkland¦(71) 555-5598",COMVariant::createFromInt(2),COMVariant::createFromInt(2));
			com_Editor4.InsertItem(8,"Laura Callahan¦Inside Sales Coordinator¦Seattle¦(206) 555-1189",COMVariant::createFromInt(3),COMVariant::createFromInt(2));
			com_Editor4.InsertItem(9,"Anne Dodsworth¦Sales Representative¦London¦(71) 555-4444",COMVariant::createFromInt(2),COMVariant::createFromInt(5));
			com_Editor4.ExpandAll();
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (DropDownList - multiple columns tree)'");
		h = com_Items.AddItem(COMVariant::createFromInt(100));
		var_Editor5 = COM::createFromObject(com_Items.CellEditor(h,COMVariant::createFromInt(0))); com_Editor5 = var_Editor5;
		com_Editor5.EditType(4/*SpinType*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (SpinType)'");
		var_Editor5 = COM::createFromObject(com_Items.CellEditor(com_Items.AddItem("(MemoType)"),COMVariant::createFromInt(0))); com_Editor5 = var_Editor5;
		com_Editor5.EditType(5/*MemoType*/);
		h = com_Items.AddItem(COMVariant::createFromInt(3));
		var_Editor5 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor5 = var_Editor5;
			com_Editor5.EditType(6/*CheckListType*/);
			com_Editor5.AddItem(1,"Border",COMVariant::createFromInt(1));
			com_Editor5.AddItem(2,"Single",COMVariant::createFromInt(2));
			com_Editor5.AddItem(4,"Frame",COMVariant::createFromInt(3));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (CheckListType)'");
		h = com_Items.AddItem("193.226.40.161");
		var_Editor6 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor6 = var_Editor6;
			com_Editor6.Mask("{0,255}.{0,255}.{0,255}.{0,255}");
			com_Editor6.EditType(8/*MaskType*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (MaskType)'");
		h = com_Items.AddItem(COMVariant::createFromInt(65280));
		var_Editor7 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor7 = var_Editor7;
			com_Editor7.EditType(9/*ColorType*/);
			com_Editor7.Mask("`RGB(`{0,255}\\,{0,255}\\,{0,255}`)`;;0");
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (ColorType)'");
		h = com_Items.AddItem("Tahoma");
		var_Editor8 = COM::createFromObject(com_Items.CellEditor(h,COMVariant::createFromInt(0))); com_Editor8 = var_Editor8;
		com_Editor8.EditType(10/*FontType*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (FontType)'");
		var_s5 = "gBHJJGHA5MIwAEIe4AAAFhwbiAliQwig7ixFjBQjRbjhljxwkB7kSFkiQkyblCllSwli7lzFmDQmTbmjlmzwnD7nQBnk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
		var_s5 = var_s5 + "Vq1XrFZrVbrldr1YhgAEL5AgBhj/AAssMJthABFof4JDhIWCgYKDBATFT8M6hUIFAQAEQCCDwYF/QoWDZCRBgOKgIYHCQXMisKBAEQAAgOBZaSgQhjERANKQiZhIWamY";
		var_s5 = var_s5 + "yIBQ6FzcNKxQLJT4ADA4RjwObAAidBYdHwABQgUxMQYZEI0cD4OgnYKaKyzIRFNQx2YCKoFHScYD0ADXQwUAgwLoLQDqaCWBJoNQ9NBxFJTVQORgiarqSABbamGwtDAw";
		var_s5 = var_s5 + "BUWhQmqYALnOFQvGYPA4m6AwKhkZxKj2PBWC0SZCgmVY6CwIJgieBAniubRKHgaYgiwQwGiCfxGDWbBRmGZYIi2VwGnAexxGUSwUFiaR+hQPbBgOCoLCIHh4DAARCmQG";
		var_s5 = var_s5 + "4AlgNxuhwWgpFAEQUhuOxOk0NrhAaQoBmgPYdFSIZPjYGYbn+HhgEoAA7HMBIOjUM51AoPojHkEwVlET5slgWZtAEUBdjeSoeF6X5/rQRRSi+QB6GychsEAfZshKYABG";
		var_s5 = var_s5 + "QZorlAOgMBqEgAjYHB2jqSoigmYBLk+QZnBqGhggAEwImgbojgoIwSE+MxUHiS4REQCQWluD48B+JJoL+YQikuaI9AALgLmsJQfnSdAvDkCJEhIIIBgOegLEiPBqCyCA";
		var_s5 = var_s5 + "AjcCwgAAIJBhQBQkHGL4gDaNBokkZQMiwUAuioJQiCAQYsHMcwwEIeoigAYIogsGIwFKIYICIWguEoPgQhsawBASGgwCuJwLH8K4LigAIaDwbxMAOKxbisPwfASQATFA";
		var_s5 = var_s5 + "SoagIEYwgcSoKGiAA/mEdIuiGPxCmObIlhMIJNHONxFH8EpPCGeB+noEpBBSSRjCsPZEiyKhgjAH5whSdLEjwDxjC8TxVEMFRzFWJJZBUSI0gQEQLBOM4VHkIg1D0CAJ";
		var_s5 = var_s5 + "DQNg/p4AAdoC";
		h = com_Items.AddItem(COMVariant::createFromStr(var_s5));
		var_Editor8 = COM::createFromObject(com_Items.CellEditor(h,COMVariant::createFromInt(0))); com_Editor8 = var_Editor8;
		com_Editor8.EditType(11/*PictureType*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (PictureType)'");
		var_Editor8 = COM::createFromObject(com_Items.CellEditor(com_Items.AddItem("(ButtonType)"),COMVariant::createFromInt(0))); com_Editor8 = var_Editor8;
		com_Editor8.EditType(12/*ButtonType*/);
		h = com_Items.AddItem(COMVariant::createFromInt(25));
		var_Editor8 = COM::createFromObject(com_Items.CellEditor(h,COMVariant::createFromInt(0))); com_Editor8 = var_Editor8;
		com_Editor8.EditType(13/*ProgressBarType*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (ProgressBarType)'");
		h = com_Items.AddItem("Value 1");
		var_Editor8 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor8 = var_Editor8;
			com_Editor8.EditType(14/*PickEditType*/);
			com_Editor8.AddItem(1,"Value 1",COMVariant::createFromInt(1));
			com_Editor8.AddItem(2,"Value 2",COMVariant::createFromInt(2));
			com_Editor8.AddItem(3,"Value 3",COMVariant::createFromInt(3));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (PickEditType)'");
		var_Editor9 = COM::createFromObject(com_Items.CellEditor(com_Items.AddItem("(LinkEditType)"),COMVariant::createFromInt(0))); com_Editor9 = var_Editor9;
		com_Editor9.EditType(15/*LinkEditType*/);
		var_Editor9 = com_Items.CellEditor(com_Items.AddItem("(UserEditorType)"),COMVariant::createFromInt(0)); com_Editor9 = var_Editor9;
			com_Editor9.EditType(16/*UserEditorType*/);
			com_Editor9.UserEditor("Exontrol.ComboBox","");
			var_Object = com_Editor9.UserEditorObject(); com_Object = var_Object;
		h = com_Items.AddItem(COMVariant::createFromInt(255));
		var_Editor10 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor10 = var_Editor10;
			com_Editor10.EditType(17/*ColorListType*/);
			com_Editor10.Option(4/*exColorListShowName*/,COMVariant::createFromBoolean(true));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (ColorListType)'");
		var_Editor11 = COM::createFromObject(com_Items.CellEditor(com_Items.AddItem(COMVariant::createFromInt(65280)),COMVariant::createFromInt(0))); com_Editor11 = var_Editor11;
		com_Editor11.EditType(17/*ColorListType*/);
		var_Editor11 = COM::createFromObject(com_Items.CellEditor(com_Items.AddItem("(MemoDropDownType)"),COMVariant::createFromInt(0))); com_Editor11 = var_Editor11;
		com_Editor11.EditType(18/*MemoDropDownType*/);
		var_Editor11 = com_Items.CellEditor(com_Items.AddItem(COMVariant::createFromInt(-1)),COMVariant::createFromInt(0)); com_Editor11 = var_Editor11;
			com_Editor11.EditType(19/*CheckValueType*/);
			com_Editor11.Option(17/*exCheckValue2*/,COMVariant::createFromInt(1));
		h = com_Items.AddItem(COMVariant::createFromInt(50));
		var_Editor12 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor12 = var_Editor12;
			com_Editor12.EditType(20/*SliderType*/);
			com_Editor12.Option(41/*exSliderWidth*/,COMVariant::createFromInt(-60));
			com_Editor12.Option(53/*exSliderTickFrequency*/,COMVariant::createFromInt(10));
			com_Editor12.Option(63/*exSliderTickStyle*/,COMVariant::createFromInt(2));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (SliderType)'");
		h = com_Items.AddItem(COMVariant::createFromInt(100));
		var_Editor13 = COM::createFromObject(com_Items.CellEditor(h,COMVariant::createFromInt(0))); com_Editor13 = var_Editor13;
		com_Editor13.EditType(21/*CalculatorType*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (CalculatorType)'");
		com_Items.EnsureVisibleItem(h);
	exgrid1.EndUpdate();
}
1179
Editors (ImageSize = 16, default)

public void init()
{
	COM com_Appearance,com_Editor,com_Editor1,com_Editor10,com_Editor11,com_Editor12,com_Editor13,com_Editor2,com_Editor3,com_Editor4,com_Editor5,com_Editor6,com_Editor7,com_Editor8,com_Editor9,com_Items,com_Object;
	anytype var_Appearance,var_Editor,var_Editor1,var_Editor10,var_Editor11,var_Editor12,var_Editor13,var_Editor2,var_Editor3,var_Editor4,var_Editor5,var_Editor6,var_Editor7,var_Editor8,var_Editor9,var_Items,var_Object;
	int h;
	str var_s,var_s1,var_s2;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ImageSize(16);
	var_s = "gBJJgBAIDAAEg4ACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjMLjABAAgjUYkUnlUrlktl0vmExmUzmk1m03nE5nU7nkrQCAntBoVDolFo1HoM/ADAplLptImdMYFOqd";
	var_s = var_s + "SqlXq1QrVbrlGpVWsFNrNdnNjsk7pQAtNroFnt0sh8Yr9iulTuNxs1Eu8OiT/vsnsNVutXlk/oGGtVKxGLxWNtsZtN8iUYuNvy0Zvd+xNYwdwvl4p870GCqc8vOeuVtt";
	var_s = var_s + "mp1knyOayWVy+WzN/ze1wOElenm+12WUz/Bv2/3UyyWrzeutux2GSyGP2dQ33C1ur3GD3M4zUNzHdlWjq/E3nGzVpjWv4HA7fRy/Tv2IrN8rPW6nZ3ve7mUlfu20Z8ac";
	var_s = var_s + "vQyb+vY9jasYoDwMm+LytVBDqKG3z8O3Cb8P+mkAuY9cCQ2uL4KaxDKvkp8RNLEjqugnrwQo/UWPzFyeQw5sNLZFENrI4kOqU66pw8uzmOKvTqNqjULJvGL1JO48GtTG";
	var_s = var_s + "sbLdEL3scxLlyiw8dQeoUVxdLTtyKmUjwGlslRPJsnK1HbAKbKCrsQo8uQk/CeP44iaR/ATnTNPLvyxPU+z9P9AUDQVBowiofJXQ6Oo+kKMpIkjztE4TKn4P6JowfgPn";
	var_s = var_s + "wD5/nAjB8AOeAPo0eAA1IAFH07UhAIMpYAVIYFHqBUhwVjV1S1EtQAHxW65V0AZwAeuQAnwB5gAPYViEDVhwAHTQBkCjB4gOhwDmCyhH0sACAg==";
	exgrid1.Images(COMVariant::createFromStr(var_s));
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s1 = "gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL";
		var_s1 = var_s1 + "UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBU";
		var_s1 = var_s1 + "rGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3";
		var_s1 = var_s1 + "NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDsY";
		var_s1 = var_s1 + "YDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVm";
		var_s1 = var_s1 + "WCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVo";
		var_s1 = var_s1 + "WiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiS";
		var_s1 = var_s1 + "e41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbhF";
		var_s1 = var_s1 + "CcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==";
		com_Appearance.Add(4,COMVariant::createFromStr(var_s1));
	COM::createFromVariant(exgrid1.Columns().Add("Editors")).Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
	exgrid1.BackColorHeader(0x4c6c6c6);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		var_Editor = COM::createFromObject(com_Items.CellEditor(com_Items.AddItem("(ReadOnly)"),COMVariant::createFromInt(0))); com_Editor = var_Editor;
		com_Editor.EditType(0/*ReadOnly*/);
		var_Editor = COM::createFromObject(com_Items.CellEditor(com_Items.AddItem("(EditType)"),COMVariant::createFromInt(0))); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
		h = com_Items.AddItem("Value 1");
		var_Editor = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor = var_Editor;
			com_Editor.EditType(2/*DropDownType*/);
			com_Editor.AddItem(1,"Value 1",COMVariant::createFromInt(1));
			com_Editor.AddItem(2,"Value 2",COMVariant::createFromInt(2));
			com_Editor.AddItem(3,"Value 3",COMVariant::createFromInt(3));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (DropDownType)'");
		h = com_Items.AddItem(COMVariant::createFromInt(1));
		var_Editor1 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor1 = var_Editor1;
			com_Editor1.EditType(3/*DropDownListType*/);
			com_Editor1.DropDownAutoWidth(0/*exDropDownEditorWidth*/);
			com_Editor1.AddItem(1,"Nancy Davolio",COMVariant::createFromInt(1));
			com_Editor1.AddItem(2,"Andrew Fuller",COMVariant::createFromInt(2));
			com_Editor1.AddItem(3,"Janet Leverling",COMVariant::createFromInt(3));
			com_Editor1.AddItem(4,"Peacock Margaret",COMVariant::createFromInt(3));
			com_Editor1.AddItem(5,"Steven Buchanan",COMVariant::createFromInt(2));
			com_Editor1.AddItem(6,"Michael Suyama",COMVariant::createFromInt(1));
			com_Editor1.AddItem(7,"Robert King",COMVariant::createFromInt(2));
			com_Editor1.AddItem(8,"Laura Callahan",COMVariant::createFromInt(3));
			com_Editor1.AddItem(9,"Anne Dodsworth",COMVariant::createFromInt(2));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (DropDownList - single column list)'");
		h = com_Items.AddItem(COMVariant::createFromInt(1));
		var_Editor2 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor2 = var_Editor2;
			com_Editor2.EditType(3/*DropDownListType*/);
			com_Editor2.DropDownAutoWidth(0/*exDropDownEditorWidth*/);
			com_Editor2.AddItem(1,"Nancy Davolio",COMVariant::createFromInt(1));
			com_Editor2.AddItem(2,"Andrew Fuller",COMVariant::createFromInt(2));
			com_Editor2.InsertItem(3,"Janet Leverling",COMVariant::createFromInt(3),COMVariant::createFromInt(2));
			com_Editor2.InsertItem(4,"Peacock Margaret",COMVariant::createFromInt(3),COMVariant::createFromInt(2));
			com_Editor2.InsertItem(5,"Steven Buchanan",COMVariant::createFromInt(2),COMVariant::createFromInt(2));
			com_Editor2.InsertItem(6,"Michael Suyama",COMVariant::createFromInt(1),COMVariant::createFromInt(5));
			com_Editor2.InsertItem(7,"Robert King",COMVariant::createFromInt(2),COMVariant::createFromInt(2));
			com_Editor2.InsertItem(8,"Laura Callahan",COMVariant::createFromInt(3),COMVariant::createFromInt(2));
			com_Editor2.InsertItem(9,"Anne Dodsworth",COMVariant::createFromInt(2),COMVariant::createFromInt(5));
			com_Editor2.ExpandAll();
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (DropDownList - single column tree)'");
		h = com_Items.AddItem(COMVariant::createFromInt(1));
		var_Editor3 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor3 = var_Editor3;
			com_Editor3.EditType(3/*DropDownListType*/);
			com_Editor3.DropDownAutoWidth(0/*exDropDownEditorWidth*/);
			com_Editor3.Option(57/*exDropDownColumnCaption*/,"Name¦Title¦City¦Phone");
			com_Editor3.Option(58/*exDropDownColumnWidth*/,"312¦¦¦96");
			com_Editor3.AddItem(1,"Nancy Davolio¦Sales Representative¦Seattle¦(206) 555-9857",COMVariant::createFromInt(1));
			com_Editor3.AddItem(2,"Andrew Fuller¦<b>Vice President</b>, Sales¦Tacoma¦(206) 555-9482",COMVariant::createFromInt(2));
			com_Editor3.AddItem(3,"Janet Leverling¦Sales Representative¦Kirkland¦(206) 555-3412",COMVariant::createFromInt(3));
			com_Editor3.AddItem(4,"Peacock Margaret¦Sales Representative¦Redmond¦(206) 555-8122",COMVariant::createFromInt(3));
			com_Editor3.AddItem(5,"Steven Buchanan¦Sales Manager¦London¦(71) 555-4848",COMVariant::createFromInt(2));
			com_Editor3.AddItem(6,"Michael Suyama¦Sales Representative¦London¦(71) 555-7773",COMVariant::createFromInt(1));
			com_Editor3.AddItem(7,"Robert King¦Sales Representative¦Kirkland¦(71) 555-5598",COMVariant::createFromInt(2));
			com_Editor3.AddItem(8,"Laura Callahan¦Inside Sales Coordinator¦Seattle¦(206) 555-1189",COMVariant::createFromInt(3));
			com_Editor3.AddItem(9,"Anne Dodsworth¦Sales Representative¦London¦(71) 555-4444",COMVariant::createFromInt(2));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (DropDownList - multiple columns list)'");
		h = com_Items.AddItem(COMVariant::createFromInt(1));
		var_Editor4 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor4 = var_Editor4;
			com_Editor4.EditType(3/*DropDownListType*/);
			com_Editor4.DropDownAutoWidth(0/*exDropDownEditorWidth*/);
			com_Editor4.Option(57/*exDropDownColumnCaption*/,"Name¦Title¦City¦Phone");
			com_Editor4.Option(58/*exDropDownColumnWidth*/,"312¦¦¦96");
			com_Editor4.AddItem(1,"Nancy Davolio¦Sales Representative¦Seattle¦(206) 555-9857",COMVariant::createFromInt(1));
			com_Editor4.AddItem(2,"Andrew Fuller¦<b>Vice President</b>, Sales¦Tacoma¦(206) 555-9482",COMVariant::createFromInt(2));
			com_Editor4.InsertItem(3,"Janet Leverling¦Sales Representative¦Kirkland¦(206) 555-3412",COMVariant::createFromInt(3),COMVariant::createFromInt(2));
			com_Editor4.InsertItem(4,"Peacock Margaret¦Sales Representative¦Redmond¦(206) 555-8122",COMVariant::createFromInt(3),COMVariant::createFromInt(2));
			com_Editor4.InsertItem(5,"Steven Buchanan¦Sales Manager¦London¦(71) 555-4848",COMVariant::createFromInt(2),COMVariant::createFromInt(2));
			com_Editor4.InsertItem(6,"Michael Suyama¦Sales Representative¦London¦(71) 555-7773",COMVariant::createFromInt(1),COMVariant::createFromInt(5));
			com_Editor4.InsertItem(7,"Robert King¦Sales Representative¦Kirkland¦(71) 555-5598",COMVariant::createFromInt(2),COMVariant::createFromInt(2));
			com_Editor4.InsertItem(8,"Laura Callahan¦Inside Sales Coordinator¦Seattle¦(206) 555-1189",COMVariant::createFromInt(3),COMVariant::createFromInt(2));
			com_Editor4.InsertItem(9,"Anne Dodsworth¦Sales Representative¦London¦(71) 555-4444",COMVariant::createFromInt(2),COMVariant::createFromInt(5));
			com_Editor4.ExpandAll();
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (DropDownList - multiple columns tree)'");
		h = com_Items.AddItem(COMVariant::createFromInt(100));
		var_Editor5 = COM::createFromObject(com_Items.CellEditor(h,COMVariant::createFromInt(0))); com_Editor5 = var_Editor5;
		com_Editor5.EditType(4/*SpinType*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (SpinType)'");
		var_Editor5 = COM::createFromObject(com_Items.CellEditor(com_Items.AddItem("(MemoType)"),COMVariant::createFromInt(0))); com_Editor5 = var_Editor5;
		com_Editor5.EditType(5/*MemoType*/);
		h = com_Items.AddItem(COMVariant::createFromInt(3));
		var_Editor5 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor5 = var_Editor5;
			com_Editor5.EditType(6/*CheckListType*/);
			com_Editor5.AddItem(1,"Border",COMVariant::createFromInt(1));
			com_Editor5.AddItem(2,"Single",COMVariant::createFromInt(2));
			com_Editor5.AddItem(4,"Frame",COMVariant::createFromInt(3));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (CheckListType)'");
		h = com_Items.AddItem("193.226.40.161");
		var_Editor6 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor6 = var_Editor6;
			com_Editor6.Mask("{0,255}.{0,255}.{0,255}.{0,255}");
			com_Editor6.EditType(8/*MaskType*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (MaskType)'");
		h = com_Items.AddItem(COMVariant::createFromInt(65280));
		var_Editor7 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor7 = var_Editor7;
			com_Editor7.EditType(9/*ColorType*/);
			com_Editor7.Mask("`RGB(`{0,255}\\,{0,255}\\,{0,255}`)`;;0");
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (ColorType)'");
		h = com_Items.AddItem("Tahoma");
		var_Editor8 = COM::createFromObject(com_Items.CellEditor(h,COMVariant::createFromInt(0))); com_Editor8 = var_Editor8;
		com_Editor8.EditType(10/*FontType*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (FontType)'");
		var_s2 = "gBHJJGHA5MIwAEIe4AAAFhwbiAliQwig7ixFjBQjRbjhljxwkB7kSFkiQkyblCllSwli7lzFmDQmTbmjlmzwnD7nQBnk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
		var_s2 = var_s2 + "Vq1XrFZrVbrldr1YhgAEL5AgBhj/AAssMJthABFof4JDhIWCgYKDBATFT8M6hUIFAQAEQCCDwYF/QoWDZCRBgOKgIYHCQXMisKBAEQAAgOBZaSgQhjERANKQiZhIWamY";
		var_s2 = var_s2 + "yIBQ6FzcNKxQLJT4ADA4RjwObAAidBYdHwABQgUxMQYZEI0cD4OgnYKaKyzIRFNQx2YCKoFHScYD0ADXQwUAgwLoLQDqaCWBJoNQ9NBxFJTVQORgiarqSABbamGwtDAw";
		var_s2 = var_s2 + "BUWhQmqYALnOFQvGYPA4m6AwKhkZxKj2PBWC0SZCgmVY6CwIJgieBAniubRKHgaYgiwQwGiCfxGDWbBRmGZYIi2VwGnAexxGUSwUFiaR+hQPbBgOCoLCIHh4DAARCmQG";
		var_s2 = var_s2 + "4AlgNxuhwWgpFAEQUhuOxOk0NrhAaQoBmgPYdFSIZPjYGYbn+HhgEoAA7HMBIOjUM51AoPojHkEwVlET5slgWZtAEUBdjeSoeF6X5/rQRRSi+QB6GychsEAfZshKYABG";
		var_s2 = var_s2 + "QZorlAOgMBqEgAjYHB2jqSoigmYBLk+QZnBqGhggAEwImgbojgoIwSE+MxUHiS4REQCQWluD48B+JJoL+YQikuaI9AALgLmsJQfnSdAvDkCJEhIIIBgOegLEiPBqCyCA";
		var_s2 = var_s2 + "AjcCwgAAIJBhQBQkHGL4gDaNBokkZQMiwUAuioJQiCAQYsHMcwwEIeoigAYIogsGIwFKIYICIWguEoPgQhsawBASGgwCuJwLH8K4LigAIaDwbxMAOKxbisPwfASQATFA";
		var_s2 = var_s2 + "SoagIEYwgcSoKGiAA/mEdIuiGPxCmObIlhMIJNHONxFH8EpPCGeB+noEpBBSSRjCsPZEiyKhgjAH5whSdLEjwDxjC8TxVEMFRzFWJJZBUSI0gQEQLBOM4VHkIg1D0CAJ";
		var_s2 = var_s2 + "DQNg/p4AAdoC";
		h = com_Items.AddItem(COMVariant::createFromStr(var_s2));
		var_Editor8 = COM::createFromObject(com_Items.CellEditor(h,COMVariant::createFromInt(0))); com_Editor8 = var_Editor8;
		com_Editor8.EditType(11/*PictureType*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (PictureType)'");
		var_Editor8 = COM::createFromObject(com_Items.CellEditor(com_Items.AddItem("(ButtonType)"),COMVariant::createFromInt(0))); com_Editor8 = var_Editor8;
		com_Editor8.EditType(12/*ButtonType*/);
		h = com_Items.AddItem(COMVariant::createFromInt(25));
		var_Editor8 = COM::createFromObject(com_Items.CellEditor(h,COMVariant::createFromInt(0))); com_Editor8 = var_Editor8;
		com_Editor8.EditType(13/*ProgressBarType*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (ProgressBarType)'");
		h = com_Items.AddItem("Value 1");
		var_Editor8 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor8 = var_Editor8;
			com_Editor8.EditType(14/*PickEditType*/);
			com_Editor8.AddItem(1,"Value 1",COMVariant::createFromInt(1));
			com_Editor8.AddItem(2,"Value 2",COMVariant::createFromInt(2));
			com_Editor8.AddItem(3,"Value 3",COMVariant::createFromInt(3));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (PickEditType)'");
		var_Editor9 = COM::createFromObject(com_Items.CellEditor(com_Items.AddItem("(LinkEditType)"),COMVariant::createFromInt(0))); com_Editor9 = var_Editor9;
		com_Editor9.EditType(15/*LinkEditType*/);
		var_Editor9 = com_Items.CellEditor(com_Items.AddItem("(UserEditorType)"),COMVariant::createFromInt(0)); com_Editor9 = var_Editor9;
			com_Editor9.EditType(16/*UserEditorType*/);
			com_Editor9.UserEditor("Exontrol.ComboBox","");
			var_Object = com_Editor9.UserEditorObject(); com_Object = var_Object;
		h = com_Items.AddItem(COMVariant::createFromInt(255));
		var_Editor10 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor10 = var_Editor10;
			com_Editor10.EditType(17/*ColorListType*/);
			com_Editor10.Option(4/*exColorListShowName*/,COMVariant::createFromBoolean(true));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (ColorListType)'");
		var_Editor11 = COM::createFromObject(com_Items.CellEditor(com_Items.AddItem(COMVariant::createFromInt(65280)),COMVariant::createFromInt(0))); com_Editor11 = var_Editor11;
		com_Editor11.EditType(17/*ColorListType*/);
		var_Editor11 = COM::createFromObject(com_Items.CellEditor(com_Items.AddItem("(MemoDropDownType)"),COMVariant::createFromInt(0))); com_Editor11 = var_Editor11;
		com_Editor11.EditType(18/*MemoDropDownType*/);
		var_Editor11 = com_Items.CellEditor(com_Items.AddItem(COMVariant::createFromInt(-1)),COMVariant::createFromInt(0)); com_Editor11 = var_Editor11;
			com_Editor11.EditType(19/*CheckValueType*/);
			com_Editor11.Option(17/*exCheckValue2*/,COMVariant::createFromInt(1));
		h = com_Items.AddItem(COMVariant::createFromInt(50));
		var_Editor12 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor12 = var_Editor12;
			com_Editor12.EditType(20/*SliderType*/);
			com_Editor12.Option(41/*exSliderWidth*/,COMVariant::createFromInt(-60));
			com_Editor12.Option(53/*exSliderTickFrequency*/,COMVariant::createFromInt(10));
			com_Editor12.Option(63/*exSliderTickStyle*/,COMVariant::createFromInt(2));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (SliderType)'");
		h = com_Items.AddItem(COMVariant::createFromInt(100));
		var_Editor13 = COM::createFromObject(com_Items.CellEditor(h,COMVariant::createFromInt(0))); com_Editor13 = var_Editor13;
		com_Editor13.EditType(21/*CalculatorType*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ' (CalculatorType)'");
		com_Items.EnsureVisibleItem(h);
	exgrid1.EndUpdate();
}
1178
Re-order the cell's caption, icons and images/pictures

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

	super();

	exgrid1.BeginUpdate();
	var_s = "gBJJgBAICAADAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEahkZAIAEEbjMjlErlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrlTiFdib/sNjr9gs1nldlrlqtFtt0stlguNvulyh91ud1vVVvNuvt7wFHr9/vl3luEwOJouIq+Dw2KyGRyWTymVy2XzGZzUuiw+lmej0gkUaksljaAnmDc";
	var_s = var_s + "D/cEbf7w1+ufD/fEbeB028bYAO3enB6AB++4EoA4A4sb4vHjXJ4nG5vKAHA4ca6XBjTAD/Y2x/eB/jcB";
	exgrid1.Images(COMVariant::createFromStr(var_s));
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("ToLeft")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("ToRight")); com_Column1 = var_Column1;
		com_Column1.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column1.Def(34/*exCellDrawPartsOrder*/,"caption,picture,icons,icon,check");
	exgrid1.DefaultItemHeight(32);
	exgrid1.DrawGridLines(2/*exVLines*/);
	exgrid1.HeaderAppearance(4/*Etched*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Caption");
		com_Items.CellImage(h,COMVariant::createFromInt(0),2);
		com_Items.CellImages(h,COMVariant::createFromInt(0),"1,2");
		var_s1 = "loadpicture(`gCJKBOI4NBQaBQAhQNJJIIhShQAEEREAIA0ROZ6PT0hQKYZpIZDKBJkIgKByN5mNJsMsKPABVqXBI4KjrD7HL6GWKPJKiCIhMiySidKxbOzZZJWMLsG";
		var_s1 = var_s1 + "L2FqyLjZMonNa2CyiZDOUqsQqUEq0ZCNISFXDIFxzZ4hUrbdrefZ/fz3ZgzZ75Tz3XjvHZnZznPieb55AKgAqmRyOOzEhR7XirWaWQQMTa+QIhDbZOZAAoYUCPDAQG7F";
		var_s1 = var_s1 + "XI4JRrNCoIRdPyyFr0AYifDUKZ+PCufK4RReALLUbtdBHSrGTCCNKqT4MbRqUxxQx+CAAEQ2VCBbxqGaLYDZNgzFbCbLDarRCrqMYMM6cWqpHKUDqhZjnVijEoLcp0FC";
		var_s1 = var_s1 + "jVg2OYhTjN/QWk4bo4iseBsAcABIDoPA5g2HgADIkQfDCNxwkEQYnFmAIAB4OJHGcKAPioGRKFKdh2g6UB8iiZ5QkYQp3gKWhDlsWYmAARBcgCIAUniVpmiSA5AF3A4w";
		var_s1 = var_s1 + "G8P41nGWwDDAW4MAAIpSG+bRzBoGx3AeCJhh6C4ljCUJGnSRBUFKAIQA6EgIHMWBoHqYgAngHJDCALBmhCCAfHOARAScUBvAmc5zHYXxoguXQ8DEMIAH8dI8HmP4/AyQ";
		var_s1 = var_s1 + "JAEAYAoHqRByEQGJiECBAzAkKIpBYNIcikAp8kcZhDn4EBChmUoMgqHIqhiWoIgaDImgyVQImaRw/F0EZGCcSw3DaM4Kn6GBBhwYYZDGZo3C+RgOAmNQnhYeYqgsTZen";
		var_s1 = var_s1 + "EVgSFYLo2CydhGg4OROF2HJjlydR7i+cJjDGFo8BgHgVl4Po+DufJRgcbQOlkCxyKuCJNAsdwIhSC4mgieYKkeHJWD0Ih8BQaYYkkMYppwTg0EsFhJC0SxEkgeodDSFp";
		var_s1 = var_s1 + "TheV5SDgLBIieRIigyVo5CeOpymoWhtEQfRACMR4zE2KxRnsV5dF2ehFCeC50G+GBkBiZgaCUGYnBySY+BsdIuEkJJJDSSRsjGeYqEWOhliYVYOHWDYbFuNhFmcS5siq";
		var_s1 = var_s1 + "bZrnGLYOh0DpPhyXo7D8d4ZHGXR1CcdRAnsMh7GELwIHiSx7CiXY0HYNZ1nOcoPg0SB+CWLwwGqUpbFAQJwEeEImlCVQwk4cJxAiFRIhMS4ulGYRRlmMQVDEHZxG8YxX";
		var_s1 = var_s1 + "hIaQSniLhIiaGwnDiJZGicZYnjeZw8D6OoSkWEIthwI4emudwtGwepNhuLQ3F8Zojm4bQrhALo0D0HZwCcJwoimeI0ASWR6CAJkJQORfAiFcLIXgahaiGCgMsKIpw8DP";
		var_s1 = var_s1 + "H8H4Pj2BhjrBMGQGYfxFjuEGIsB4rxbg+DSFsPAxBtChHoAQaYmRojVG0D0e6JALjVD2K0F4qxfjjGyPIRY/QXi1AOAILwFQGgOF8KYDwOgdBsHmCYcobRtjIHoGgZAm";
		var_s1 = var_s1 + "Bgi7HgPcWoHxTAmCQCcVwTgDB+FYJgfQMAOj0F2PoZgkRMjeKQLkWATwdDzEkPMF4FxzAXDGJYfAlgPAuB+FkeIWxuizC0LkUwvQbD9ByHIDouxvBCBgCMCAvh4CXCME";
		var_s1 = var_s1 + "gSA0BJDEH+AsfwMgfjhDeL0Ro/xkgvH4JMXA7RYjyAONgPAWhfjyCuBEcAFRSAWE4BIOwEAUgTCaIYfA4wSBUAcAsDowQOBFA4J0Hg9h2B4EmCQTYVBdB0FwIwU4rByj";
		var_s1 = var_s1 + "JGmHIRQ8gJAKB4IoZgShaDKAQOUIolQkjVBuGoSw6hugaFaJoeoWgajaDKDoO4dB5j0FcJ0Zw1Ang3CQDEdgNQnA6EmHgGw4QuCiCSAKFIXBgilEwGcLAZAtDmC0N0Wg";
		var_s1 = var_s1 + "LhaApFiK0HgfxniuGKP4GIvhrhhGgHEZgaRtB5GSBUcIhg5BnHkOAeQFB5A6DiEEao2xoDHH0KIQ4bxYBfFEP8RogB5BfA8AQHwvwqAZBIBURgCgwgPAqAkKYCgfgTHC";
		var_s1 = var_s1 + "BwDIegcgjFUDQXQPQzA4DsCkDwnRABNAwE8OgTw5C6AkJEPgPRSg+DqCANoMRBjuHUKEJglQWDrHYOATg3BuDGDWEMa4CQbj3HMB0Z4Pw5jLFuCAWYsB/D2DgBEUQmB1";
		var_s1 = var_s1 + "iuDEMkfI0hUCyEkPIfwihKgqGsGobIGhNhfFGGoZY6gDDuGWDceANA1A2DyDUM4txaA/EwG0bo0wTDXEcH8Sg/BcD2GSHQC4pgtiuGOOkNIRg3hbG+MIGYjhzgaBeHwL";
		var_s1 = var_s1 + "4FgHAMAYFIfgJh4nJBQGkfAwRNiFAiO4KIlhoiKFiOoO4EwPiYGONUE4RATg6BOMcUwEApgZGmP4X4lxnjYGaLIZg7RNirH6FQG47xZCAC6OQLK5B1BYF8LgOQZAqh0F";
		var_s1 = var_s1 + "qGcBo/xMhpE6HsXomQwBKCwIcfA6w/DxA+IURAIxwgmBSCMKoJgOhFD0JMeIkQdhREwFAEQKRFioAYKkJIqQlhpBYFEPYUQui0GCGgFI9BlCOAUDoS4nRhA7HOOkFYdg";
		var_s1 = var_s1 + "uhgEgGYUgZB2DeE6IIYIMQEgyAiPYHgYgnBlFiNsPYghKiODqISfddhPgVEOCQE4hg5iWHWPEfwfB3BgFYPkAIWQPAOC8BIb1MwrD+QsNEQ43ACAMAKGUQgsBhBoHCGU";
		var_s1 = var_s1 + "SNrxBBoEqNgGo8QMAJF+MMOwRxGCOFUBwHYdhODvDwMEBILgk21AKKkOI6RrgyD6LIDoJxNjkDUOQF4yAXgoC4FMXgqhKCiE4KACQow9D5CoJgLQiA9CwEMLUYwOxmhA";
		var_s1 = var_s1 + "FaEAdoSwdBBF0CEPQEWWDrGOBoEgGhTAaDyBsPoNgXA4CmHIWw+guCDCSJsNIjxsgADcNQPg2hxC2FKLACo2hNDFEMMcKw/BeCcE6LYXoGRvDJGCN8GIxgUjYAyOUbg6";
		var_s1 = var_s1 + "BpDrB0OYWw5AgjtGSOoEofAgjRG2NgY4+RRCfBeKUN4qQvi7H+HAYAchwCOCWAcQQZBBFiG4EIUYww3CFFuEQSgRAlBdDMIwCQiRrCMGCMcIwxhuiKDeE0PAlxCC8GFZ";
		var_s1 = var_s1 + "QS4YhIgaEkJYS43hLAxE8EkTodQUBbBWMcHoNxy0lHqOETYyAeDeD4I0AQlRhD0G2E0O4PgKCjHeEoSgmBKCGEsBUS4vxUA8C6M0K4ox7irD+O0VouhfD7FUA33I+gmi";
		var_s1 = var_s1 + "XE0IsLY1gtipG0CQbQLQPjFDuDQHw2RtjFGsK0bw4x9j0CcO8N4/RtBnhSgvAcBehmAOh0ANgiAhAnhih8gwh1gbhugRhSBRhDhjh2Bvgyhfh3gPhThOBIBOA6B9gsAY";
		var_s1 = var_s1 + "Aah+BdhlBWBtAuBoBThtB8gnhFheAlhcByh6BKhvAahNBnh5B1gJB1g+hCAsgAAbB1gOguAJhIAoAmhFBvqzACABh0BlgFggA6CaBvBQA7BDEHAaA0AABoAcgGBEACg5";
		var_s1 = var_s1 + "AAgYgZgLAIBKgFBBhWh9AggCAIBoBNgAANA9AJhwABBxBwAKAYAAALCJu9ADAYAFBLExBEAiBEgmBEgxBEANBENbhmgJh5gJBNgJgzgJBfgRAvAhpKhnAQg5AIpkARAS";
		var_s1 = var_s1 + "A/ASKGAPBJhZBIAdBJAbARh7n4BIhshkAnAZDVgkBZAUg5AWh5AVB5AEgFAbBFA4BFACglA5hlAfAVAChVAtBVAig1AQh1ABBNB+gaAcgUA7AqAbAWgTg2gfB2gSB9AI";
		var_s1 = var_s1 + "BdA1BDh2BHAnBdAZg6Apgdh+h0g7lCBoAXh3BJBugahkBwBihkBkAsBYgtg/h7gNATBNgkhIgUhBg0gzI6BZgJRJglhvAvARgrAtBrALBbBFh2BxB2BZh9hFAcgOAcAd";
		var_s1 = var_s1 + "AcgCgcBzhcAVB7h9g5BlgxhohsArgDh5A8heA8BKh8hMB8gzB8APgPBmAdByAShQAVgUAWMMAaAThuATgpAWhNASgLARB3ASAwg+AsEwhiAoimBTBxhUAJhEAJhVhJBP";
		var_s1 = var_s1 + "hSBTBSBjgyhvBPlWAbgUgfhRhYBUAkAoBTAoBQgrgygfyhgTBShXBSgwhUh0hWgKhTguhQBphRAdhWAjhoBvg1gQA0g0A1AKACAehLgegzgrgmhcAmBahmB+A4AihzAh";
		var_s1 = var_s1 + "hLA6ArAFBrAfAbAyhbAPh2hYB7BzB8AOBDgwhTg+hnALAXB8hXBph3AxAPA/BPA2gLg7A8hxg+AlAXANB9ARB+A6B+h5gBgEBAg9BLhFBBAUghAWAhANhhhsgRgBARBv";
		var_s1 = var_s1 + "gjAUgiALhjBpBig8hjhHgSA1ASBqgvA4gkhzAmgkglhRgnB7hlh8BKA0hNgxhMBtg7guh5gjAzhPAtB/BJgBBmhhBvAdhDAighg7g2glAzBlg+AVhUAVAphVAHhqURAG";
		var_s1 = var_s1 + "hvh7g0AgAahvA2FigMg2BhhaBrg6AMAegTA6AVi5B6BlgehNgMgoA9gigMAZA/hBgMgGg+hfgbAvAegSgbApgegXhZhqBagzBYgogfgwB/Cwg7hgh/hDA/gTg5B+gNh/";
		var_s1 = var_s1 + "gXh6B8hbh8B/hEhfASg2h/BHh6BfhZBbhuAjB/g9h7BbBth0h/gbh2Ayh/hAh+h/gnh/Ajh3AwgnA/gigPBzBPBVBegigfA1h8BPhshr1HgNhvAxB/hoBdgGgBhZh3sU";
		var_s1 = var_s1 + "hMh0gmh1hLg9hIgchQB7BthugQh5hbgugth6BTgLi/ALBkocoPgCA/BQBfhmh+hXhzA/hzh+g7B1hbgch/heh4gvhEg3hsBfBOgbA2B9ArhrANhPTSKXAMg7A+Bhh4Af";
		var_s1 = var_s1 + "gZh/AVhdg/hzB7BTBsgfh5B+gdhZh/g7oQBogSh/BMrPhUhYBshvheBfA9AThph7ANhvhNgog/hZBNg/hdhvgIAxhjB2hHBhhOBtg1gPBCg3hZBDAmhDg0gfhNhAg8xM";
		var_s1 = var_s1 + "hgBiBvkig7BGgKBHBDBfBJhDBWhPg6BPxKAvBOBUhPB5hMhLhAh0mXBXAFhhB/A3hXBIhwB9AAgUBKg4AHA8AMgdgDhuB8hGghhcACgUAAgOA4AAA8AQABh2BQAegHA2";
		var_s1 = var_s1 + "BOB9BYhxhrBAA/hfg7hah4BCBrAxgABkAdAcK4BtgsAshdhZCSAVglgFgbASgeB3AQAPhNhIFJ2TBnhahchDBBh9gQBogABSAlhhBUgbBLANBvA+hbh+gAgWBzB5BXBW";
		var_s1 = var_s1 + "hFh/knAAADgLAkgiAggqAsAEhigrA1g2AKAqgKBfAZgdh9g2BbhugjhUgCgtgBALAtAYy+AWhEgmgAhFgSAaT4gAASgaATAahIgxACB9ghhGgfgmBoAEB4gIg/ANBagx";
		var_s1 = var_s1 + "AkhGBRA0gs3yBaBjTNAFBCBFBghCACAJAlhFh+AAAEgCAQgQg+h2g7Bbhdgdgdhdhxh7gGvUhbBHhah/B5ATAzh3BOtAWchuh3hOA9h3XvAfgbh0hfh8Brg6hegDB9Bt";
		var_s1 = var_s1 + "nWDQByA4gkAGJIAZAEgcgFh8gvBJBSAdh0BLhqBLACAABHBtgwB2x8yngsg+gAByA2gAB8hxhvh6Byg+AFBp4nBShMgmBzANgAB8ACBZADARBLPVhQh7uKBOg/B7hqBU";
		var_s1 = var_s1 + "gphbA+AfALAygQYohXBZi2AThYhcAeBPhAuwhdgIBEgiB7B9YzhDA0AvAthIBAg8AeBfApAohKA/B2BRA+BYm/gGBCguAG5JhAhjZLAgAvgvhPg1gYgehmAbgLZQhDAj";
		var_s1 = var_s1 + "AjgjgOh5heAxzgABhx5Wgig0AfgQA/B13iBgBchVgrhXgVXFhbh9gKBdgugUAbXDgygsg+A/B+B8AqA6g6hahbBsANBmA/hCgmhegeSVgeADBwB+BKg+BnA0hwBxBihF";
		var_s1 = var_s1 + "h7BxBxAxAIgGACAiAYAMAKA/BPgnguAMgPBbBngak8B+hsgqAVBag2hnBOAoBWAJhYgsA2AchvAHhIEMAmgmAmAkAjhHgPB6hUBkhSAqApgpjehsBcgZhAhuAYBOBdAu";
		var_s1 = var_s1 + "AXAwgpgPBMBwAOB5AjB+AeAYBwANACghgnBTgph3h0B0BMB4h91BgMAJhxAmgSByhshbajBaWPgTgCAYA4ACWGg3g/AyBfgzhnhPBxA1hrhXBshehChChRBQBQAgAeAF";
		var_s1 = var_s1 + "BNAtg7h3hHB7h7B7A9BOgHBDgggfhrBEBHA+h9gRB+68hPAfg3huAoAzbAAiAGBZA7B2htAqB7hYgxgwhVgehOVIFFBRgchLhhgAA7BfBthdB9hkhkgkg0hyBlAKhBg3";
		var_s1 = var_s1 + "ABAgAZBEg4AcBWAGYIhzgXAEgDA6gmhphwAtgRBYBmBwBwBQAThBA3gvBXn3hrBDBuBcA/BugnANgEBLhKhCgzhwYzhAAiARAohGgHgggJgMg9gMBrA4g+A6BoAUhchu";
		var_s1 = var_s1 + "g3BBgAhZAIBPBNApAFAFAFh6hZBZAZAWhMgkAkBEgyApb1BOAqBGBIBmATAShAhsgOgHBuhxh4gsBOhph2ArAfBmBLCWgigxgOhZhshtAMBrghhDgHgjgfrIB5ABBCBQ";
		var_s1 = var_s1 + "AcAgV4gPhcgIBWhVhXgnhBApA4hVBXhngFhTLMgcgOhRgtAMh+hFh2h2gohnAsgshCg+rTAGgNhcgjgvwhAsA0BOA8gV4dBN8qBJh68rgUgoB2BdA6h5hTABhMgWAxhT";
		var_s1 = var_s1 + "g9A2guguhJBDB0g4B5hzBmsvhwgwgzgog4g4gDAmAygPBUhWAqANgbg3AmBAI2AOBzhDA8hmBKgxBIAFgAAJhbCuhGgKl7BwhwAmgcAKAigDh2gZAJArABANgDBegx5W";
		var_s1 = var_s1 + "gZADgwBGBEAkBegAg2AYg9gwKABtBmhPABBoBZAPgFhHBMAPhmB/B6bdhZhdhdhth1hh8lBGgIBEAUgOhEgKgVgrA0AngaAaBiBIgyB5A3gLgXBcAEhlJjAJgEAsAJAk";
		var_s1 = var_s1 + "gqqlhththThrhrhrBVBTAWhZhDhPhThIBWARg+Bn7Sg7A3gDhZAvAphEgegGgehuhpAJAyAJBZQ9gBggAAgAgwBDg3BCAAhkgTh0hkAAhLhthWhTgqAqhJBIAhhmAEgq";
		var_s1 = var_s1 + "gqgCgbBiB6h9BD8zhxhmABrOhfAqhMg7ghwiA4BSJNhMgqg4BEhkY8AjBphNATBaA6AtAwBYgEACBBiEBABIAggbg7gmh1AlglAlgahXBmhmB1BgBPBEAmAnwZgogyhV";
		var_s1 = var_s1 + "gmgABcgxsNBUAWAAB2B4AHBvA5h3B3ggAQBIAwg+hPhSgqBQCEA/gQBQA2htKUgfAJhFgkhkAYBtAIAMHpgbAasHg0gVAsBhhIgbBVAxAi/MgFBnAZBDBpB2ABgwADBW";
		var_s1 = var_s1 + "h3gchuBwBxhrhkB1BbhWAFAP5mBCghgTgnA8AgBV+OgqhSg2g1g3AnBOAcg+hNAYgbhHBRg8g6BjhjhjA2ADgdAdhTg/Aeg/hvA6h1h7A2gChLhKfjAdAxhahigYgMAG";
		var_s1 = var_s1 + "Ashzg5AAaYh/AGAjh2AChABwBOgwXnBFh/ApAzgT2GBZBGvTBHAjBGhAF0wAgsDi1w4Nza2UkyBUYiA+maxm6g1K32ad3s2Qg8AKlRaBlKD1wKE+rCCjSObAK8iGsFOr";
		var_s1 = var_s1 + "C0vR0lTeDV8IUatHu6GO2jkAHgAwgfgC5TYrVsKk2Y3MBRcpBQkgmOUuznY2FqKy0WSymXeX0ASwel0olHI5AwJ1mx0gL1mTXU6XS8Vpdj4hyg8BemDYZHqMFOUyYZTW";
		var_s1 = var_s1 + "P1WJ1CN1MTR6gH4cmysjKr2mlCqn3GuR+jDoJHGWlKkU+ajXpgg1yq2FQDFigSEBROwkCKnQwGwjliIU45x2HGyIB4dnM0UmUC+PhaLxefwOdia5zMT3+8wwYCQmEwdi";
		var_s1 = var_s1 + "4vQKqHKvigKHoKnc9Rs7GMDUOhhGOnAYjWkzKKRGyxsDUA01QCw0QCOF0uh0OkfRUMMbyRNwTBiCYZwKMIYyZAUkSlBYkxsCYAAHG4qwCBwMQfBYlxsNgsDhLEgwHA8P";
		var_s1 = var_s1 + "iPNg1ygP4uywIgMSwK4zSQG46BnFAATDJcL3IHM6DQBsPR3O83j/AsJyGH8w4ZJY5TsN8EAdFojTwJ0AAoA4MgATIMDqAcrQPMEwTDBgVy0LYtiuK8qyrFs6QtCocnLC";
		var_s1 = var_s1 + "s8wAGAChOGM+CZJ0HAaoQHQYocBiaHtJT3LEfgCLYIgQNYgw4IQiSaBcAABBEAB/DAXS4HgPAgLUSCzGkPjkIATyXPQoCeNYfR6Do7QGI8Zj+CAHiyCY2SkIQTSSCIyD";
		var_s1 = var_s1 + "QCkpDBJQJinMMuAUPgOxGOcpA/AkoTzJwyiYFMiDwJEsShFAURFCwJRVFceQXKQIS8P8STlBgLggAcrAQCQATjIgZA0JgVSxL0OAmKI6CpEc4SuOkeBeOwMRnLQuQhOA";
		var_s1 = var_s1 + "pDJAImYmD44BPIgAzFMYiR3LcQw4JwqhQAknAMFAxwEEwJwUO4ljCHgmxzNwNQ3EU3ScLYEAACocDePwZgCLI+yFN8jg7FEQTtKMcwrAAOhgHw6SQI4OCmJgjDmNAjj5";
		var_s1 = var_s1 + "Gw+wbHkkTpEw7gpFgIAA2sABJEUThEK4QhgIJAQ==`)";
		com_Items.CellPicture(h,COMVariant::createFromInt(0),COM::createFromVariant(exgrid1.ExecuteTemplate(var_s1)));
		com_Items.CellValue(h,COMVariant::createFromInt(1),com_Items.CellValue(h,COMVariant::createFromInt(0)));
		com_Items.CellHAlignment(h,COMVariant::createFromInt(1),2/*RightAlignment*/);
		com_Items.CellImage(h,COMVariant::createFromInt(1),com_Items.CellImage(h,COMVariant::createFromInt(0)));
		com_Items.CellImages(h,COMVariant::createFromInt(1),"2,1");
		com_Items.CellPicture(h,COMVariant::createFromInt(1),COM::createFromVariant(com_Items.CellPicture(h,COMVariant::createFromInt(0))));
		h = com_Items.AddItem("<b>HTML</b> <off 4>Caption");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
		com_Items.CellImage(h,COMVariant::createFromInt(0),2);
		com_Items.CellImages(h,COMVariant::createFromInt(0),"1,2");
		var_s2 = "loadpicture(`gCJKBOI4NBQaBQAhQNJJIIhShQAEEREAIA0ROZ6PT0hQKYZpIZDKBJkIgKByN5mNJsMsKPABVqXBI4KjrD7HL6GWKPJKiCIhMiySidKxbOzZZJWMLsG";
		var_s2 = var_s2 + "L2FqyLjZMonNa2CyiZDOUqsQqUEq0ZCNISFXDIFxzZ4hUrbdrefZ/fz3ZgzZ75Tz3XjvHZnZznPieb55AKgAqmRyOOzEhR7XirWaWQQMTa+QIhDbZOZAAoYUCPDAQG7F";
		var_s2 = var_s2 + "XI4JRrNCoIRdPyyFr0AYifDUKZ+PCufK4RReALLUbtdBHSrGTCCNKqT4MbRqUxxQx+CAAEQ2VCBbxqGaLYDZNgzFbCbLDarRCrqMYMM6cWqpHKUDqhZjnVijEoLcp0FC";
		var_s2 = var_s2 + "jVg2OYhTjN/QWk4bo4iseBsAcABIDoPA5g2HgADIkQfDCNxwkEQYnFmAIAB4OJHGcKAPioGRKFKdh2g6UB8iiZ5QkYQp3gKWhDlsWYmAARBcgCIAUniVpmiSA5AF3A4w";
		var_s2 = var_s2 + "G8P41nGWwDDAW4MAAIpSG+bRzBoGx3AeCJhh6C4ljCUJGnSRBUFKAIQA6EgIHMWBoHqYgAngHJDCALBmhCCAfHOARAScUBvAmc5zHYXxoguXQ8DEMIAH8dI8HmP4/AyQ";
		var_s2 = var_s2 + "JAEAYAoHqRByEQGJiECBAzAkKIpBYNIcikAp8kcZhDn4EBChmUoMgqHIqhiWoIgaDImgyVQImaRw/F0EZGCcSw3DaM4Kn6GBBhwYYZDGZo3C+RgOAmNQnhYeYqgsTZen";
		var_s2 = var_s2 + "EVgSFYLo2CydhGg4OROF2HJjlydR7i+cJjDGFo8BgHgVl4Po+DufJRgcbQOlkCxyKuCJNAsdwIhSC4mgieYKkeHJWD0Ih8BQaYYkkMYppwTg0EsFhJC0SxEkgeodDSFp";
		var_s2 = var_s2 + "TheV5SDgLBIieRIigyVo5CeOpymoWhtEQfRACMR4zE2KxRnsV5dF2ehFCeC50G+GBkBiZgaCUGYnBySY+BsdIuEkJJJDSSRsjGeYqEWOhliYVYOHWDYbFuNhFmcS5siq";
		var_s2 = var_s2 + "bZrnGLYOh0DpPhyXo7D8d4ZHGXR1CcdRAnsMh7GELwIHiSx7CiXY0HYNZ1nOcoPg0SB+CWLwwGqUpbFAQJwEeEImlCVQwk4cJxAiFRIhMS4ulGYRRlmMQVDEHZxG8YxX";
		var_s2 = var_s2 + "hIaQSniLhIiaGwnDiJZGicZYnjeZw8D6OoSkWEIthwI4emudwtGwepNhuLQ3F8Zojm4bQrhALo0D0HZwCcJwoimeI0ASWR6CAJkJQORfAiFcLIXgahaiGCgMsKIpw8DP";
		var_s2 = var_s2 + "H8H4Pj2BhjrBMGQGYfxFjuEGIsB4rxbg+DSFsPAxBtChHoAQaYmRojVG0D0e6JALjVD2K0F4qxfjjGyPIRY/QXi1AOAILwFQGgOF8KYDwOgdBsHmCYcobRtjIHoGgZAm";
		var_s2 = var_s2 + "Bgi7HgPcWoHxTAmCQCcVwTgDB+FYJgfQMAOj0F2PoZgkRMjeKQLkWATwdDzEkPMF4FxzAXDGJYfAlgPAuB+FkeIWxuizC0LkUwvQbD9ByHIDouxvBCBgCMCAvh4CXCME";
		var_s2 = var_s2 + "gSA0BJDEH+AsfwMgfjhDeL0Ro/xkgvH4JMXA7RYjyAONgPAWhfjyCuBEcAFRSAWE4BIOwEAUgTCaIYfA4wSBUAcAsDowQOBFA4J0Hg9h2B4EmCQTYVBdB0FwIwU4rByj";
		var_s2 = var_s2 + "JGmHIRQ8gJAKB4IoZgShaDKAQOUIolQkjVBuGoSw6hugaFaJoeoWgajaDKDoO4dB5j0FcJ0Zw1Ang3CQDEdgNQnA6EmHgGw4QuCiCSAKFIXBgilEwGcLAZAtDmC0N0Wg";
		var_s2 = var_s2 + "LhaApFiK0HgfxniuGKP4GIvhrhhGgHEZgaRtB5GSBUcIhg5BnHkOAeQFB5A6DiEEao2xoDHH0KIQ4bxYBfFEP8RogB5BfA8AQHwvwqAZBIBURgCgwgPAqAkKYCgfgTHC";
		var_s2 = var_s2 + "BwDIegcgjFUDQXQPQzA4DsCkDwnRABNAwE8OgTw5C6AkJEPgPRSg+DqCANoMRBjuHUKEJglQWDrHYOATg3BuDGDWEMa4CQbj3HMB0Z4Pw5jLFuCAWYsB/D2DgBEUQmB1";
		var_s2 = var_s2 + "iuDEMkfI0hUCyEkPIfwihKgqGsGobIGhNhfFGGoZY6gDDuGWDceANA1A2DyDUM4txaA/EwG0bo0wTDXEcH8Sg/BcD2GSHQC4pgtiuGOOkNIRg3hbG+MIGYjhzgaBeHwL";
		var_s2 = var_s2 + "4FgHAMAYFIfgJh4nJBQGkfAwRNiFAiO4KIlhoiKFiOoO4EwPiYGONUE4RATg6BOMcUwEApgZGmP4X4lxnjYGaLIZg7RNirH6FQG47xZCAC6OQLK5B1BYF8LgOQZAqh0F";
		var_s2 = var_s2 + "qGcBo/xMhpE6HsXomQwBKCwIcfA6w/DxA+IURAIxwgmBSCMKoJgOhFD0JMeIkQdhREwFAEQKRFioAYKkJIqQlhpBYFEPYUQui0GCGgFI9BlCOAUDoS4nRhA7HOOkFYdg";
		var_s2 = var_s2 + "uhgEgGYUgZB2DeE6IIYIMQEgyAiPYHgYgnBlFiNsPYghKiODqISfddhPgVEOCQE4hg5iWHWPEfwfB3BgFYPkAIWQPAOC8BIb1MwrD+QsNEQ43ACAMAKGUQgsBhBoHCGU";
		var_s2 = var_s2 + "SNrxBBoEqNgGo8QMAJF+MMOwRxGCOFUBwHYdhODvDwMEBILgk21AKKkOI6RrgyD6LIDoJxNjkDUOQF4yAXgoC4FMXgqhKCiE4KACQow9D5CoJgLQiA9CwEMLUYwOxmhA";
		var_s2 = var_s2 + "FaEAdoSwdBBF0CEPQEWWDrGOBoEgGhTAaDyBsPoNgXA4CmHIWw+guCDCSJsNIjxsgADcNQPg2hxC2FKLACo2hNDFEMMcKw/BeCcE6LYXoGRvDJGCN8GIxgUjYAyOUbg6";
		var_s2 = var_s2 + "BpDrB0OYWw5AgjtGSOoEofAgjRG2NgY4+RRCfBeKUN4qQvi7H+HAYAchwCOCWAcQQZBBFiG4EIUYww3CFFuEQSgRAlBdDMIwCQiRrCMGCMcIwxhuiKDeE0PAlxCC8GFZ";
		var_s2 = var_s2 + "QS4YhIgaEkJYS43hLAxE8EkTodQUBbBWMcHoNxy0lHqOETYyAeDeD4I0AQlRhD0G2E0O4PgKCjHeEoSgmBKCGEsBUS4vxUA8C6M0K4ox7irD+O0VouhfD7FUA33I+gmi";
		var_s2 = var_s2 + "XE0IsLY1gtipG0CQbQLQPjFDuDQHw2RtjFGsK0bw4x9j0CcO8N4/RtBnhSgvAcBehmAOh0ANgiAhAnhih8gwh1gbhugRhSBRhDhjh2Bvgyhfh3gPhThOBIBOA6B9gsAY";
		var_s2 = var_s2 + "Aah+BdhlBWBtAuBoBThtB8gnhFheAlhcByh6BKhvAahNBnh5B1gJB1g+hCAsgAAbB1gOguAJhIAoAmhFBvqzACABh0BlgFggA6CaBvBQA7BDEHAaA0AABoAcgGBEACg5";
		var_s2 = var_s2 + "AAgYgZgLAIBKgFBBhWh9AggCAIBoBNgAANA9AJhwABBxBwAKAYAAALCJu9ADAYAFBLExBEAiBEgmBEgxBEANBENbhmgJh5gJBNgJgzgJBfgRAvAhpKhnAQg5AIpkARAS";
		var_s2 = var_s2 + "A/ASKGAPBJhZBIAdBJAbARh7n4BIhshkAnAZDVgkBZAUg5AWh5AVB5AEgFAbBFA4BFACglA5hlAfAVAChVAtBVAig1AQh1ABBNB+gaAcgUA7AqAbAWgTg2gfB2gSB9AI";
		var_s2 = var_s2 + "BdA1BDh2BHAnBdAZg6Apgdh+h0g7lCBoAXh3BJBugahkBwBihkBkAsBYgtg/h7gNATBNgkhIgUhBg0gzI6BZgJRJglhvAvARgrAtBrALBbBFh2BxB2BZh9hFAcgOAcAd";
		var_s2 = var_s2 + "AcgCgcBzhcAVB7h9g5BlgxhohsArgDh5A8heA8BKh8hMB8gzB8APgPBmAdByAShQAVgUAWMMAaAThuATgpAWhNASgLARB3ASAwg+AsEwhiAoimBTBxhUAJhEAJhVhJBP";
		var_s2 = var_s2 + "hSBTBSBjgyhvBPlWAbgUgfhRhYBUAkAoBTAoBQgrgygfyhgTBShXBSgwhUh0hWgKhTguhQBphRAdhWAjhoBvg1gQA0g0A1AKACAehLgegzgrgmhcAmBahmB+A4AihzAh";
		var_s2 = var_s2 + "hLA6ArAFBrAfAbAyhbAPh2hYB7BzB8AOBDgwhTg+hnALAXB8hXBph3AxAPA/BPA2gLg7A8hxg+AlAXANB9ARB+A6B+h5gBgEBAg9BLhFBBAUghAWAhANhhhsgRgBARBv";
		var_s2 = var_s2 + "gjAUgiALhjBpBig8hjhHgSA1ASBqgvA4gkhzAmgkglhRgnB7hlh8BKA0hNgxhMBtg7guh5gjAzhPAtB/BJgBBmhhBvAdhDAighg7g2glAzBlg+AVhUAVAphVAHhqURAG";
		var_s2 = var_s2 + "hvh7g0AgAahvA2FigMg2BhhaBrg6AMAegTA6AVi5B6BlgehNgMgoA9gigMAZA/hBgMgGg+hfgbAvAegSgbApgegXhZhqBagzBYgogfgwB/Cwg7hgh/hDA/gTg5B+gNh/";
		var_s2 = var_s2 + "gXh6B8hbh8B/hEhfASg2h/BHh6BfhZBbhuAjB/g9h7BbBth0h/gbh2Ayh/hAh+h/gnh/Ajh3AwgnA/gigPBzBPBVBegigfA1h8BPhshr1HgNhvAxB/hoBdgGgBhZh3sU";
		var_s2 = var_s2 + "hMh0gmh1hLg9hIgchQB7BthugQh5hbgugth6BTgLi/ALBkocoPgCA/BQBfhmh+hXhzA/hzh+g7B1hbgch/heh4gvhEg3hsBfBOgbA2B9ArhrANhPTSKXAMg7A+Bhh4Af";
		var_s2 = var_s2 + "gZh/AVhdg/hzB7BTBsgfh5B+gdhZh/g7oQBogSh/BMrPhUhYBshvheBfA9AThph7ANhvhNgog/hZBNg/hdhvgIAxhjB2hHBhhOBtg1gPBCg3hZBDAmhDg0gfhNhAg8xM";
		var_s2 = var_s2 + "hgBiBvkig7BGgKBHBDBfBJhDBWhPg6BPxKAvBOBUhPB5hMhLhAh0mXBXAFhhB/A3hXBIhwB9AAgUBKg4AHA8AMgdgDhuB8hGghhcACgUAAgOA4AAA8AQABh2BQAegHA2";
		var_s2 = var_s2 + "BOB9BYhxhrBAA/hfg7hah4BCBrAxgABkAdAcK4BtgsAshdhZCSAVglgFgbASgeB3AQAPhNhIFJ2TBnhahchDBBh9gQBogABSAlhhBUgbBLANBvA+hbh+gAgWBzB5BXBW";
		var_s2 = var_s2 + "hFh/knAAADgLAkgiAggqAsAEhigrA1g2AKAqgKBfAZgdh9g2BbhugjhUgCgtgBALAtAYy+AWhEgmgAhFgSAaT4gAASgaATAahIgxACB9ghhGgfgmBoAEB4gIg/ANBagx";
		var_s2 = var_s2 + "AkhGBRA0gs3yBaBjTNAFBCBFBghCACAJAlhFh+AAAEgCAQgQg+h2g7Bbhdgdgdhdhxh7gGvUhbBHhah/B5ATAzh3BOtAWchuh3hOA9h3XvAfgbh0hfh8Brg6hegDB9Bt";
		var_s2 = var_s2 + "nWDQByA4gkAGJIAZAEgcgFh8gvBJBSAdh0BLhqBLACAABHBtgwB2x8yngsg+gAByA2gAB8hxhvh6Byg+AFBp4nBShMgmBzANgAB8ACBZADARBLPVhQh7uKBOg/B7hqBU";
		var_s2 = var_s2 + "gphbA+AfALAygQYohXBZi2AThYhcAeBPhAuwhdgIBEgiB7B9YzhDA0AvAthIBAg8AeBfApAohKA/B2BRA+BYm/gGBCguAG5JhAhjZLAgAvgvhPg1gYgehmAbgLZQhDAj";
		var_s2 = var_s2 + "AjgjgOh5heAxzgABhx5Wgig0AfgQA/B13iBgBchVgrhXgVXFhbh9gKBdgugUAbXDgygsg+A/B+B8AqA6g6hahbBsANBmA/hCgmhegeSVgeADBwB+BKg+BnA0hwBxBihF";
		var_s2 = var_s2 + "h7BxBxAxAIgGACAiAYAMAKA/BPgnguAMgPBbBngak8B+hsgqAVBag2hnBOAoBWAJhYgsA2AchvAHhIEMAmgmAmAkAjhHgPB6hUBkhSAqApgpjehsBcgZhAhuAYBOBdAu";
		var_s2 = var_s2 + "AXAwgpgPBMBwAOB5AjB+AeAYBwANACghgnBTgph3h0B0BMB4h91BgMAJhxAmgSByhshbajBaWPgTgCAYA4ACWGg3g/AyBfgzhnhPBxA1hrhXBshehChChRBQBQAgAeAF";
		var_s2 = var_s2 + "BNAtg7h3hHB7h7B7A9BOgHBDgggfhrBEBHA+h9gRB+68hPAfg3huAoAzbAAiAGBZA7B2htAqB7hYgxgwhVgehOVIFFBRgchLhhgAA7BfBthdB9hkhkgkg0hyBlAKhBg3";
		var_s2 = var_s2 + "ABAgAZBEg4AcBWAGYIhzgXAEgDA6gmhphwAtgRBYBmBwBwBQAThBA3gvBXn3hrBDBuBcA/BugnANgEBLhKhCgzhwYzhAAiARAohGgHgggJgMg9gMBrA4g+A6BoAUhchu";
		var_s2 = var_s2 + "g3BBgAhZAIBPBNApAFAFAFh6hZBZAZAWhMgkAkBEgyApb1BOAqBGBIBmATAShAhsgOgHBuhxh4gsBOhph2ArAfBmBLCWgigxgOhZhshtAMBrghhDgHgjgfrIB5ABBCBQ";
		var_s2 = var_s2 + "AcAgV4gPhcgIBWhVhXgnhBApA4hVBXhngFhTLMgcgOhRgtAMh+hFh2h2gohnAsgshCg+rTAGgNhcgjgvwhAsA0BOA8gV4dBN8qBJh68rgUgoB2BdA6h5hTABhMgWAxhT";
		var_s2 = var_s2 + "g9A2guguhJBDB0g4B5hzBmsvhwgwgzgog4g4gDAmAygPBUhWAqANgbg3AmBAI2AOBzhDA8hmBKgxBIAFgAAJhbCuhGgKl7BwhwAmgcAKAigDh2gZAJArABANgDBegx5W";
		var_s2 = var_s2 + "gZADgwBGBEAkBegAg2AYg9gwKABtBmhPABBoBZAPgFhHBMAPhmB/B6bdhZhdhdhth1hh8lBGgIBEAUgOhEgKgVgrA0AngaAaBiBIgyB5A3gLgXBcAEhlJjAJgEAsAJAk";
		var_s2 = var_s2 + "gqqlhththThrhrhrBVBTAWhZhDhPhThIBWARg+Bn7Sg7A3gDhZAvAphEgegGgehuhpAJAyAJBZQ9gBggAAgAgwBDg3BCAAhkgTh0hkAAhLhthWhTgqAqhJBIAhhmAEgq";
		var_s2 = var_s2 + "gqgCgbBiB6h9BD8zhxhmABrOhfAqhMg7ghwiA4BSJNhMgqg4BEhkY8AjBphNATBaA6AtAwBYgEACBBiEBABIAggbg7gmh1AlglAlgahXBmhmB1BgBPBEAmAnwZgogyhV";
		var_s2 = var_s2 + "gmgABcgxsNBUAWAAB2B4AHBvA5h3B3ggAQBIAwg+hPhSgqBQCEA/gQBQA2htKUgfAJhFgkhkAYBtAIAMHpgbAasHg0gVAsBhhIgbBVAxAi/MgFBnAZBDBpB2ABgwADBW";
		var_s2 = var_s2 + "h3gchuBwBxhrhkB1BbhWAFAP5mBCghgTgnA8AgBV+OgqhSg2g1g3AnBOAcg+hNAYgbhHBRg8g6BjhjhjA2ADgdAdhTg/Aeg/hvA6h1h7A2gChLhKfjAdAxhahigYgMAG";
		var_s2 = var_s2 + "Ashzg5AAaYh/AGAjh2AChABwBOgwXnBFh/ApAzgT2GBZBGvTBHAjBGhAF0wAgsDi1w4Nza2UkyBUYiA+maxm6g1K32ad3s2Qg8AKlRaBlKD1wKE+rCCjSObAK8iGsFOr";
		var_s2 = var_s2 + "C0vR0lTeDV8IUatHu6GO2jkAHgAwgfgC5TYrVsKk2Y3MBRcpBQkgmOUuznY2FqKy0WSymXeX0ASwel0olHI5AwJ1mx0gL1mTXU6XS8Vpdj4hyg8BemDYZHqMFOUyYZTW";
		var_s2 = var_s2 + "P1WJ1CN1MTR6gH4cmysjKr2mlCqn3GuR+jDoJHGWlKkU+ajXpgg1yq2FQDFigSEBROwkCKnQwGwjliIU45x2HGyIB4dnM0UmUC+PhaLxefwOdia5zMT3+8wwYCQmEwdi";
		var_s2 = var_s2 + "4vQKqHKvigKHoKnc9Rs7GMDUOhhGOnAYjWkzKKRGyxsDUA01QCw0QCOF0uh0OkfRUMMbyRNwTBiCYZwKMIYyZAUkSlBYkxsCYAAHG4qwCBwMQfBYlxsNgsDhLEgwHA8P";
		var_s2 = var_s2 + "iPNg1ygP4uywIgMSwK4zSQG46BnFAATDJcL3IHM6DQBsPR3O83j/AsJyGH8w4ZJY5TsN8EAdFojTwJ0AAoA4MgATIMDqAcrQPMEwTDBgVy0LYtiuK8qyrFs6QtCocnLC";
		var_s2 = var_s2 + "s8wAGAChOGM+CZJ0HAaoQHQYocBiaHtJT3LEfgCLYIgQNYgw4IQiSaBcAABBEAB/DAXS4HgPAgLUSCzGkPjkIATyXPQoCeNYfR6Do7QGI8Zj+CAHiyCY2SkIQTSSCIyD";
		var_s2 = var_s2 + "QCkpDBJQJinMMuAUPgOxGOcpA/AkoTzJwyiYFMiDwJEsShFAURFCwJRVFceQXKQIS8P8STlBgLggAcrAQCQATjIgZA0JgVSxL0OAmKI6CpEc4SuOkeBeOwMRnLQuQhOA";
		var_s2 = var_s2 + "pDJAImYmD44BPIgAzFMYiR3LcQw4JwqhQAknAMFAxwEEwJwUO4ljCHgmxzNwNQ3EU3ScLYEAACocDePwZgCLI+yFN8jg7FEQTtKMcwrAAOhgHw6SQI4OCmJgjDmNAjj5";
		var_s2 = var_s2 + "Gw+wbHkkTpEw7gpFgIAA2sABJEUThEK4QhgIJAQ==`)";
		com_Items.CellPicture(h,COMVariant::createFromInt(0),COM::createFromVariant(exgrid1.ExecuteTemplate(var_s2)));
		com_Items.CellValue(h,COMVariant::createFromInt(1),com_Items.CellValue(h,COMVariant::createFromInt(0)));
		com_Items.CellValueFormat(h,COMVariant::createFromInt(1),1/*exHTML*/);
		com_Items.CellHAlignment(h,COMVariant::createFromInt(1),2/*RightAlignment*/);
		com_Items.CellImage(h,COMVariant::createFromInt(1),com_Items.CellImage(h,COMVariant::createFromInt(0)));
		com_Items.CellImages(h,COMVariant::createFromInt(1),"2,1");
		com_Items.CellPicture(h,COMVariant::createFromInt(1),COM::createFromVariant(com_Items.CellPicture(h,COMVariant::createFromInt(0))));
	exgrid1.EndUpdate();
}
1177
ImageSize property on 32 (specifies the size of control' icons/images/check-boxes/radio-buttons)

// AddColumn event - Fired after a new column has been added.
void onEvent_AddColumn(COM   _Column)
{
	// Column.Def(48) = 2
	// Column.Def(49) = 2
	;
}

public void init()
{
	COM com_Appearance,com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Items;
	anytype var_Appearance,var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Items;
	int h,hR;
	str var_s,var_s1,var_s2,var_s3,var_s4;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ImageSize(32);
	exgrid1.DefaultItemHeight(36);
	exgrid1.HeaderHeight(exgrid1.DefaultItemHeight());
	exgrid1.SortBarHeight(exgrid1.DefaultItemHeight());
	exgrid1.Font().Size(16);
	exgrid1.FilterBarFont().Size(exgrid1.Font().Size());
	exgrid1.ToolTipFont().Size(exgrid1.Font().Size());
	exgrid1.Indent(26);
	var_s = "gBJJgBAIDAAEg4AEEKAD/hz/EMNh8TIRNGwAjEZAEXjAojKAjMLjABhkaABAk0plUrlktl0vmExmUzmk1m03nE5nU7nk9miAoE+oVDolFo1HpFJpU5h8Sf9OqFNqUOqN";
	var_s = var_s + "UqdPq9VrFWrlbr1QpdhAFAkFis1ntFptVrtkrpszrNvmVxqk3uVtm1kmF3sdBvF/wGBmV+j9BYGHwWJulfxdax2NyFdx2JlV6l9Nw7AAGZymdz2Cy2GxErvWcz9ivlwy";
	var_s = var_s + "V21cuxugwktzGIzmvwtl0+53U5y0a0Wazmmyu/3dCyOMyXHx/J5nIr9q3uyqnBxFN3G46ma4vb7mD2Ng4nZze00fDkHC7t7us2rOX5tguetpHRlmz4HVqnXk1PjHO+CM";
	var_s = var_s + "Po9MBMC+j2vC8j7wS8cFNI4kBo05UIvfCT/NsnsApU+0Fqg/T+oy/kPxC0sEQfErKQK96+w28UWRI8UGvO8sTLS9r2PWmsMJTDTask3CsIbIEQRA3shOXEEAO/GclJ9F";
	var_s = var_s + "EKrrA8FRbKMXRIlb0JxCkjS1LMswhCcvuel0cv26cSMa8Ufx+2sQwhEUoSXOCjSbLcnxjKc7sdKUVyq28NtVI71P9P7JxtQEapjQ6fzfM8zPfNE2PhIsLL63E40slk5y";
	var_s = var_s + "7N89LcyU9SvMb3SdUc6VJLj5VLVLfO/PS9KzNFHUa/0XyBD0dxlS9cxhMlTRSoNXypPErWDPyfNS+MwprRNO0FD8wVVZ1AI08URwVRjtJ1WCn21QkkUrXVLVPQS/XIkF";
	var_s = var_s + "gTxT9iONZ9xVTdq+L1eKg3kkF6Upe68XtfV51/MtrVjBlwYFL1ev8y1/P6/lyzzYl02wntj0RVFmS1Qa+M5as93QxEUW9e993rfmQ2+vy65M/mL1lhl/2bj2ByVduMtN";
	var_s = var_s + "hCJT9hdz41nN14Ld12Z9UjfI/oUAaGseiw6+uFLLhcVabJOS5RqOE0BHlZ5VnEr5fOMs3st+aa/bbRzrJGV51Y0b0DbqaWXZD90hIsPbjWu52+6Wyadpe66hhO+P/Xio";
	var_s = var_s + "W5rD8ZbrUZuVg6n1dsE/cXmewu1m9PVwnd35/nueXho/NaJzmjc61W76esuT77eG8pTquy9TwWH8LEzG8RDfFalx3Gcfvna9rvG/cptGLd9tuI6TZOP5Fiqi99vea+X4";
	var_s = var_s + "VRcBq/JZZtVQ9cwSs5lsXE372+a9z7PbfB3VVqHyvMctLto8uob6eV0m/cD6MN2v+T33t6sBut42vdv2bJ8a997x2maFJfK+qArbGJPEKE+1qTflMsIdW/GCJX17KcT6";
	var_s = var_s + "/czr/X+u1g29B7j/4BQfWkkx4zIHisjhPCmE0K4SwtXM+d4BvHRwNZOoBph9IJvPek9d40FoMJxf691jj2ywQQcHEWET4XJwkTszlVqm2GokewxtBT1DpQjRxDN0rUVD";
	var_s = var_s + "NKdC3lb6tzNOwh6upMSSYfv4YBCl/bsn9PxiFCEo7SI6Obc9HeOrnY8x4jtHtdpN4GRbaorhsbu18Pph5CiHymI0RpSXGJ/z2oUOxYxG858AyiI+bfJtuTcG5yelBJyT";
	var_s = var_s + "8okhqFd4a5yxL0rvulYtKCsZiWxWkc1s1cRoxxwhA31DLE0mR9l9HqX8fJgTDmFMVH0MIsRzVYnwnMi1dyzmhLt2kS2pxIiU62Wj5ptQGlSYFakLonTUJNLKaM5Wzlff";
	var_s = var_s + "EkuFkk5wTrhVO2eE7G6lJhxFFYUZ55zmn0WuBCD4pzhirFCKkbomsOoIYmZx5p90LoYWGPdD5g0QmJRKYxbZ6zYoVQ2jVGylSak7KSkFH6RSjpHKFuU+YMyNo5SulkC6";
	var_s = var_s + "I0vonTCitMXPoEpVS2H5FQfEqp2R1opIgAEkJISYARTCukOhmPNI5Ex/wzGHUsicMwA1LHgQ90Y/KpoQHAD+pB/R4NzIaMAB9Xaw1gqaAOsh/A/ptIkWUfhGK1kZH8Rg";
	var_s = var_s + "H5GqvgArqRmt4AAPrTroRofBGADkqr6Rmu4D7CEaHARiwpJrEEZsXXwlVjyMWRsaRqwdkLGNBABZmytmyMnaINZqyVpLR2ftKAAAdd6h2osbaskdiq4EZtgSmyNcbVWR";
	var_s = var_s + "JNXe3AA7REar3b0stlAAXBtoRmvJGLjEYAHUWsFcwCD/rnaop9aEICMAPdK5hT6xpeuzdOtAgKuJeGfdq6ggEbkTvAP+p9UCHXrvKkcgIA==";
	exgrid1.Images(COMVariant::createFromStr(var_s));
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s1 = "gBFLBCJwBAEHhEJAAEhABfICg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6";
		var_s1 = var_s1 + "CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EM";
		var_s1 = var_s1 + "RwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsOatVqjG5sYjcGC3La9cz3Pq/bpuDCbMxuaK1TrYXr1TTrcofBDldAxXRKDxR";
		var_s1 = var_s1 + "DWVhLnYOw9i6XxzjuXprCaOoKB6EwbiCZZCGOdZYlcT4xHmbhMnwNxtn+G5bmqdZ7n4Pw/i+X5zm+dQ9g4CAFjsfAJheOI8HsDoWDWTB/lwSAQkmA5PEgRYoDyDwYFYF";
		var_s1 = var_s1 + "oFmGCBmBqBphDgRJ0gOTIYBGRB/lyRh0iSCZbjYWJzgWDwIjYLoLmMCJGDKDJjBgWgqG6YhyhGHRzA2aJ1mCABOAiOJvhCZBJBYRoRmSCQmEqEQimkAZgg8TZnDCV4Uk";
		var_s1 = var_s1 + "mCUmBKZYJGYWoWCUUhiFMNZckNUh2GENoaGaGZmgmJhqhqZpGGIEx2GYIxSGGGJdggWJth2Z4JmYeoemeSZ2H6H4hGmQhihyTRHGYLg7CiCgmgqIpokoNoOiOaJ4jqAo";
		var_s1 = var_s1 + "chqaZGgaCxpAoZoaiaaJqEmWIcGgShcnCJwqEqFoR3YOoFlgchflqNouiuawHmWSYqGkWZQhcatzmaOoumuSp2j6L5bBaKo0GQKRnGGCxqiyCwmkqMpsksNpOGUGI7A0";
		var_s1 = var_s1 + "ew1G0Rxlg0PptgsZuDG2Sx2l6N5tnYNZZjUDRXDCVo5l2FoymqOpukuNpujubwLjmWY5k0ZwxkaFxYlWdp6j6b5Lnafo/nABQdg2FxcUsY5BkmXAkmeQpckwNRrkKTh8";
		var_s1 = var_s1 + "CSHZBk4NwyC4KxxgMDwakOMZDn8GgwnGAo2C4cwthMcwmCcMoHBMHRehwTIghySYNksZwcH4HBMEsHx5hyPItiweYxnwSZEH4Mozn0fR+DMAo7EYJ50gkdZelKdNql2U";
		var_s1 = var_s1 + "gJn0GIukwH4HicQRai2GI4mSVpNl0dZGledgNgcYpYDWUx3FsOQi5YV5anaTY3G6W53A2RxylydxFjiaxEFCCgBBAQ==";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s1));
		var_s2 = "gBFLBCJwBAEHhEJAAEhABcoFg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6";
		var_s2 = var_s2 + "CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EM";
		var_s2 = var_s2 + "RwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsLpOS5LNKsaxmWLYdhFdTxQi6LpvfA8BwXC6JY7heRYRbFbYxRjGNi1TS7G4n";
		var_s2 = var_s2 + "GKd5WGuL4UHwI4VkaYxii8V4pgQMgVBQdQ5iCTYGi8T4vlWbJ3nuPg+l+H5AlSCg6ByPBoE8Ap3jqYxhBido5g0OgOGOGI4CsSpCCAcgcAuEokiEN5NCKfJ9DyTRjnSc";
		var_s2 = var_s2 + "g1CEYxOBmBpPCgagdgcIZoHoGIFA4AxQkCAxKAgKBwgGSpIBCZhjF2E5UnQPQMiMCJBCIBwxkSQgsgo+JtDKT4ziiQw+k6EwAnsOgLnkHI+yCQ4iEuE4klkPhShEJBpA";
		var_s2 = var_s2 + "oPgymOMoaDgHBjFMBgyD0HYTiCZSZhIIIGC4ChiHSew5kwM5omILZPiOBI0hwZw5kodIdA+M4Uj4PxOmMSJ9DuTQzmyZgviceZagaHVfj4awwmaAh2GUIYmCOEZZDaDR";
		var_s2 = var_s2 + "DFGdwcg4EwyHMN4LBOaJbCoaZqgKH8qkMfIyD8DozDyfA7A0Coui0OpMmOZJdCsahKg6NooioChwmEMxLEoXJbDUTRXGSUgykyMgQG0GpPHMdI3D4TRCgSeQ0kmaw+lG";
		var_s2 = var_s2 + "NAtCOZJVCiT5DhyRQwAqMg0EoDBBGEGAsASC5yiSCw+k4Mp6lWNQuksTpRjMTxDGzJwGmGMpDDKXYTECSAxl6Q5olkK4PgMMIVkASRMBMBgzEkaZEjsNALhIZA6AeQBg";
		var_s2 = var_s2 + "k0ZJEgAAJ0CIAgODMNIsD6DRih9uYwFyAwfCUb5ijmbI+gwdxkk8MZMGeMpPCkDxzBiC5MHMPJLDSSROFMLIoBEQogEMFJPnENYQGgE4DCOaJfC7tYkhGTQ0kyWwykuX";
		var_s2 = var_s2 + "pMiyRpKjKR4wngM4JmOWJACCdYtHMWw+Eych4nINYLAEYA8AgdAEEsQZajaQoog4GxPiMVIolcdxNG8XZVkmNoRwWRVBlFeFEeAZQJgnFiHgHwcAhjhHgGMSI5xki2Cy";
		var_s2 = var_s2 + "A4EQsA3i0HkBsLwKRFgAHcPkHopBJBcBeDUYI7xyDOHqKkWo2hLCsDIBIY4qQ5A8DoMMYwOAqCSBGKgU4yB2iDBwIgB4hxQgAAWNgBoAgsBdEcBUQ4sQ9A/HqD0JI8Rp";
		var_s2 = var_s2 + "BzH2OYVgahLBHFiJQJweQiDhDUE4SAARQAzFsG0EQwA6AOWSBkFgVAIBCHeGERQFQiCQHeFkC4vkiB8DyB4F4QxVDvGMNEOQexMjlBeOAKQiQLgfDA7QEAaRiBdEkH8T";
		var_s2 = var_s2 + "I7AZiFBAGYBIABWjYBiGACioQ4C1A+AMMgWhfgxHgPsT4URIB0COKgPgjRwiAB8AYUArxBgCF6J4GY5hrAOCAPAAoGRRCsCIMEXATXfgAF8BMJwURuEQDgD4Q4OBoAeH";
		var_s2 = var_s2 + "GFgLIwQrC2D0JoSQ+QvhrHoSgQI8AbDFGID8C4Ah6BQAQAASACwgCYCMAUMARAvCKAiAMCAokeCKBEOAKgCBoDaHuMsEAqwJDiACDURg8R6gPCyDofYWAhgoDIJ4ZAuh";
		var_s2 = var_s2 + "oiGAYGgRoQw/A0GMMga4GwxiEDeIYYInATCDBQAoBAwAoDlA0KMBoVRGiDGwDQUYIRsgaGGDgM4LAwDWB8EcIA1APhjEgGQVwgRIgjFIIQHokgZA+CSEkLIKQSjHAwMs";
		var_s2 = var_s2 + "CwDAsAEB2ABTIwRwD6A8CMToSxkAxE4HYIw+BsgbBEDAHYBwojCBoIYFgXSjABE4MsHIbQWhlGILQS4UhvBdAUKEEwHgxDAAABQQQUAhgKHiDwE4JS4A7BGLQZwCR4ga";
		var_s2 = var_s2 + "BEMUYAqgKApHgGwVAIRNgvBMMQXImwZDtE4I8UIyAZCDCAE8AwrhgAdEEBACQLRCg4FEB4AYtA7CdEiPQMoJAMDNCkOMCAXAFDhH0D0Q4EgfAaGSK4NYzRUj9BuCgAgs";
		var_s2 = var_s2 + "wOBjB4Fqpw8B2ADAwE4A4Qx2DAE6JIaQPQGhAGKBcIQ5B5gHByKIFARwADbAyKUfgdBKBBGyEcVIAB/ijHoIoSA0gdBNl+OATYERZgBGSDYWIWAUCEGKA4FAhR7CIBtY";
		var_s2 = var_s2 + "QGYZg4CMAiKEcAOwkBjHWE8Z4lQgA+DkBoTohwwCeAaMEEgBQCCABgHMRwQRhhMEWFQd4HwZgwDqFESItAbAGEANCpINAzANCCJkK4ah+heFYBURwsQrS2CsMYMoWGBh";
		var_s2 = var_s2 + "YDWI0EInQgiApXaOVI1QFDsC8MUNoMBMA1HMJga4eh+BeAWOgNNowGjYzCGAAwax+iJBeBVT4gxoBIAGFsJFBxgBiGKFkKQ7g5DFFQEcAo4AzDDACKEQQLgCiJDYB0Mg";
		var_s2 = var_s2 + "RBCCQAgQEA==";
		com_Appearance.Add(2,COMVariant::createFromStr(var_s2));
		var_s3 = "gBFLBCJwBAEHhEJAAEhABQ4Fg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6";
		var_s3 = var_s3 + "CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EM";
		var_s3 = var_s3 + "RwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsLpOS5LNKsaxmWLYdhFdTxQi6LpvfA8BwXC6JY7heRYRbFbYxRjGNi1TS7G4n";
		var_s3 = var_s3 + "GKd5WGuL4UHwI4VkaYxii8V4pgQMgVBQdQ5iCTYGi8T4vlWbJ3nuPg+l+H5AlSCg6ByPBoE8Ap3jqYxhBido5g0OgOGOGI4CsSpCCAcgcAuEosiYN5NHMOJ+D4TpTnSe";
		var_s3 = var_s3 + "Q7CEY4uBmBpPhgagdgcIZoHibIEyUBJZDQIJShoCgcCAcoyAQOYYlcZJ1D0DxDCiQgwEiAZMHEMJLFKPJ9D2DoDnidQ4k+Y5QmKEROBkIhKD0JIZDIS4TGUCQuEeEJjn";
		var_s3 = var_s3 + "OIg8CuY4RkYNgwGMM5RllGpThDRYIGKZIpCkJFUH0PINyWcQ3CaaZCG+HBnEOTJhD8Tx4GoeQ/GcaZSHOH5nCmQhshoZhihYYwhiYA4RlkNoNEMUZ3ByDjwEsPxOnMaJ";
		var_s3 = var_s3 + "9DuDR6F6GYmCmKh0nANtMioP4Gg8aoSiIO5NhodociqaY6GaFYkEyOg8lsNRNTaUgykyMgQG0GpPiONJbD8DpDEyfA6k0KwOkWMQsGsAJU0SagwkoJQJDIPISCQCJTGS";
		var_s3 = var_s3 + "UwyGaM4KkmMgtksHpFjAZ4TGCBAbgaSpcksdhNAMIJHHsD5TjSWWMAMOpwjyLwbk6cAz0KRJiDkDYzESCwiggcgcgYIQwCIEINCMCITj6TVxkMXp2j0cQLlCTo7E2F4y";
		var_s3 = var_s3 + "mkMZdhMPJHDGHpLAyVg+k4UwrCCSIyByDJ8DuDY8CiWY0kiXAXC6QJwFKGIjCeJpjgyezjlyDw6klHx5myRoMGwZwbkcToTEiew4kwbQfEmUgPkOKJUD4DpTHSHQmgkX";
		var_s3 = var_s3 + "I/ASTA1g0XIEDMTBimyfI7jSLYHEiUoPk0Fw/kadAsHGao8A0A5smEMJ2mNyg5gzJZwDgCpChyIZVyIZwFCMJEPASRkBqE+IcHInRcDxA2H4bIsx0AtDsIBpwZwYicD6";
		var_s3 = var_s3 + "BscwDwUBgHCIYaIfgtiVH2O4WgUwJjEFeAEQA7y4hMCiBMS4aRdB9A4CYE4LxljyBMHcDItBxinDCLcTYmgejBFQ9UTg9gFBOEmAQTI7A4iZGMGkQAWQ7jYA2HIL8BRA";
		var_s3 = var_s3 + "jDG4HcCwARbjZHiNoDw1nLDnGyNINQ+wjCpBMEgcovQUgICQJEcgWRuBvAyJ4d4ugpCUAINcHogxIgnDiM4N4axzD3F2JMTY/hRqYF6FsWIxhYAGGoAALQYgYirBwBEB";
		var_s3 = var_s3 + "wpAjBEAAIEIYsA2gOHCMAGgXAACIDmMITAUgFABH0D0I4WwvhNFGMAOIvxRD2GKNcMA8gjAPDCPwBogRPAxA8PgRwZRICYDED8RAXQEghEAN8DIgwIBdB4JYWwMgtiQH";
		var_s3 = var_s3 + "oFQKAiRFguFKGwGQhglDsEOVwEQQRkCKBwOIHgSREDRBYHEXQcQdD7GIGARQHRxipBrMobgewDCUCADsEYWAzgMHKHQDQxxsDzA6EMfAeQHB4GQDkUYPA0iECiKoGgRh";
		var_s3 = var_s3 + "cDdA2GMQA8AOCjDSPgHI4QnApAKBICwHg1A+BcAwcYsgbjGGQNkCIgRsA6EcBEWANADjsB0B8YYzQQDIGSBcEYZBCCPEkFIHQSgkgZAwG4IwBAbAYGGAgL4Ch4g8BOCQ";
		var_s3 = var_s3 + "AA2KKC0GcAke4AAXAFCoHkDw4xbBFEcJkE4JRSiEFeJYKQVRMgJHODwX4xAgC/AsIIZAeAHDRG0HYI40RKCLEGDUI4jAghwBWIceA+whCpHMFYZYOQxglDMHMBQGxYjV";
		var_s3 = var_s3 + "HiAoBIPgfgHGwPsHYJRSB6A0IERQLhCjJHMA4OQoAoCOACLYGYSx8DpBQIMWQdRnDRH+DsE4fB3CeAmM67kAAXBFEIDYDI7wLBtEoEIfYNwjiUGGJQYQMAjCHEAO0C4z";
		var_s3 = var_s3 + "xW29CoCgfIxR9AKA6J8BgUAIhDGMIoJ40hqgwCgKETgnBhhqCGI0AIqgZhGDANQDIlBDCRGkCoJISR0g1BSKQOgfAzBRG0DYHARh4DeDAOwANuw8ApCKKkYg/RPhjBsH";
		var_s3 = var_s3 + "0J4yg5hPGWN0GwFBHQBFaDoQIURljFAoB4GgzRVzbBECQFQRQoguHGHANwDRdCKy8CgSIGwhhoDYJYYI1giBICSAEgI=";
		com_Appearance.Add(3,COMVariant::createFromStr(var_s3));
		var_s4 = "gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL";
		var_s4 = var_s4 + "UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBU";
		var_s4 = var_s4 + "rGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3";
		var_s4 = var_s4 + "NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDsY";
		var_s4 = var_s4 + "YDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVm";
		var_s4 = var_s4 + "WCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVo";
		var_s4 = var_s4 + "WiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiS";
		var_s4 = var_s4 + "e41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbhF";
		var_s4 = var_s4 + "CcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==";
		com_Appearance.Add(4,COMVariant::createFromStr(var_s4));
	exgrid1.BackColorHeader(0x4c6c6c6);
	exgrid1.SelBackColor(0x4000000);
	exgrid1.SelForeColor(WinApi::RGB2int(0,0,1));
	exgrid1.CheckImage(0/*Unchecked*/,16777216);
	exgrid1.CheckImage(1/*Checked*/,33554432);
	exgrid1.CheckImage(2/*PartialChecked*/,50331648);
	exgrid1.Background(20/*exSelBackColorFilter*/,exgrid1.SelBackColor());
	exgrid1.Background(21/*exSelForeColorFilter*/,exgrid1.SelForeColor());
	exgrid1.Background(26/*exBackColorFilter*/,exgrid1.BackColor());
	exgrid1.Background(27/*exForeColorFilter*/,exgrid1.ForeColor());
	exgrid1.Background(32/*exCursorHoverColumn*/,-1);
	exgrid1.Background(0/*exHeaderFilterBarButton*/,0x4000000);
	exgrid1.Background(41/*exHeaderFilterBarActive*/,0x4010101);
	exgrid1.Background(1/*exFooterFilterBarButton*/,0x40000ff);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.ShowFocusRect(false);
	exgrid1.SortBarVisible(true);
	exgrid1.AllowGroupBy(true);
	exgrid1.BackColorSortBar(exgrid1.BackColor());
	exgrid1.BackColorLevelHeader(exgrid1.BackColor());
	exgrid1.FilterBarDropDownHeight(1);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Check")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
		com_Column.Width(128);
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(256/*exShowCheckBox*/);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column1 = var_Column1;
		com_Column1.FormatColumn("1 pos ``");
		com_Column1.AllowSort(false);
		com_Column1.Width(48);
		com_Column1.AllowSizing(false);
		com_Column1.Alignment(1/*CenterAlignment*/);
		com_Column1.HeaderAlignment(1/*CenterAlignment*/);
	var_Column2 = COM::createFromVariant(exgrid1.Columns().Add("Image")); com_Column2 = var_Column2;
		com_Column2.DisplayFilterButton(true);
		com_Column2.FilterList(8480/*exShowExclude | exShowCheckBox | exSortItemsAsc*/);
		com_Column2.FilterType(10/*exImage*/);
		com_Column2.DisplayExpandButton(true);
		com_Column2.ExpandColumns("1,2,3");
		com_Column2.Width(128);
		com_Column2.HeaderImage(1);
	var_Column3 = COM::createFromVariant(exgrid1.Columns().Add("Images")); com_Column3 = var_Column3;
		com_Column3.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column3.Width(196);
		com_Column3.HTMLCaption("<img>1</img><img>2</img><img>3</img> Images");
	var_Column4 = COM::createFromObject(exgrid1.Columns()).Item("Pos"); com_Column4 = var_Column4;
	com_Column4.Position(3);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		hR = com_Items.AddItem("Root");
		com_Items.ItemDivider(hR,0);
		com_Items.ItemDividerLine(hR,0/*EmptyLine*/);
		h = com_Items.InsertItem(hR,,"Child A");
		com_Items.CellImage(h,COMVariant::createFromInt(2),1);
		com_Items.CellImages(h,COMVariant::createFromInt(3),"1,2,3");
		com_Items.CellValue(h,COMVariant::createFromInt(3),"123");
		h = com_Items.InsertItem(hR,,"Child B");
		com_Items.CellState(h,COMVariant::createFromInt(0),1);
		com_Items.CellImage(h,COMVariant::createFromInt(2),3);
		com_Items.CellImages(h,COMVariant::createFromInt(3),"2,3,1");
		com_Items.CellValue(h,COMVariant::createFromInt(3),"231");
		com_Items.SelectItem(h,true);
		h = com_Items.InsertItem(hR,,"Child C");
		com_Items.CellImage(h,COMVariant::createFromInt(2),2);
		com_Items.CellState(h,COMVariant::createFromInt(3),1);
		com_Items.CellValue(h,COMVariant::createFromInt(3),"312");
		com_Items.CellImages(h,COMVariant::createFromInt(3),"3,1,2");
		com_Items.ExpandItem(hR,true);
	exgrid1.EndUpdate();
}
1176
ImageSize property on 16 (default) (specifies the size of control' icons/images/check-boxes/radio-buttons)

// AddColumn event - Fired after a new column has been added.
void onEvent_AddColumn(COM   _Column)
{
	// Column.Def(48) = 2
	// Column.Def(49) = 2
	;
}

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.ImageSize(16);
	var_s = "gBJJgBAIDAAEg4ACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjMLjABAAgjUYkUnlUrlktl0vmExmUzmk1m03nE5nU7nkrQCAntBoVDolFo1HoM/ADAplLptImdMYFOqd";
	var_s = var_s + "SqlXq1QrVbrlGpVWsFNrNdnNjsk7pQAtNroFnt0sh8Yr9iulTuNxs1Eu8OiT/vsnsNVutXlk/oGGtVKxGLxWNtsZtN8iUYuNvy0Zvd+xNYwdwvl4p870GCqc8vOeuVtt";
	var_s = var_s + "mp1knyOayWVy+WzN/ze1wOElenm+12WUz/Bv2/3UyyWrzeutux2GSyGP2dQ33C1ur3GD3M4zUNzHdlWjq/E3nGzVpjWv4HA7fRy/Tv2IrN8rPW6nZ3ve7mUlfu20Z8ac";
	var_s = var_s + "vQyb+vY9jasYoDwMm+LytVBDqKG3z8O3Cb8P+mkAuY9cCQ2uL4KaxDKvkp8RNLEjqugnrwQo/UWPzFyeQw5sNLZFENrI4kOqU66pw8uzmOKvTqNqjULJvGL1JO48GtTG";
	var_s = var_s + "sbLdEL3scxLlyiw8dQeoUVxdLTtyKmUjwGlslRPJsnK1HbAKbKCrsQo8uQk/CeP44iaR/ATnTNPLvyxPU+z9P9AUDQVBowiofJXQ6Oo+kKMpIkjztE4TKn4P6JowfgPn";
	var_s = var_s + "wD5/nAjB8AOeAPo0eAA1IAFH07UhAIMpYAVIYFHqBUhwVjV1S1EtQAHxW65V0AZwAeuQAnwB5gAPYViEDVhwAHTQBkCjB4gOhwDmCyhH0sACAg==";
	exgrid1.Images(COMVariant::createFromStr(var_s));
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s1 = "gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL";
		var_s1 = var_s1 + "UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBU";
		var_s1 = var_s1 + "rGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3";
		var_s1 = var_s1 + "NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDsY";
		var_s1 = var_s1 + "YDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVm";
		var_s1 = var_s1 + "WCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVo";
		var_s1 = var_s1 + "WiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiS";
		var_s1 = var_s1 + "e41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbhF";
		var_s1 = var_s1 + "CcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==";
		com_Appearance.Add(4,COMVariant::createFromStr(var_s1));
	exgrid1.BackColorHeader(0x4c6c6c6);
	exgrid1.SelBackColor(0x4000000);
	exgrid1.SelForeColor(WinApi::RGB2int(0,0,1));
	exgrid1.Background(20/*exSelBackColorFilter*/,exgrid1.SelBackColor());
	exgrid1.Background(21/*exSelForeColorFilter*/,exgrid1.SelForeColor());
	exgrid1.Background(26/*exBackColorFilter*/,exgrid1.BackColor());
	exgrid1.Background(27/*exForeColorFilter*/,exgrid1.ForeColor());
	exgrid1.Background(32/*exCursorHoverColumn*/,-1);
	exgrid1.Background(0/*exHeaderFilterBarButton*/,0x4000000);
	exgrid1.Background(41/*exHeaderFilterBarActive*/,0x4010101);
	exgrid1.Background(1/*exFooterFilterBarButton*/,0x40000ff);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.ShowFocusRect(false);
	exgrid1.SortBarVisible(true);
	exgrid1.AllowGroupBy(true);
	exgrid1.BackColorSortBar(exgrid1.BackColor());
	exgrid1.BackColorLevelHeader(exgrid1.BackColor());
	exgrid1.FilterBarDropDownHeight(1);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Check")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
		com_Column.Width(128);
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(256/*exShowCheckBox*/);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column1 = var_Column1;
		com_Column1.FormatColumn("1 pos ``");
		com_Column1.AllowSort(false);
		com_Column1.Width(48);
		com_Column1.AllowSizing(false);
		com_Column1.Alignment(1/*CenterAlignment*/);
		com_Column1.HeaderAlignment(1/*CenterAlignment*/);
	var_Column2 = COM::createFromVariant(exgrid1.Columns().Add("Image")); com_Column2 = var_Column2;
		com_Column2.DisplayFilterButton(true);
		com_Column2.FilterList(8480/*exShowExclude | exShowCheckBox | exSortItemsAsc*/);
		com_Column2.FilterType(10/*exImage*/);
		com_Column2.DisplayExpandButton(true);
		com_Column2.ExpandColumns("1,2,3");
		com_Column2.Width(128);
		com_Column2.HeaderImage(1);
	var_Column3 = COM::createFromVariant(exgrid1.Columns().Add("Images")); com_Column3 = var_Column3;
		com_Column3.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column3.Width(196);
		com_Column3.HTMLCaption("<img>1</img><img>2</img><img>3</img> Images");
	var_Column4 = COM::createFromObject(exgrid1.Columns()).Item("Pos"); com_Column4 = var_Column4;
	com_Column4.Position(3);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		hR = com_Items.AddItem("Root");
		com_Items.ItemDivider(hR,0);
		com_Items.ItemDividerLine(hR,0/*EmptyLine*/);
		h = com_Items.InsertItem(hR,,"Child A");
		com_Items.CellImage(h,COMVariant::createFromInt(2),1);
		com_Items.CellImages(h,COMVariant::createFromInt(3),"1,2,3");
		com_Items.CellValue(h,COMVariant::createFromInt(3),"123");
		h = com_Items.InsertItem(hR,,"Child B");
		com_Items.CellState(h,COMVariant::createFromInt(0),1);
		com_Items.CellImage(h,COMVariant::createFromInt(2),3);
		com_Items.CellImages(h,COMVariant::createFromInt(3),"2,3,1");
		com_Items.CellValue(h,COMVariant::createFromInt(3),"231");
		com_Items.SelectItem(h,true);
		h = com_Items.InsertItem(hR,,"Child C");
		com_Items.CellImage(h,COMVariant::createFromInt(2),2);
		com_Items.CellState(h,COMVariant::createFromInt(3),1);
		com_Items.CellValue(h,COMVariant::createFromInt(3),"312");
		com_Items.CellImages(h,COMVariant::createFromInt(3),"3,1,2");
		com_Items.ExpandItem(hR,true);
	exgrid1.EndUpdate();
}
1175
The user clicks the drop-down filter, select a value and the control's list filters for the selected item(s). Is there a way for when the user then goes to the next column to add another filter and the drop down arrow is clicked for the list of values they can filter by to be limited to what is being displayed in the list due to the first filter they set

// AddColumn event - Fired after a new column has been added.
void onEvent_AddColumn(COM   _Column)
{
	;
}

public void init()
{
	COM com_Column,com_rs;
	anytype rs,var_Column;
	;

	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\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item("ShipVia"); com_Column = var_Column;
	com_Column.Position(2);
	exgrid1.EndUpdate();
}
1174
Does the control display images from database (ADO)

public void init()
{
	COM com_Column,com_rs;
	anytype rs,var_Column;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	exgrid1.GridLineStyle(512/*exGridLinesGeometric*/);
	exgrid1.DefaultItemHeight(48);
	// 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("Employees","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.mdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item("Photo"); com_Column = var_Column;
		com_Column.Position(1);
		com_Column.Width(128);
	exgrid1.EndUpdate();
}
1173
Does the control display images from database (DAO)

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	exgrid1.GridLineStyle(512/*exGridLinesGeometric*/);
	exgrid1.DefaultItemHeight(48);
	// 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\\Access\\misc.mdb").OpenRecordset("Employees"); com_rs = rs;
	exgrid1.DataSource(rs);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item("Photo"); com_Column = var_Column;
		com_Column.Position(1);
		com_Column.Width(128);
	exgrid1.EndUpdate();
}
1172
Is it possible to set from code, a column sort without being inserted in the sortbar

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\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SortBarVisible(true);
	exgrid1.Layout("singlesort=\"C1:1\"");
	exgrid1.EndUpdate();
}
1171
Is it possible to view all events the control fires
// Event event - Notifies the application once the control fires an event.
void onEvent_Event(int   _EventID)
{
	;
	print( exgrid1.EventParam(-2) );
}

public void init()
{
	COM com_Column,com_Editor,com_Items;
	anytype var_Column,var_Editor,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)` : ``)");
		var_Editor = COM::createFromObject(com_Column.Editor()); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
	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,COMVariant::createFromInt(0),1);
		hChild = com_Items.InsertItem(h,,"Task 3");
		com_Items.CellState(hChild,COMVariant::createFromInt(0),1);
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
1170
How can I find all occurences of the giving value, within a column
public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.Columns().Add("Default");
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.FormatColumn("1 pos 'A-Z'");
		com_Column.Position(0);
		com_Column.AllowSizing(false);
		com_Column.Width(32);
		com_Column.Enabled(false);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Index")); com_Column1 = var_Column1;
		com_Column1.FormatColumn("0 index ''");
		com_Column1.AllowSizing(false);
		com_Column1.Width(32);
		com_Column1.Enabled(false);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("A");
		com_Items.AddItem("A");
		com_Items.AddItem("A");
		print( com_Items.CellCaption(com_Items.FindItem("A",COMVariant::createFromInt(0),COMVariant::createFromInt(0)),COMVariant::createFromInt(1)) );
		print( com_Items.CellCaption(com_Items.FindItem("A",COMVariant::createFromInt(0),COMVariant::createFromInt(1)),COMVariant::createFromInt(1)) );
		print( com_Items.CellCaption(com_Items.FindItem("A",COMVariant::createFromInt(0),COMVariant::createFromInt(2)),COMVariant::createFromInt(1)) );
	exgrid1.EndUpdate();
}
1169
How can I prevent expanding/collapsing the child items

// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
void onEvent_BeforeExpandItem(int   _Item,COMVariant /*variant*/   _Cancel)
{
	;
	_Cancel = exgrid1.Items().ItemParent(_Item);
}

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.SingleSel(false);
	exgrid1.Columns().Add("Default");
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(com_Items.InsertItem(h,,"Child 1.1"),,"Child");
		com_Items.InsertItem(h,,"Child 1.2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(com_Items.InsertItem(h,,"Child 2.1"),,"Child");
		com_Items.InsertItem(h,,"Child 2.2");
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
1168
How can I display the EBN bigger or smaller (thumb)

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

	super();

	exgrid1.BeginUpdate();
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		com_Appearance.Add(1,"c:\\exontrol\\images\\normal.ebn");
		com_Appearance.Add(10,"CP:1 0 3 0 -3");
		com_Appearance.Add(17,"CP:1 3 0 -3 0");
	exgrid1.Background(388/*exHSThumb*/,0xa000000);
	exgrid1.Background(260/*exVSThumb*/,0x11000000);
	exgrid1.ScrollBars(3855/*exVScrollEmptySpace | exHScrollEmptySpace | exVScrollOnThumbRelease | exHScrollOnThumbRelease | exDisableBoth*/);
	exgrid1.ScrollBySingleLine(true);
	exgrid1.Columns().Add("Def");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromInt(1));
		com_Items.AddItem(COMVariant::createFromInt(2));
		com_Items.AddItem(COMVariant::createFromInt(3));
	exgrid1.EndUpdate();
}
1167
I am using GroupBy feature to create a tree, but the top rows are aligned with the children, not indented. What could be wrong

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int   _Item)
{
	// AddBar(Item,"Progress", #12/2/2017#,#12/2/2017#)
	// DefineSummaryBars(Item,"", -3, "")
	// Chart.ItemBackColor(Item) = color
	COM com_Items;
	anytype var_Items;
	str color;
	;
	color = 14474460;
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.ItemDivider(_Item,-1);
		com_Items.CellValue(_Item,COMVariant::createFromInt(1),COMVariant::createFromStr(com_Items.CellCaption(_Item,com_Items.GroupItem(_Item))));
		com_Items.ItemBold(_Item,true);
		com_Items.ItemBackColor(_Item,color);
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	// AddBar(Item,"Task",#12/4/2017#,#12/10/2017#)
	// ItemBar(Item,"", 514)  = ItemToIndex(Item)
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exgrid1.Items(); com_Items = var_Items;
}

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

	super();

	exgrid1.BeginUpdate();
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("C1");
		com_Columns.Add("C2");
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.SortBarVisible(true);
	exgrid1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exgrid1.AllowGroupBy(true);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem B.1");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem B.1");
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column = var_Column;
	com_Column.SortOrder(1/*SortAscending*/);
	exgrid1.EndUpdate();
}
1166
How can I display an item of picture type

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.ScrollBySingleLine(false);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.HeaderHeight(24);
	COM::createFromVariant(exgrid1.Columns().Add("Artikel")).HTMLCaption("<u>Artikel");
	COM::createFromVariant(exgrid1.Columns().Add("Waarde")).HTMLCaption("<u>Waarde");
	exgrid1.HTMLPicture("T22128","c:\\exontrol\\images\\zipdisk.gif");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("T22128-28)2D");
		h1 = com_Items.InsertItem(h,,"<img>T22128:128</img>");
		com_Items.CellValueFormat(h1,COMVariant::createFromInt(0),1/*exHTML*/);
		com_Items.ItemHeight(h1,128);
		h1 = com_Items.InsertItem(h,,"werkvoorbereiding");
		com_Items.CellValue(h1,COMVariant::createFromInt(1),"5.80");
		com_Items.CellBold(h1,COMVariant::createFromInt(1),true);
		com_Items.CellValue(com_Items.InsertItem(h1,,"Type"),COMVariant::createFromInt(1),"Eenvoudig");
		com_Items.CellValue(com_Items.InsertItem(h1,,"Prijs p/uur"),COMVariant::createFromInt(1),"60,00");
		com_Items.CellValue(com_Items.InsertItem(h1,,"Marhe"),COMVariant::createFromInt(1),"15,00%");
		com_Items.CellValue(com_Items.InsertItem(h1,,"Insteltijd min."),COMVariant::createFromInt(1),"5,00");
		com_Items.CellValue(com_Items.InsertItem(h1,,"Aantal"),COMVariant::createFromInt(1),COMVariant::createFromInt(1));
		com_Items.CellValue(com_Items.InsertItem(h1,,"Kostprije"),COMVariant::createFromInt(1),"5,00");
		com_Items.ExpandItem(h1,true);
		h1 = com_Items.InsertItem(h,,"materiall");
		com_Items.CellValue(h1,COMVariant::createFromInt(1),"14.82");
		com_Items.CellBold(h1,COMVariant::createFromInt(1),true);
		com_Items.ItemHasChildren(h1,true);
		h1 = com_Items.InsertItem(h,,"snijden");
		com_Items.CellValue(h1,COMVariant::createFromInt(1),"3.13");
		com_Items.CellBold(h1,COMVariant::createFromInt(1),true);
		com_Items.ItemHasChildren(h1,true);
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
1165
Dark mode

public void init()
{
	str back,fore,var_s,var_s1,var_s2;
	;

	super();

	exgrid1.BeginUpdate();
	back = 65536;
	fore = 16777215;
	var_s = "gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQg";
	var_s = var_s + "mPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThd";
	var_s = var_s + "r4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA";
	exgrid1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	var_s1 = "gBFLBCJwBAEHhEJAAEhABPMIQAAYAQGKIcBiAKBQAGaAoDDcMgwQwAAxjIKUEwsACEIrjKCYVgOHYYQjGMZwHCMIhiGwcAChEZYHgkMYmDAMUhSE78axHG6PY7kKZ4bi";
	var_s1 = var_s1 + "aKIqQLLEhSfJ0YyBECBZpfebIbjmIZMSLEIxDKItJSpCIaRgqWS6ahGO4JUbUFLQHT9IR4daIYRgEEBA";
	exgrid1.VisualAppearance().Add(2,COMVariant::createFromStr(var_s1));
	var_s2 = "gBFLBCJwBAEHhEJAAEhABUUIQAAYAQGKIcBiAKBQAGaAoDDcMgwQwAAxjIKUEwsACEIrjKCYVgOHYYQjGMZwGAsEwjAoYAChEaILgkMw2DBIQwgJIMEr/G6RZxjeL5Cj";
	var_s2 = var_s2 + "mG4nDhKMpybAcXxjBIYZJgOQpXb+PobTrNNLzfRFAxVAaWJikcZ4HpIAJNVLFdQ0XYMNSBISsBqrKiKcpeIIDWBZMbRZT1ZABCIZBpEW6LahENQwXrCN74DYkNTdKaxb";
	var_s2 = var_s2 + "buaaXLhGCYBgIA==";
	exgrid1.VisualAppearance().Add(3,COMVariant::createFromStr(var_s2));
	exgrid1.HeaderAppearance(5/*Bump*/);
	exgrid1.BackColor(back);
	exgrid1.BackColorHeader(back);
	exgrid1.BackColorLevelHeader(back);
	exgrid1.BackColorSortBar(back);
	exgrid1.BackColorSortBarCaption(back);
	exgrid1.FilterBarBackColor(back);
	exgrid1.FilterBarForeColor(fore);
	exgrid1.ForeColor(fore);
	exgrid1.ForeColorHeader(fore);
	exgrid1.ForeColorSortBar(fore);
	exgrid1.SelBackColor(fore);
	exgrid1.SelForeColor(back);
	exgrid1.Background(0/*exHeaderFilterBarButton*/,0x1000000);
	exgrid1.Background(32/*exCursorHoverColumn*/,-1);
	exgrid1.Background(64/*exToolTipAppearance*/,0x3000000);
	exgrid1.Background(65/*exToolTipBackColor*/,back);
	exgrid1.Background(66/*exToolTipForeColor*/,fore);
	exgrid1.Background(20/*exSelBackColorFilter*/,fore);
	exgrid1.Background(21/*exSelForeColorFilter*/,back);
	exgrid1.Background(26/*exBackColorFilter*/,back);
	exgrid1.Background(27/*exForeColorFilter*/,fore);
	exgrid1.Background(28/*exSortBarLinkColor*/,back);
	exgrid1.Background(511/*exScrollSizeGrip*/,back);
	exgrid1.Description(25/*exFilterBarExclude*/,"<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>");
	exgrid1.EndUpdate();
}
1164
I have changed the font, but the item's height remains the same. What I am doing wrong

public void init()
{
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	exgrid1.LoadXML("http://www.exontrol.net/testing.xml");
	exgrid1.Font().Size(22);
	exgrid1.HeaderHeight(42);
	exgrid1.DefaultItemHeight(36);
	exgrid1.Items().ItemHeight(0,exgrid1.DefaultItemHeight());
	exgrid1.EndUpdate();
}
1163
How can I specify the cell's outline, border or lines around, when the cell gets selected

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.AttachTemplate("handle AddColumn(Column){Column{Def(48)=4;Def(49)=4;}}");
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYYLhEZAEiONoaDJCM4wHI";
		var_s = var_s + "MQxHCKTZRkGcfaRCGSfIzpGKpVgOTYiTbPcIyQKtBxDIydJTmeQQQhsFIJU7SdVUPDUJZlWbLAwWTAYazXCKRZBpeJqdo6Y5RUDKUqSdLUYyvEq7ZqnOIpw5vICpaCqO";
		var_s = var_s + "p6HqKFpiXSAFL1fLmAwvPKrJjoeqpWpyCaRZQAGg4dbEdTNNCIbatQANKrCSpgZ7sMB6Di2L4TPS2awoWgRYyTFZMbBAeQ7LC1c45Fqrd4zS4dSxKCahcLxFiaNpYZYn";
		var_s = var_s + "jUap1jGPJlkuAgAkidB3nceZsCQEQJCgGhMGcQ4pkiSxEAAOYpiQIhvkYNA2gSCg5n+LIoGILowFyXQoAYAoAmASAWAaAZgggJgKF2T54DYDoDmECBGBKBJgGgTgWgWY";
		var_s = var_s + "RoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChixULILGGGAWDCCgjCiTgrg0YxojoC4OmOSJ2D6D5kAgJLFgABAEICA=";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s));
		com_Appearance.Add(2,"CP:1 -4 0 0 0");
	exgrid1.SelBackColor(0x2000000);
	exgrid1.SelForeColor(WinApi::RGB2int(0,0,1));
	exgrid1.FullRowSelect(0/*exColumnSel*/);
	exgrid1.ShowFocusRect(false);
	exgrid1.DefaultItemHeight(24);
	exgrid1.HeaderHeight(24);
	exgrid1.DrawGridLines(2/*exVLines*/);
	exgrid1.Columns().Add("C1");
	exgrid1.Columns().Add("C2");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Cell 1"),COMVariant::createFromInt(1),"Cell 2");
		com_Items.CellValue(com_Items.AddItem("Cell 3"),COMVariant::createFromInt(1),"Cell 4");
	exgrid1.Items().SelectPos(COMVariant::createFromInt(1));
	exgrid1.SelectColumnIndex(1);
	exgrid1.EndUpdate();
}
1162
How can I specify the cell's outline, border or lines around, when the item gets selected

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.AttachTemplate("handle AddColumn(Column){Column{Def(48)=4;Def(49)=4;}}");
	var_s = "gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYYLhEZAEiONoaDJCM4wHI";
	var_s = var_s + "MQxHCKTZRkGcfaRCGSfIzpGKpVgOTYiTbPcIyQKtBxDIydJTmeQQQhsFIJU7SdVUPDUJZlWbLAwWTAYazXCKRZBpeJqdo6Y5RUDKUqSdLUYyvEq7ZqnOIpw5vICpaCqO";
	var_s = var_s + "p6HqKFpiXSAFL1fLmAwvPKrJjoeqpWpyCaRZQAGg4dbEdTNNCIbatQANKrCSpgZ7sMB6Di2L4TPS2awoWgRYyTFZMbBAeQ7LC1c45Fqrd4zS4dSxKCahcLxFiaNpYZYn";
	var_s = var_s + "jUap1jGPJlkuAgAkidB3nceZsCQEQJCgGhMGcQ4pkiSxEAAOYpiQIhvkYNA2gSCg5n+LIoGILowFyXQoAYAoAmASAWAaAZgggJgKF2T54DYDoDmECBGBKBJgGgTgWgWY";
	var_s = var_s + "RoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChixULILGGGAWDCCgjCiTgrg0YxojoC4OmOSJ2D6D5kAgJLFgABAEICA=";
	exgrid1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	exgrid1.SelBackColor(0x1000000);
	exgrid1.SelForeColor(WinApi::RGB2int(0,0,1));
	exgrid1.ShowFocusRect(false);
	exgrid1.DefaultItemHeight(24);
	exgrid1.HeaderHeight(24);
	exgrid1.DrawGridLines(2/*exVLines*/);
	exgrid1.Columns().Add("C1");
	exgrid1.Columns().Add("C2");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Cell 1"),COMVariant::createFromInt(1),"Cell 2");
		com_Items.CellValue(com_Items.AddItem("Cell 3"),COMVariant::createFromInt(1),"Cell 4");
		com_Items.SelectPos(COMVariant::createFromInt(1));
	exgrid1.EndUpdate();
}
1161
How can I specify the cell's outline, border or lines around

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.AttachTemplate("handle AddColumn(Column){Column{Def(48)=4;Def(49)=4;}}");
	var_s = "gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYYLhEZAEiONoaDJCM4wHI";
	var_s = var_s + "MQxHCKTZRkGcfaRCGSfIzpGKpVgOTYiTbPcIyQKtBxDIydJTmeQQQhsFIJU7SdVUPDUJZlWbLAwWTAYazXCKRZBpeJqdo6Y5RUDKUqSdLUYyvEq7ZqnOIpw5vICpaCqO";
	var_s = var_s + "p6HqKFpiXSAFL1fLmAwvPKrJjoeqpWpyCaRZQAGg4dbEdTNNCIbatQANKrCSpgZ7sMB6Di2L4TPS2awoWgRYyTFZMbBAeQ7LC1c45Fqrd4zS4dSxKCahcLxFiaNpYZYn";
	var_s = var_s + "jUap1jGPJlkuAgAkidB3nceZsCQEQJCgGhMGcQ4pkiSxEAAOYpiQIhvkYNA2gSCg5n+LIoGILowFyXQoAYAoAmASAWAaAZgggJgKF2T54DYDoDmECBGBKBJgGgTgWgWY";
	var_s = var_s + "RoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChixULILGGGAWDCCgjCiTgrg0YxojoC4OmOSJ2D6D5kAgJLFgABAEICA=";
	exgrid1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	exgrid1.SelBackMode(1/*exTransparent*/);
	exgrid1.ShowFocusRect(false);
	exgrid1.DefaultItemHeight(24);
	exgrid1.HeaderHeight(24);
	exgrid1.DrawGridLines(2/*exVLines*/);
	exgrid1.Columns().Add("C1");
	exgrid1.Columns().Add("C2");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Cell 1"),COMVariant::createFromInt(1),"Cell 2");
		h = com_Items.AddItem("Cell 2");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Cell 3");
		com_Items.CellBackColor(h,COMVariant::createFromInt(1),0x1000000);
	exgrid1.EndUpdate();
}
1160
Is it possible to highligth the match while a filter is applied

// AddColumn event - Fired after a new column has been added.
void onEvent_AddColumn(COM   _Column)
{
	// Column.Def(17) = 1
	;
}

// FilterChange event - Occurs when filter was changed.
void onEvent_FilterChange()
{
	COM com_Column;
	COMVariant format;
	anytype var_Column;
	;
	format = exgrid1.FormatABC("`value replace '` + value + `' with '<bgcolor 000000><fgcolor FFFFFF>` + value  + `</fgcolor></bgcolor>'`",COMVariant::createFromStr(exgrid1.FilterBarPromptPattern()));
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column = var_Column;
	com_Column.FormatColumn(format);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
	com_Column.FormatColumn(format);
}

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.DrawGridLines(2/*exVLines*/);
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.Columns().Add("Col 1");
	exgrid1.Columns().Add("Col 2");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("219 Smith"),COMVariant::createFromInt(1),"Ignacio 1234");
		com_Items.CellValue(com_Items.AddItem("1666 County Road 309A"),COMVariant::createFromInt(1),"897 Manassa");
		com_Items.CellValue(com_Items.AddItem("38 Lone Pine"),COMVariant::createFromInt(1),"Durango 11");
		com_Items.CellValue(com_Items.AddItem("612 Jachim Street"),COMVariant::createFromInt(1),"Lamar 222");
	exgrid1.FilterBarPromptPattern("1");
	exgrid1.FilterBarPromptVisible(2067/*exFilterBarCompact | exFilterBarSingleLine | exFilterBarVisible | exFilterBarPromptVisible*/);
	exgrid1.FilterBarPromptType(257/*exFilterPromptCaseSensitive | exFilterPromptContainsAll*/);
	exgrid1.EndUpdate();
}
1159
How can I replace the cell's context menu ( while edit mode is running )

// RClick event - Fired when right mouse button is clicked
void onEvent_RClick()
{
	COM com_ExContextMenu,com_Items;
	anytype var_ExContextMenu,var_Items;
	;
	print( "Edit Mode: " );
	print( exgrid1.Editing() );
	// Add 'excontextmenu.dll(ExContextMenu.dll)' reference to your project.
	// Add 'ExContextMenu 1.0 Type Library(ExContextMenu.dll)' reference to your project.
	var_ExContextMenu = COM::createFromObject(new EXCONTEXTMENULib.excontextmenu()); com_ExContextMenu = var_ExContextMenu;
		var_Items = COM::createFromObject(com_ExContextMenu.Items()); com_Items = var_Items;
		com_Items.ToString("Check[chk],[sep],Item 1,Item 2,Item 3,Popup(A,B,C)");
		print( com_ExContextMenu.Select() );
}

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(1/*Flat*/);
	var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Column")).Editor(); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
		com_Editor.Option(202/*exEditAllowContextMenu*/,COMVariant::createFromBoolean(false));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.AddItem("Item 2");
	exgrid1.EndUpdate();
}
1158
Is it possible to highlight the column's header once a filter is applied (sample 2)

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

	super();

	exgrid1.BeginUpdate();
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAEhABO8GACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwQgmNYDSBMcbwSA";
		var_s = var_s + "sXRYFocJ5gOT6AjKBA2UclEZpajiTY3ABUEgUS5oOBIACqariaQJAAiCRQGiYZyHKaRSwPBKFYDIIjbJheTIDChNVxUcDENQjJqLBIDRzbarye59YBfeBXdgmA4LQbDM";
		var_s = var_s + "RwNgMMQTDqKYbkOQZHbeGKAWTMEZzJj8cxTEqIaBhGTLfojSZMS7UGK1LLtMyHI6kP7sOiLfi2W4/W7XV72F79TzXIa2ZBuO57bhnAZ/VzGNj4PRNezfRqicjsGxcZwX";
		var_s = var_s + "g+TpQj0ew6gSOw7wSbozjsfYXi8PwMnSc52leHotl+MxjmoXh2nybxOH+SQtnYXx+D2P4vGMB56hQf5PCgBYeDwYBCEo1xggebgKH6IIDBYBgkiAQ5FgYPAhEIRgWGqD";
		var_s = var_s + "BoC4GoCiGCBYhGBQPAWdIQp0eIUiWCZigiJgqgqYpIioJQhmIMhBH0NxjEMag2g2Y4ImYOoOmOSJeDQNxXlOLR3ECUAQICA=";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s));
		var_s1 = "gBFLBCJwBAEHhEJAAEhABgsHQAAYAQGKIcBiAKBQAGaAoDDYNwwQwAAxDAKcEwsACEIrjKCRShyCYZRrGUgRCKQahLEiTIhGUYJHgmK4tRoAUgxWCEExrAaQJjjeCQFi";
		var_s1 = var_s1 + "6LAtDhPMByfQEZQIGyjkgjNLUcSbG4AKgkCiXfpUAJVP7FcgSABEEigNIxToOU4jFgeCYLQKQRK2RC9GQGFCbLhpYKIahGTYWVheN5XXblez9P7ABQwKCcAwXBp7YIKA";
		var_s1 = var_s1 + "T4XBIdYdQ7IL4xGA0AJPFoJC7mOQ5XiYAIBAZ/RL0LCcbxHHafVboQj6JouD5PUDVNY1XBdPynI6CbLhWy6Dq4UZzPwzeBifSHfDjRoJcCZe71KY3GwSEboNA6Kp+QBH";
		var_s1 = var_s1 + "AmZoZjSPYIEiF47lOLJVnuYofBwJJHmaQoYj0MIRHeM4/m6cJ8B+fpBHQJ5SGKPYYH8OYMk+P5Bn4fxaAYZAvEIX4RgUWBGgCCAmAqApgkgNgOgMEYlGASoEkQeBWBaB";
		var_s1 = var_s1 + "ZhggZgagaYRoEwShWA6NZZAMQBAICA==";
		com_Appearance.Add(2,COMVariant::createFromStr(var_s1));
	exgrid1.Background(0/*exHeaderFilterBarButton*/,0x1000000);
	exgrid1.Background(41/*exHeaderFilterBarActive*/,0x2000000);
	exgrid1.Background(32/*exCursorHoverColumn*/,-1);
	exgrid1.HeaderHeight(28);
	exgrid1.BackColorHeader(WinApi::RGB2int(255,255,255));
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	exgrid1.HeaderVisible(1);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("C1")).DisplayFilterButton(true);
		var_Column = COM::createFromVariant(com_Columns.Add("C2")); com_Column = var_Column;
			com_Column.DisplayFilterButton(true);
			com_Column.Filter("Item 2");
			com_Column.FilterType(240/*exFilter*/);
		COM::createFromVariant(com_Columns.Add("C3")).DisplayFilterButton(true);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Item 1");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Item 2");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"Item 3");
		h = com_Items.AddItem("Item 4");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Item 5");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"Item 6");
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1157
How can I make the expand/collapse glyphs DPI aware

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

	super();

	size = 2;
	exgrid1.BeginUpdate();
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAEhEGAUHQAAYAQGKIcBiAKBQAGaAoDDYOA4QwAAxDAKcEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBRfIUEghGyNZjgNzQcC";
		var_s = var_s + "QAI8T5IUgARBJIDSMY6DpOIxYHgmC4DEITNLxOK0EhRHCBZrgOCAYhqEY1Ro+dhPFYjVTMdK0LRtKy7Mq2aJmOpZDxWE7dZKpO5fbxXS67cr2fp/YBed4rfa7KTlOBKc";
		var_s = var_s + "RQRBEFQPDqPZBkORZHh2FoLRJKbgtHJmHYNQWhVyYBbNCyTI6lahpeuHBx1QaWWxjbCMEr6bpoWLbFi3Ha1UzrPa8b5vSw7Gr+HzYQTHGPXGqaYJdZrnea6B7+U5XUJr";
		var_s = var_s + "nSOZciYHwhAeR5HDK+JVGqKRRmScx5HyfRei+H5bmmcp4Fi8o/CGGJKGQKZUGoFQigUPIiCeSZXnyHB6l0SAJn8JxfkIeZ5CgXxjCCAhyB8QgIlAM4MlKAIcCaIBIGYG";
		var_s = var_s + "oGGEYhqBMMxgnICgRDUDQjESGwmAkWBuCqBoiHIVgkDQYgYESWg2E0YhohcJQigITg3CQSRyEyEYGGOWJwhQJD4FiFIMk0aJFGsIBkkOBJeDc+AchYJwJgIWhSgYZQpF";
		var_s = var_s + "IVoVGOGQ4l2EwIBWMhgDmDhThCEwkAiaJchKDhjhgZhsCUY4iFCEoZkiaYQmSGAWhWQhgDuDpTjCDQiEgchAg0IpJBoDoFiEKBqCaCAimgIguH8IZnkPUhcBcJg+hGJZ";
		var_s = var_s + "nloYJsiaKZKGa24YnWSR0CkKhCA2CxlCqColhAYpqEKER0DqVZ0A0ASAgA==";
		com_Appearance.Add(3,COMVariant::createFromStr(var_s));
		var_s1 = "gBFLBCJwBAEHhEJAAEhABAQCg6AADACAxRDgMQBQKAAzQFAYbBwHCGAAGIYBTgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACjeQYJBCNYbTJAbqhYI";
		var_s1 = var_s1 + "gAR3HqQZABCCSQKkYx0HScRiwPBMFwGIQmaaicZoJCiN4DTZAcIBRDUIxpDR9bBeKw3KqVaZnWhaNpWXZlTzKdSxXisF67RZSdi/XgvF5XXblez9P69LwXe5mUrGbyVY";
		var_s1 = var_s1 + "ghCCIKgeG4dR7IMhyLDcKQXCCVW7aGSsOwbAqAXpdGAXTQdDyLJKnaZqOi6BjjA4rNbHGIYJb1XTRMa1LJuG5LJrOeZ3Xre4BLfh1VoFRpjWIYNY1QS7TLOczzfRdDxT";
		var_s1 = var_s1 + "iGVpkjCeJoD4Ng1hSRxiisVRKg8D4PkWZJznmPQ+F8Xx5guWpjHGWYMiYQodEaIRSCgU5KCSeh3naHB/iAAh9n8fwfgIeZ1CgXwjCCAhxl8AgIlAM4MlKAIcCaD54FYF";
		var_s1 = var_s1 + "oFmGCBmBaBIJigPJNgKSAoDSVC+BIbIYCUYYoiYKoJgkWIMlGCAglMaJZDWCYiFyFIJkkOJYhEJc7G4PYPCOaJshQJBjgiVIUgyDRokEaggGSQ4El4N1CBiFgnAmAhaF";
		var_s1 = var_s1 + "KFZlFkShUhWJRYmITg3GSQgFGuGBOGOFJkCSSQCDoNgkiOCY0hUJJmmmQhvhqZtYmUOQmBWIRvhgTpjjSbAjEiEgchBZgyEaBIhigWgegqIhIjoDILiACB5nTL5WnWRY";
		var_s1 = var_s1 + "OiSKYJnqGQ7CmOh2hqJ5OkYORxFyShKhSAxihkOomioY5YiqFIkFyTo1HkAxAEAgIA==";
		com_Appearance.Add(4,COMVariant::createFromStr(var_s1));
		com_Appearance.Add(1,exgrid1.FormatABC("`CP:3 -` + int(value*dpi) + ` -` + int(value*dpi) + ` ` +  int(value*dpi) + ` ` + int(value*dpi)",size));
		com_Appearance.Add(2,exgrid1.FormatABC("`CP:4 -` + int(value*dpi) + ` -` + int(value*dpi) + ` ` +  int(value*dpi) + ` ` + int(value*dpi)",size));
	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();
}
1156
Is it possible to highlight the column's header once a filter is applied (sample 1)

public void init()
{
	COM com_Appearance,com_Column,com_Columns,com_Items;
	anytype var_Appearance,var_Column,var_Columns,var_Items;
	int h;
	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 -8 -4 2 4");
	exgrid1.Background(0/*exHeaderFilterBarButton*/,0x1fefefe);
	exgrid1.Background(41/*exHeaderFilterBarActive*/,0x1010101);
	exgrid1.Background(32/*exCursorHoverColumn*/,-1);
	exgrid1.HeaderHeight(28);
	exgrid1.BackColorHeader(WinApi::RGB2int(255,255,255));
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	exgrid1.HeaderVisible(1);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("C1")).DisplayFilterButton(true);
		var_Column = COM::createFromVariant(com_Columns.Add("C2")); com_Column = var_Column;
			com_Column.DisplayFilterButton(true);
			com_Column.Filter("Item 2");
			com_Column.FilterType(240/*exFilter*/);
		COM::createFromVariant(com_Columns.Add("C3")).DisplayFilterButton(true);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Item 1");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Item 2");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"Item 3");
		h = com_Items.AddItem("Item 4");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Item 5");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"Item 6");
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1155
How do I update itemcount and matchitemcount of the FilterBarCaption after I added the item using the AddItem method
// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
void onEvent_Click()
{
	;
	exgrid1.Items().AddItem("new");
	exgrid1.Refresh();
}

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");
	var_s = "`<r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount + 1)";
	var_s = var_s + " + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )";
	exgrid1.FilterBarCaption(var_s);
	exgrid1.FilterBarPromptVisible(3591/*exFilterBarCompact | exFilterBarShowCloseOnRight | exFilterBarShowCloseIfRequired | exFilterBarCaptionVisible | exFilterBarVisible | exFilterBarPromptVisible*/);
	exgrid1.EndUpdate();
}
1154
I can't get values in the column properly centered. What can be the problem

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.TreeColumnIndex(-1);
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Default")); com_Column = var_Column;
		com_Column.Alignment(1/*CenterAlignment*/);
		com_Column.FormatColumn("ltrim(rtrim(value))");
	exgrid1.Items().AddItem("item 1            ");
	exgrid1.Items().AddItem("             item 2");
	exgrid1.Items().AddItem("   item 3                ");
	exgrid1.EndUpdate();
}
1153
The Edit method does not work while ReadOnly property is exLocked and the first column is hidden. Is there any fix

// DblClick event - Occurs when the user dblclk the left mouse button over an object.
void onEvent_DblClick(int   _Shift,int   _X,int   _Y)
{
	int var_ItemFromPoint;
	;
	var_ItemFromPoint = exgrid1.ItemFromPoint(-1,-1,c,hit);
	exgrid1.FocusColumnIndex(c);
	exgrid1.Edit();
}

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.AutoEdit(false);
	exgrid1.ReadOnly(1/*exLocked*/);
	exgrid1.AutoSearch(true);
	COM::createFromVariant(exgrid1.Columns().Add("")).Visible(false);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Contains")); com_Column = var_Column;
		com_Column.AutoSearch(1/*exContains*/);
		var_Editor = COM::createFromObject(com_Column.Editor()); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem(),COMVariant::createFromInt(1),"Tom Hanks");
		com_Items.CellValue(com_Items.AddItem(),COMVariant::createFromInt(1),"Leonardo DiCaprio");
		com_Items.CellValue(com_Items.AddItem(),COMVariant::createFromInt(1),"Will Smith");
		com_Items.CellValue(com_Items.AddItem(),COMVariant::createFromInt(1),"Tom Cruise");
	exgrid1.EndUpdate();
}
1152
How can I enable the Undo/Redo feature

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.AllowUndoRedo(true);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.HeaderAppearance(4/*Etched*/);
	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_Column1 = COM::createFromVariant(exgrid1.Columns().Add("P2")); com_Column1 = var_Column1;
		com_Column1.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column1.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);
		com_Items.AddItem("Press CTRL + Z for Undo, and CTRL + Y for Redo");
	exgrid1.EndUpdate();
}
1151
The incremental search feature is no working for columns with editor assigned. What can be done

// DblClick event - Occurs when the user dblclk the left mouse button over an object.
void onEvent_DblClick(int   _Shift,int   _X,int   _Y)
{
	;
	exgrid1.Edit();
}

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.AutoEdit(false);
	exgrid1.AutoSearch(true);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Contains")); com_Column = var_Column;
		com_Column.AutoSearch(1/*exContains*/);
		var_Editor = COM::createFromObject(com_Column.Editor()); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Tom Hanks");
		com_Items.AddItem("Leonardo DiCaprio");
		com_Items.AddItem("Will Smith");
		com_Items.AddItem("Tom Cruise");
	exgrid1.EndUpdate();
}
1150
Each item is representated by a key as string. Is it possible to have a drop down editor to display more information when using the item's key

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Multiple-Columns Tree DropDownListType")).Editor(); com_Editor = var_Editor;
		com_Editor.EditType(3/*DropDownListType*/);
		com_Editor.AddItem(0,"KR|Korea, Republic of");
		com_Editor.AddItem(1,"MO|Macao");
		com_Editor.AddItem(2,"SA|Saudi Arabia");
		com_Editor.AddItem(3,"EG|Egypt");
		com_Editor.AddItem(4,"GB|United Kingdom");
		com_Editor.AddItem(5,"GT|Guatemala");
		com_Editor.AddItem(6,"SR|Suriname");
		com_Editor.AddItem(7,"BM|Bermuda");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("EG");
		com_Items.AddItem("GB");
		com_Items.AddItem("BM");
	exgrid1.EndUpdate();
}
1149
My table includes codes/keys for items, can I display a drop down editor to include more information

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Multiple-Columns DropDownListType")).Editor(); com_Editor = var_Editor;
		com_Editor.EditType(3/*DropDownListType*/);
		com_Editor.DropDownAutoWidth(0/*exDropDownEditorWidth*/);
		com_Editor.Option(57/*exDropDownColumnCaption*/,"City¦Coordinates¦State");
		com_Editor.AddItem(0,"JV3|Jollyville¦3026N 09746W¦Texas");
		com_Editor.AddItem(1,"TMO|Altamont¦4021N 11017W¦Utah");
		com_Editor.AddItem(2,"IIM|Williamston¦4241N 08417W¦Michigan");
		com_Editor.AddItem(3,"IWN|Merrittstown¦3958N 07952W¦Pennsylvania");
		com_Editor.AddItem(4,"HOU|Houston¦2945N 09521W¦Texas");
		com_Editor.AddItem(5,"GSF|Gales Ferry¦4125N 07205W¦Connecticut");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("HOU");
		com_Items.AddItem("IIM");
		com_Items.AddItem("TMO");
	exgrid1.EndUpdate();
}
1148
How can I display and select from a multiple-columns tree editor

public void init()
{
	COM com_Editor,com_Items;
	anytype var_Editor,var_Items;
	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.HeaderAppearance(4/*Etched*/);
	var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Multiple-Columns Tree DropDownListType")).Editor(); com_Editor = var_Editor;
		com_Editor.EditType(3/*DropDownListType*/);
		com_Editor.DropDownAutoWidth(0/*exDropDownEditorWidth*/);
		com_Editor.Option(57/*exDropDownColumnCaption*/,"Name¦Title¦City¦Phone");
		com_Editor.Option(58/*exDropDownColumnWidth*/,"224¦¦¦96");
		com_Editor.AddItem(1,"Nancy Davolio¦Sales Representative¦Seattle¦(206) 555-9857",COMVariant::createFromInt(1));
		com_Editor.AddItem(2,"Andrew Fuller¦<b>Vice President</b>, Sales¦Tacoma¦(206) 555-9482",COMVariant::createFromInt(2));
		com_Editor.InsertItem(3,"Janet Leverling¦Sales Representative¦Kirkland¦(206) 555-3412",COMVariant::createFromInt(3),COMVariant::createFromInt(2));
		com_Editor.InsertItem(4,"Peacock Margaret¦Sales Representative¦Redmond¦(206) 555-8122",COMVariant::createFromInt(3),COMVariant::createFromInt(2));
		com_Editor.InsertItem(5,"Steven Buchanan¦Sales Manager¦London¦(71) 555-4848",COMVariant::createFromInt(2),COMVariant::createFromInt(2));
		com_Editor.InsertItem(6,"Michael Suyama¦Sales Representative¦London¦(71) 555-7773",COMVariant::createFromInt(1),COMVariant::createFromInt(5));
		com_Editor.InsertItem(7,"Robert King¦Sales Representative¦Kirkland¦(71) 555-5598",COMVariant::createFromInt(2),COMVariant::createFromInt(2));
		com_Editor.InsertItem(8,"Laura Callahan¦Inside Sales Coordinator¦Seattle¦(206) 555-1189",COMVariant::createFromInt(3),COMVariant::createFromInt(2));
		com_Editor.InsertItem(9,"Anne Dodsworth¦Sales Representative¦London¦(71) 555-4444",COMVariant::createFromInt(2),COMVariant::createFromInt(5));
		com_Editor.ExpandAll();
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromInt(1));
		com_Items.AddItem(COMVariant::createFromInt(2));
		com_Items.AddItem(COMVariant::createFromInt(4));
	exgrid1.EndUpdate();
}
1147
Does you control support multiple-columns for a drop down editor

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Multiple-Columns DropDownListType")).Editor(); com_Editor = var_Editor;
		com_Editor.EditType(3/*DropDownListType*/);
		com_Editor.DropDownAutoWidth(0/*exDropDownEditorWidth*/);
		com_Editor.AddItem(0,"Jollyville¦JV3¦3026N 09746W¦TX");
		com_Editor.AddItem(1,"Altamont¦TMO¦4021N 11017W¦UT");
		com_Editor.AddItem(2,"Williamston¦IIM¦4241N 08417W¦MI");
		com_Editor.AddItem(3,"Merrittstown¦IWN¦3958N 07952W¦PA");
		com_Editor.AddItem(4,"Houston¦HOU¦2945N 09521W¦TX");
		com_Editor.AddItem(5,"Gales Ferry¦GSF¦4125N 07205W¦CT");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.InsertItem(0,"",COMVariant::createFromInt(1));
		com_Items.InsertItem(0,"",COMVariant::createFromInt(2));
		com_Items.InsertItem(0,"",COMVariant::createFromInt(4));
	exgrid1.EndUpdate();
}
1146
Is it possible to show the filterbar on top of the rows

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.FilterBarPromptVisible(8192/*exFilterBarTop*/);
	exgrid1.HeaderHeight(24);
	exgrid1.FilterBarHeight(exgrid1.HeaderHeight());
	exgrid1.HeaderAppearance(1/*Flat*/);
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	exgrid1.GridLineStyle(512/*exGridLinesGeometric*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Column")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterType(3/*exPattern*/);
		com_Column.Filter("B*");
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Index")); com_Column1 = var_Column1;
		com_Column1.FormatColumn("1 index ``");
		com_Column1.Position(0);
		com_Column1.Width(48);
		com_Column1.AllowSizing(false);
		com_Column1.SortType(1/*SortNumeric*/);
		com_Column1.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("A.1");
		com_Items.AddItem("A.2");
		com_Items.AddItem("B.1");
		com_Items.AddItem("B.2");
		com_Items.AddItem("B.3");
		com_Items.AddItem("C");
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1145
DragDrop (with visual effect)

// OLEDragDrop event is not supported. Use the DragEnter,DragLeave,DragOver, DragDrop ... events.
// OLEStartDrag event is not supported. Use the DragEnter,DragLeave,DragOver, DragDrop ... events.
public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	str var_s;
	;

	super();

	var_s = "gBFLBCJwBAEHhEJAAEhABPUIQAAYAQGKIcBiAKBQAGaAoDgYN4MAANAwjJBMKgBBCLIxhEYobgmGIaRjEEQDCKYcxHCaIBiGcaIfDEBIeSBHcgRbAcOQHGSZZBhGRJGj";
	var_s = var_s + "uKIbSrLICzBDUcRnGwAKQoaaaEomHwyAZOYwDAIoWhpKKCKjqWJKNb+XgAAJTES0RRVRTNAZ1YghGAQgIA==";
	exgrid1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	exgrid1.Background(96/*exListOLEDropPosition*/,0x1000000);
	exgrid1.Background(33/*exDragDropBefore*/,WinApi::RGB2int(0,0,0));
	exgrid1.Background(34/*exDragDropAfter*/,WinApi::RGB2int(255,255,255));
	exgrid1.OLEDropMode(1/*exOLEDropManual*/);
	exgrid1.AutoDrag(196608/*exAutoDragPositionAnyOnRight*/);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.Indent(16);
	exgrid1.SelBackMode(1/*exTransparent*/);
	exgrid1.Columns().Add("Default");
	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);
	print( "You can:" );
	print( "A) left-click to drag and drop items between controls (open a new exhelper and run the same sample)" );
	print( "B) right-click to re-arrange the item position inside the same control" );
	print( "This sample shows how you can insert the data being dropped as a child of the item being hovered." );
}
1144
DragDrop (with no visual effect, hide item while drag and drop)

// OLEDragDrop event is not supported. Use the DragEnter,DragLeave,DragOver, DragDrop ... events.
// OLEStartDrag event is not supported. Use the DragEnter,DragLeave,DragOver, DragDrop ... events.
public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	exgrid1.Background(33/*exDragDropBefore*/,WinApi::RGB2int(0,0,0));
	exgrid1.Background(34/*exDragDropAfter*/,WinApi::RGB2int(255,255,255));
	exgrid1.OLEDropMode(1/*exOLEDropManual*/);
	exgrid1.AutoDrag(196608/*exAutoDragPositionAnyOnRight*/);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.Indent(16);
	exgrid1.SelBackMode(1/*exTransparent*/);
	exgrid1.Columns().Add("Default");
	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);
	print( "You can:" );
	print( "A) left-click to drag and drop items between controls (open a new exhelper and run the same sample)" );
	print( "B) right-click to re-arrange the item position inside the same control" );
	print( "This sample shows how you can insert the data being dropped as a child of the item being hovered." );
}
1143
DragDrop

// OLEDragDrop event is not supported. Use the DragEnter,DragLeave,DragOver, DragDrop ... events.
// OLEStartDrag event is not supported. Use the DragEnter,DragLeave,DragOver, DragDrop ... events.
public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	exgrid1.OLEDropMode(1/*exOLEDropManual*/);
	exgrid1.AutoDrag(196608/*exAutoDragPositionAnyOnRight*/);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.Indent(16);
	exgrid1.SelBackMode(1/*exTransparent*/);
	exgrid1.Columns().Add("Default");
	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);
	print( "You can:" );
	print( "A) left-click to drag and drop items between controls (open a new exhelper and run the same sample)" );
	print( "B) right-click to re-arrange the item position inside the same control" );
	print( "This sample shows how you can insert the data being dropped as a child of the item being hovered." );
}
1142
Is there anyway to stop the header changing colour when the mouse hovers/moves across the column header (non-clickable)

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Item");
		var_Column = COM::createFromVariant(com_Columns.Add("Pos")); com_Column = var_Column;
			com_Column.Position(0);
			com_Column.Width(32);
			com_Column.AllowSizing(false);
			com_Column.FormatColumn("1 index ``");
			com_Column.AllowSort(false);
			com_Column.AllowDragging(false);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.EndUpdate();
}
1141
Is there anyway to stop the header changing colour when the mouse hovers/moves across the column header

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.Background(32/*exCursorHoverColumn*/,-1);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Item");
		var_Column = COM::createFromVariant(com_Columns.Add("Pos")); com_Column = var_Column;
			com_Column.Position(0);
			com_Column.Width(32);
			com_Column.AllowSizing(false);
			com_Column.FormatColumn("1 index ``");
			com_Column.AllowSort(false);
			com_Column.AllowDragging(false);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.EndUpdate();
}
1140
Is it possible to exclude the parent/child items when do the filtering, so to include only items that match the filter without any indentation

// FilterChange event - Occurs when filter was changed.
void onEvent_FilterChange()
{
	;
	exgrid1.Indent(exgrid1.FormatABC("value > 0 ? 18 : 0",.Items().MatchItemCount()));
}

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.Indent(18);
	exgrid1.FilterInclude(4/*exMatchingItemsOnly*/);
	exgrid1.DrawGridLines(2/*exVLines*/);
	exgrid1.HeaderAppearance(1/*Flat*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Column")); com_Column = var_Column;
			com_Column.DisplayFilterButton(true);
			com_Column.FilterType(240/*exFilter*/);
			com_Column.FilterList(256/*exShowCheckBox*/);
			com_Column.Filter("C1");
		var_Column1 = COM::createFromVariant(com_Columns.Add("Pos")); com_Column1 = var_Column1;
			com_Column1.FormatColumn("1 rindex ``");
			com_Column1.Position(0);
			com_Column1.AllowSizing(false);
			com_Column1.AllowDragging(false);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("R1");
		h2 = com_Items.InsertItem(h,,"S");
		com_Items.InsertItem(h2,,"C1");
		com_Items.InsertItem(h2,,"C2");
		com_Items.InsertItem(h,,"C1");
		com_Items.InsertItem(h,,"C2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("R2");
		com_Items.InsertItem(h,,"C1");
		com_Items.InsertItem(h,,"C2");
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
1139
How can I display the total/sum/aggregate in the same column, when the user groups by a column

// AddColumn event - Fired after a new column has been added.
void onEvent_AddColumn(COM   _Column)
{
	;
}

// 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.ItemDivider(_Item,-1);
		com_Items.ItemBackColor(_Item,exgrid1.BackColorSortBar());
		com_Items.ItemHeight(_Item,exgrid1.HeaderHeight());
		com_Items.CellMerge(_Item,COMVariant::createFromInt(0),"1,2,3,4,5,7,8,9,10,11,12");
		com_Items.CellValue(_Item,COMVariant::createFromInt(13),"count(current,rec,1)");
		com_Items.CellValueFormat(_Item,COMVariant::createFromInt(13),5/*exTotalField | exHTML*/);
		com_Items.CellValue(_Item,COMVariant::createFromInt(0),COMVariant::createFromStr(com_Items.CellCaption(_Item,com_Items.GroupItem(_Item))));
		com_Items.FormatCell(_Item,COMVariant::createFromInt(0),"`<b>` + value + `</b> <font ;7><off 3><fgcolor=808080>(` + %13 +  `)`");
		com_Items.CellValue(_Item,COMVariant::createFromInt(6),"sum(current,all,dbl(%6))");
		com_Items.CellValueFormat(_Item,COMVariant::createFromInt(6),5/*exTotalField | exHTML*/);
		com_Items.CellForeColor(_Item,COMVariant::createFromInt(6),WinApi::RGB2int(102,102,102));
}

// 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_Columns,com_Items,com_rs;
	anytype rs,var_Column,var_Column1,var_Column2,var_Columns,var_Items;
	int hL;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(5/*exGroupLinesOutside*/);
	exgrid1.Indent(12);
	exgrid1.ColumnAutoResize(false);
	exgrid1.ScrollBySingleLine(true);
	exgrid1.BackColorSortBar(WinApi::RGB2int(240,240,240));
	exgrid1.AutoDrag(16/*exAutoDragScroll*/);
	// 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\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SingleSort(false);
	exgrid1.SortBarVisible(true);
	exgrid1.AllowGroupBy(true);
	exgrid1.HeaderHeight(24);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("Count")).Visible(false);
		var_Column = com_Columns.Item("Freight"); com_Column = var_Column;
			com_Column.Def(4/*exCellBackColor*/,exgrid1.BackColorSortBar());
			com_Column.Def(7/*exHeaderBackColor*/,com_Column.Def(4/*exCellBackColor*/));
			com_Column.Def(49/*exCellPaddingRight*/,COMVariant::createFromInt(4));
			com_Column.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(4));
			com_Column.HeaderBold(true);
			com_Column.AllowGroupBy(false);
			com_Column.FormatColumn("value format ``");
			com_Column.Alignment(2/*RightAlignment*/);
		var_Column1 = com_Columns.Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
			com_Column1.AllowGroupBy(false);
			com_Column1.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
		var_Column2 = COM::createFromObject(com_Columns.Item("ShipCountry")); com_Column2 = var_Column2;
		com_Column2.SortOrder(1/*SortAscending*/);
	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.ItemHeight(hL,24);
		com_Items.ItemBold(hL,true);
		com_Items.ItemBackColor(hL,exgrid1.BackColorSortBar());
		com_Items.CellValue(hL,COMVariant::createFromInt(6),"sum(all,rec,dbl(%6))");
		com_Items.CellValueFormat(hL,COMVariant::createFromInt(6),5/*exTotalField | exHTML*/);
		com_Items.CellHAlignment(hL,COMVariant::createFromInt(6),2/*RightAlignment*/);
		com_Items.FormatCell(hL,COMVariant::createFromInt(6),"value format ``");
	exgrid1.EndUpdate();
}
1138
I would like to display a solid line between "root" items, and dotted lines (default) between child items. How can I do that

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.DrawGridLines(1/*exHLines*/);
	exgrid1.GridLineStyle(512/*exGridLinesGeometric*/);
	var_s = "gBFLBCJwBAEHhEJAAEhABMsIQAAYAQGKIcBiAKBQAGaAoDgYN4MAANAwjJBMKgBBCLIxhEYobgmGIXRpFMbxAKQahLEiTIgGUYJHgmK4tQLHb7zGAABRDDSOIDnGQJXh";
	var_s = var_s + "aI4JQSMMQDGLAZxVFiPRhAWLpBh+PQATrOdLUfSjVwhBKAQEBA==";
	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 ``) contains `.`) = 0");
		com_Column1.Visible(false);
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("%C1"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.BackColor(0x1e0e0e0);
	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.InsertItem(h,,"Child 3");
		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();
}
1137
I can not center or align the cell's caption and icon, when it displays the hierarchy

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h,hChild;
	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("Tasks")); com_Column = var_Column;
		com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
	exgrid1.HeaderVisible(1);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Project");
		hChild = com_Items.InsertItem(h,,"<img>1</img> Task (left)");
		hChild = com_Items.InsertItem(h,,"<c><img>2</img> Task (center)");
		hChild = com_Items.InsertItem(h,,"<r>Task (right) <img>3</img>");
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
1136
How do I mask for float/integer number

public void init()
{
	COM com_Editor,com_Editor1,com_Editor2,com_Editor3,com_Editor4,com_Editor5,com_Editor6,com_Editor7,com_Editor8,com_Items;
	anytype var_Editor,var_Editor1,var_Editor2,var_Editor3,var_Editor4,var_Editor5,var_Editor6,var_Editor7,var_Editor8,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(true);
	COM::createFromVariant(exgrid1.Columns().Add("Type")).Width(32);
	exgrid1.Columns().Add("Editor");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Integer");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"12");
		var_Editor = com_Items.CellEditor(h,COMVariant::createFromInt(1)); com_Editor = var_Editor;
			com_Editor.EditType(1/*EditType*/);
			com_Editor.Numeric(-1/*exInteger*/);
		h = com_Items.AddItem("Integer (mask, group)");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"10002");
		com_Items.FormatCell(h,COMVariant::createFromInt(1),"value format `0||`");
		var_Editor1 = com_Items.CellEditor(h,COMVariant::createFromInt(1)); com_Editor1 = var_Editor1;
			com_Editor1.EditType(8/*MaskType*/);
			com_Editor1.Mask(";;;float,digits=0,invalid=empty,warning=invalid character");
		h = com_Items.AddItem("Integer (mask, no group)");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"10002");
		com_Items.FormatCell(h,COMVariant::createFromInt(1),"value format `0|0|`");
		var_Editor2 = com_Items.CellEditor(h,COMVariant::createFromInt(1)); com_Editor2 = var_Editor2;
			com_Editor2.EditType(8/*MaskType*/);
			com_Editor2.Mask(";;;float,digits=0,grouping=,invalid=empty,warning=invalid character");
		h = com_Items.AddItem("Float");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"+12.34E+2");
		var_Editor3 = com_Items.CellEditor(h,COMVariant::createFromInt(1)); com_Editor3 = var_Editor3;
			com_Editor3.EditType(1/*EditType*/);
			com_Editor3.Numeric(1/*exFloat*/);
		h = com_Items.AddItem("Float (no signs)");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"12.34E-2");
		var_Editor4 = com_Items.CellEditor(h,COMVariant::createFromInt(1)); com_Editor4 = var_Editor4;
			com_Editor4.EditType(1/*EditType*/);
			com_Editor4.Numeric(769/*exDisableSigns | exFloat*/);
		h = com_Items.AddItem("Float-Integer");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"+12.34");
		var_Editor5 = com_Items.CellEditor(h,COMVariant::createFromInt(1)); com_Editor5 = var_Editor5;
			com_Editor5.EditType(1/*EditType*/);
			com_Editor5.Numeric(2/*exFloatInteger*/);
		h = com_Items.AddItem("Float-Integer (no signs)");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"12.34");
		var_Editor6 = com_Items.CellEditor(h,COMVariant::createFromInt(1)); com_Editor6 = var_Editor6;
			com_Editor6.EditType(1/*EditType*/);
			com_Editor6.Numeric(770/*exDisableSigns | exFloatInteger*/);
		h = com_Items.AddItem("Float (mask,group)");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"10002.34");
		com_Items.FormatCell(h,COMVariant::createFromInt(1),"value format `2`");
		var_Editor7 = com_Items.CellEditor(h,COMVariant::createFromInt(1)); com_Editor7 = var_Editor7;
			com_Editor7.EditType(8/*MaskType*/);
			com_Editor7.Mask(";;;float,invalid=empty,warning=invalid character");
		h = com_Items.AddItem("Float (mask, no group)");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"10002.34");
		com_Items.FormatCell(h,COMVariant::createFromInt(1),"value format `2|0|`");
		var_Editor8 = com_Items.CellEditor(h,COMVariant::createFromInt(1)); com_Editor8 = var_Editor8;
			com_Editor8.EditType(8/*MaskType*/);
			com_Editor8.Mask(";;;float,grouping=,invalid=empty,warning=invalid character");
	exgrid1.EndUpdate();
}
1135
How do I set an extra data for each item
// 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( i );
	print( exgrid1.Items().ItemData(i) );
}

public void init()
{
	COM com_Items,com_Items1;
	anytype var_Items,var_Items1;
	int i;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(true);
	exgrid1.Columns().Add("Default");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.ItemData(com_Items.AddItem("method 1"),"your extra data of method 1");
		com_Items.InsertItem(0,"your extra data of method 2","method 2");
	var_Items1 = exgrid1.Items(); com_Items1 = var_Items1;
		com_Items1.DefaultItem(com_Items1.AddItem("method 3"));
		com_Items1.ItemData(0,"your extra data of method 3");
	exgrid1.EndUpdate();
}
1134
I do not like to specify the item padding for every column I add. The question is how can I do it automatically

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.AttachTemplate("handle AddColumn(Column){Column{Def(48)=8;Def(49)=8;AllowDragging=False;AllowSizing = True}}");
	exgrid1.HeaderAppearance(4/*Etched*/);
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	exgrid1.GridLineStyle(32/*exGridLinesVSolid*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Item");
		var_Column = COM::createFromVariant(com_Columns.Add("Pos")); com_Column = var_Column;
			com_Column.Position(0);
			com_Column.Width(32);
			com_Column.AllowSizing(false);
			com_Column.FormatColumn("1 index ``");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.EndUpdate();
}
1133
How can I change the Exclude field in the drop down filter window

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_s = "gCJKBOI4NBQaBQAhQNJJIIhShQACERCAEAcRdrdcUQhQDOZCJJUBEjbbhJ7giIJOBILJziJvl4BeKibhDiIZOhFLB0KZvMx0O5hORlAB3owuNJuNZzMZhOBlFxvORnTb";
	var_s = var_s + "uHgaiIeKBMKhFf9fDIcEoPCAVEAlGI4HhBBYMCARCQVGg4IhVMCAWC2XY1Q7WJ8RBB0KROKYAYDBbzicjndD6fA/VsRHRJIhBkRbMYIGwGAQjA2fRYOEBoYjBFBx1ATC";
	var_s = var_s + "gCGQ8M7OTjSaJMDRDKIwYu5DrIMBgSAADKJTqhBhyRApAA3FAucZPPilokRJJFJxEVxCMCCgIA==";
	exgrid1.HTMLPicture("exclude",COMVariant::createFromStr(var_s));
	exgrid1.Description(25/*exFilterBarExclude*/,"<img>exclude</img>");
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	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");
	exgrid1.EndUpdate();
}
1132
How can I change the Exclude field in the drop down filter window

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.Description(25/*exFilterBarExclude*/,"<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>");
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	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");
	exgrid1.EndUpdate();
}
1131
The grid lines looks different then before. What should I do

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	exgrid1.GridLineStyle(512/*exGridLinesGeometric*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Tasks")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(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,COMVariant::createFromInt(0),1);
		hChild = com_Items.InsertItem(h,,"Task 3");
		com_Items.CellState(hChild,COMVariant::createFromInt(0),1);
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
1130
Can I sort the column by check-state

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

	super();

	exgrid1.BeginUpdate();
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Check")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.SortType(32/*exSortByState*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem();
		com_Items.CellState(com_Items.AddItem(),COMVariant::createFromInt(0),1);
		com_Items.CellState(com_Items.AddItem(),COMVariant::createFromInt(0),1);
		com_Items.AddItem();
	var_Column1 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
	com_Column1.SortOrder(1/*SortAscending*/);
	exgrid1.EndUpdate();
}
1129
Can I sort the column by image

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	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("Image")); com_Column = var_Column;
		com_Column.SortType(48/*exSortByImage*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellImage(com_Items.AddItem(),COMVariant::createFromInt(0),3);
		com_Items.AddItem();
		com_Items.CellImage(com_Items.AddItem(),COMVariant::createFromInt(0),1);
		com_Items.CellImage(com_Items.AddItem(),COMVariant::createFromInt(0),2);
	var_Column1 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
	com_Column1.SortOrder(1/*SortAscending*/);
	exgrid1.EndUpdate();
}
1128
Can I sort the column by value(numeric)

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

	super();

	exgrid1.BeginUpdate();
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Value")); com_Column = var_Column;
		com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
		com_Column.FormatColumn("`<fgcolor=808080><off 4><font ;6> ` + (1 index ``)  + ` </font></off></fgcolor>` + value");
		com_Column.SortType(17/*exSortByValue | SortNumeric*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("1");
		com_Items.AddItem("10");
		com_Items.AddItem("2");
		com_Items.AddItem("20");
	var_Column1 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
	com_Column1.SortOrder(1/*SortAscending*/);
	exgrid1.EndUpdate();
}
1127
Can I sort a column by cell's state (checked, unchecked) rather than caption

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

	super();

	exgrid1.BeginUpdate();
	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.SortType(1/*SortNumeric*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromBoolean(true));
		com_Items.AddItem(COMVariant::createFromBoolean(false));
		com_Items.AddItem(COMVariant::createFromBoolean(false));
		com_Items.AddItem(COMVariant::createFromBoolean(true));
	var_Column1 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
	com_Column1.SortOrder(1/*SortAscending*/);
	exgrid1.EndUpdate();
}
1126
How do I get the item's auto-number, when using FormatColumn property, as CellValue gets empty

// SelectionChanged event - Fired after a new item has been selected.
void onEvent_SelectionChanged()
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exgrid1.Items(); com_Items = var_Items;
		print( "pos: " );
		print( com_Items.CellCaption(com_Items.FocusItem(),COMVariant::createFromInt(1)) );
		print( "rpos(1): " );
		print( com_Items.CellCaption(com_Items.FocusItem(),COMVariant::createFromInt(2)) );
		print( "rpos(2): " );
		print( com_Items.CellCaption(com_Items.FocusItem(),COMVariant::createFromInt(3)) );
		print( "apos: " );
		print( com_Items.CellCaption(com_Items.FocusItem(),COMVariant::createFromInt(4)) );
		print( "index: " );
		print( com_Items.CellCaption(com_Items.FocusItem(),COMVariant::createFromInt(5)) );
}

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	exgrid1.HeaderAppearance(4/*Etched*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Items");
		var_Column = COM::createFromVariant(com_Columns.Add("pos")); com_Column = var_Column;
			com_Column.FormatColumn("1 pos ``");
			com_Column.Position(0);
			com_Column.Width(48);
			com_Column.AllowSizing(false);
		var_Column1 = COM::createFromVariant(com_Columns.Add("rpos(1)")); com_Column1 = var_Column1;
			com_Column1.FormatColumn("1 rpos ``");
			com_Column1.Position(1);
			com_Column1.Width(48);
			com_Column1.AllowSizing(false);
		var_Column2 = COM::createFromVariant(com_Columns.Add("rpos(2)")); com_Column2 = var_Column2;
			com_Column2.FormatColumn("1 rpos `.||A-Z`");
			com_Column2.Position(2);
			com_Column2.Width(48);
			com_Column2.AllowSizing(false);
		var_Column3 = COM::createFromVariant(com_Columns.Add("apos")); com_Column3 = var_Column3;
			com_Column3.FormatColumn("1 apos ``");
			com_Column3.Position(3);
			com_Column3.Width(48);
			com_Column3.AllowSizing(false);
		var_Column4 = COM::createFromVariant(com_Columns.Add("index")); com_Column4 = var_Column4;
			com_Column4.FormatColumn("1 index ``");
			com_Column4.Position(4);
			com_Column4.Width(48);
			com_Column4.AllowSizing(false);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Item 1");
		com_Items.InsertItem(h,,"Child 1");
		hSel = com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		com_Items.AddItem("Item 2");
		com_Items.AddItem("Item 3");
	exgrid1.EndUpdate();
	exgrid1.Items().SelectItem(hSel,true);
}
1125
How can I display UNICODE characters

public void init()
{
	COM com_Items,com_StdFont;
	anytype var_Items,var_StdFont;
	;

	super();

	exgrid1.BeginUpdate();
	var_StdFont = exgrid1.Font(); com_StdFont = var_StdFont;
		com_StdFont.Name("Arial Unicode");
		com_StdFont.Size(22);
	exgrid1.HeaderVisible(false);
	exgrid1.DefaultItemHeight(48);
	COM::createFromVariant(exgrid1.Columns().Add("")).Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Ӓӓ");
		com_Items.AddItem("ᦜᦝ;ᦞ");
		com_Items.AddItem("ɮɭ;ɯ");
		com_Items.AddItem("勳勴勵勶");
		com_Items.FormatCell(com_Items.AddItem(COMVariant::createFromStr(exgrid1.Version())),COMVariant::createFromInt(0),"(value lfind `UNICODE`) < 0 ? `<fgcolor=FF0000><b>!UNICODE!</b> version</fgcolor> required: ` + value : `` ");
	exgrid1.EndUpdate();
}
1124
How do I display the position of the item with 0-padding

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

	super();

	exgrid1.BeginUpdate();
	COM::createFromVariant(exgrid1.Columns().Add("Items")).FormatColumn("((1 apos ``) lpad `00`) + `. `  + value");
	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.AddItem("Item D");
	exgrid1.EndUpdate();
}
1123
Can't get the +/- to be displayed on a divider item. What else can I do

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

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	exgrid1.TreeColumnIndex(0);
	exgrid1.MarkSearchColumn(false);
	exgrid1.FullRowSelect(0/*exColumnSel*/);
	exgrid1.HeaderAppearance(-1/*0xffffffff | Bump | Sunken*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("C1")).Width(32);
		COM::createFromVariant(com_Columns.Add("C2")).FormatColumn("1 index ``");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Cell 1");
		com_Items.CellSingleLine(h,COMVariant::createFromInt(1),false);
		h = com_Items.AddItem("This is bit of text merges all cells in the item (divider shows no +/-)");
		com_Items.ItemDivider(h,0);
		com_Items.ItemBackColor(h,WinApi::RGB2int(240,240,240));
		com_Items.ItemDividerLine(h,0/*EmptyLine*/);
		com_Items.CellHAlignment(h,COMVariant::createFromInt(0),1/*CenterAlignment*/);
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Cell 3");
		h = com_Items.AddItem("This is bit of text merges all cells in the item (merge shows +/-)");
		com_Items.ItemBackColor(h,WinApi::RGB2int(240,240,240));
		com_Items.CellMerge(h,COMVariant::createFromInt(0),COMVariant::createFromInt(1));
		com_Items.InsertItem(h,,"Child 3");
		com_Items.InsertItem(h,,"Child 4");
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
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\\Access\\misc.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\\Access\\misc.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_Editor,com_Items,com_Object;
	anytype var_Editor,var_Items,var_Object;
	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","");
		var_Object = com_Editor.UserEditorObject(); com_Object = var_Object;
	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.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",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.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",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();
}