1261
Mask for Floating-Point Numbers (Emglish Style: . as Decimal, , as Grouping Separator)
Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exRowLines;
Grid1->GridLineStyle = Exgridlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
Grid1->SelForeColor = Grid1->ForeColor;
Grid1->SelBackColor = Grid1->BackColor;
Grid1->ShowFocusRect = false;
Exgridlib_tlb::IColumnPtr var_Column = Grid1->Columns->Add(L"Float(English-style)");
	var_Column->SortType = Exgridlib_tlb::SortTypeEnum::SortNumeric;
	var_Column->FormatColumn = L"value format `3`";
	var_Column->HeaderAlignment = Exgridlib_tlb::AlignmentEnum::RightAlignment;
	var_Column->Alignment = Exgridlib_tlb::AlignmentEnum::RightAlignment;
	Exgridlib_tlb::IEditorPtr var_Editor = var_Column->Editor;
		var_Editor->EditType = Exgridlib_tlb::EditTypeEnum::MaskType;
		var_Editor->Mask = L"!999,999,990.000;;;float,right,negative,grouping=\\,,decimal=.";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->AddItem(TVariant(192278.12));
	var_Items->AddItem(TVariant(2829.7));
	var_Items->AddItem(TVariant(7391.55));
	var_Items->AddItem(TVariant(50812.23));
	var_Items->AddItem(TVariant(913.04));
	var_Items->AddItem(TVariant(127500.88));
	var_Items->AddItem(TVariant(62.19));
	var_Items->AddItem(TVariant(1));
Grid1->EndUpdate();

1260
Mask for Floating-Point Numbers (German Style: , as Decimal, . as Grouping Separator)
Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exRowLines;
Grid1->GridLineStyle = Exgridlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
Grid1->SelForeColor = Grid1->ForeColor;
Grid1->SelBackColor = Grid1->BackColor;
Grid1->ShowFocusRect = false;
Exgridlib_tlb::IColumnPtr var_Column = Grid1->Columns->Add(L"Float(German-style)");
	var_Column->SortType = Exgridlib_tlb::SortTypeEnum::SortNumeric;
	var_Column->FormatColumn = L"value format `3`";
	var_Column->HeaderAlignment = Exgridlib_tlb::AlignmentEnum::RightAlignment;
	var_Column->Alignment = Exgridlib_tlb::AlignmentEnum::RightAlignment;
	Exgridlib_tlb::IEditorPtr var_Editor = var_Column->Editor;
		var_Editor->EditType = Exgridlib_tlb::EditTypeEnum::MaskType;
		var_Editor->Mask = L"!999.999.990,000;;;float,right,grouping=.,decimal=\\,";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->AddItem(TVariant(192278.12));
	var_Items->AddItem(TVariant(2829.7));
	var_Items->AddItem(TVariant(7391.55));
	var_Items->AddItem(TVariant(50812.23));
	var_Items->AddItem(TVariant(913.04));
	var_Items->AddItem(TVariant(127500.88));
	var_Items->AddItem(TVariant(62.19));
	var_Items->AddItem(TVariant(1));
Grid1->EndUpdate();

1259
Locks the first visible column on the left and the last visible column on the right

Grid1->BeginUpdate();
Grid1->ColumnAutoResize = false;
Grid1->BackColorLock = RGB(192,192,192);
Grid1->GridLineStyle = Exgridlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exVLines;
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.mdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
Grid1->DataSource = (IDispatch*)rs;
Grid1->CountLockedColumns = 17;
Grid1->EndUpdate();

1258
Lock the column on the right

Grid1->BeginUpdate();
Grid1->ColumnAutoResize = false;
Grid1->BackColorLock = RGB(192,192,192);
Grid1->GridLineStyle = Exgridlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exVLines;
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.mdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
Grid1->DataSource = (IDispatch*)rs;
Grid1->CountLockedColumns = 16;
Grid1->EndUpdate();

1257
Lock the column on the left

Grid1->BeginUpdate();
Grid1->ColumnAutoResize = false;
Grid1->BackColorLock = RGB(192,192,192);
Grid1->GridLineStyle = Exgridlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exVLines;
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.mdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
Grid1->DataSource = (IDispatch*)rs;
Grid1->CountLockedColumns = 1;
Grid1->EndUpdate();

1256
Update the item's lock state - pinning it to the top, bottom, or making it scrollable

Grid1->BeginUpdate();
Grid1->Columns->Add(L"Column");
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->AddItem(TVariant("un-locked item"));
	var_Items->set_LockItem(var_Items->AddItem(TVariant("top-locked item")),Exgridlib_tlb::LockItemEnum::exLockTop);
	var_Items->set_LockItem(var_Items->AddItem(TVariant("bottom-locked item")),Exgridlib_tlb::LockItemEnum::exLockBottom);
Grid1->EndUpdate();

1255
The Change event is called before changing the value. Is there any event such as Changed that is called after updating the cell's value
// Changed event - Occurs after the user has changed the content of a cell.
void __fastcall TForm1::Grid1Changed(TObject *Sender, Exgridlib_tlb::HITEM   Item, long   ColIndex)
{
	OutputDebugString( PChar(Grid1->Items->get_CellValue(TVariant(Item),TVariant(ColIndex))) );
}

Grid1->BeginUpdate();
Grid1->Columns->Add(L"Edit")->Editor->EditType = Exgridlib_tlb::EditTypeEnum::EditType;
Grid1->Items->AddItem(TVariant("Item 1"));
Grid1->Items->AddItem(TVariant("Item 2"));
Grid1->EndUpdate();

1254
How can I reposition the +/- (expand/collapse) icon to show as "number, icon, text" (sample 2)
// AnchorClick event - Occurs when an anchor element is clicked.
void __fastcall TForm1::Grid1AnchorClick(TObject *Sender, BSTR   AnchorID, BSTR   Options)
{
	TVariant i = TVariant(Grid1->FormatABC(L"int(value)",TVariant(AnchorID),TNoParam(),TNoParam()));
	Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
		i = var_Items->get_ItemByIndex(i);
		bool exp = var_Items->get_ExpandItem(i);
		var_Items->set_ExpandItem(i,false);
}

Grid1->BeginUpdate();
Grid1->HTMLPicture[L"expand"] = TVariant(String("gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYc7YYBY5vVBkiIYOhFLB0KZvMx0O5hORlABQM") +
	"JpNx0FxOIpUEA1FwxFw3RbWe45iK2MpYJJmJJJFQABERmgaAM0AMRJURDd1AF3hUQhQoAIDvsRAURGIBw8ThRaiJpQ4EwsKNURyxgjsRzEKv1TqtXrNbrtfsIAwgASAH" +
	"AGShQwGQzGABUGEzudAqgyWdSmWw2Fw+sABSHI4AGH1XAGAxGAwywlI6eRqjGi1YuaJJEIJUHBPYqSJYKQAwCBDKbBPbncBibrUKQjGLFQo+TBFfR5GaUAR/KbGICyRx" +
	"siCOQClgdJxGoMpkGycpdDqUZ0EoJQJHYVoWCSCA4kEbRlHKRwJiYcYCH0PBNB2JwYCaCRsGcE8LDyfZKg+U59EsAZMlQCgJkcEA9CsywkiKJwiFcIQwEEgI=");
Grid1->HTMLPicture[L"collapse"] = TVariant(String("gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYU7YQBCooJSAiIYOhFLB0KZvMx0O5hORlABQM") +
	"JpNx0FxOIpUEA1FwxFw3RbWe45iK2MpYJJmJJJFQABERmgaAM0AMRJURDd1AF3hUQhQoAIDvsRAURGIBw8ThRaiJpQ4EwsKNURyzyO13dGEAGYzWcqlWrFarlesA3AGc" +
	"SAHAGShQwGQzGABUGEv2TAAFUGS26Uy2GwuH1wAKQ5HAAw+s4YwGIwGGWISpVLiXT5MrxiJyJJEIJUHBPYqSXYOQAgBgAB6jJwufxxX7YYhdYhFCSsSwSC4uMLoQajNJ" +
	"AG8QgZAgSIqGMCwRBkAJDicGwuiMeoHGeaRFlAU5qDwQQ6A+CYnlgPQeisGJfl4AJYhsRISjQYwJHIcpmmALAtlMEpkE4YBREmEpPBAARdicSw8AES5fi+fI5g+PpcAA" +
	"UJKgyCYknaZRrssJIiicIhXCEMBBICA==");
Grid1->HTMLPicture[L"empty"] = TVariant(String("gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYE7YABNTWRIJiIYOhFLB0KZvMx0O5hORlABQM") +
	"JpNx0FxOIpUEA1FwxFw3RbWe45iK2MpYJJmJJJFQABERmgaAM0AMRJURDd1AF3hUQhQoAIDvsRAURGIBw8ThRaiJpQ4EwsKNURyy/O13dGEAGYzWcqlWrFarlesA3AGc" +
	"SAHAGShQwGQzGABUGEv2TAAFUGS26Uy2GwuH1wAKQ5HAAw+s4YwGIwGGWYSvDpndpkQ9xhRTJJEIJUHBPdqSGIKYAwBgDUpCfytH57FqoVaTKQTGS0DJ6cDBDzOGwIfA" +
	"NHMIxJDmf5CFIAxwA4Q5HEQVJlEWRxnBkMANjsPoqBSEAElkfZ5CMFJMHCC52BALBGjkDpHCuXIAB2bQdEGaQgFIbbLCSIonCIVwhDAQSAg==");
Grid1->HeaderVisible = false;
Grid1->HasLines = Exgridlib_tlb::HierarchyLineEnum::exNoLine;
Grid1->HasButtons = Exgridlib_tlb::ExpandButtonEnum::exNoButtons;
Grid1->Indent = 12;
Grid1->DefaultItemHeight = 24;
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exHLines;
Grid1->GridLineStyle = Exgridlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
Grid1->GridLineColor = RGB(204,204,204);
Grid1->ShowFocusRect = false;
Grid1->ExpandOnDblClick = false;
Grid1->ExpandOnKeys = false;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Item");
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
		var_Column->FormatColumn = TVariant(String("(len(parent(1 index ``)) ? (`<b><fgcolor gray>` + (1 pos ``) + `. ` + `</fgcolor></b>` + (%CC0 ? (`<a ` + (0 index ``) + `>`) :") +
	" ``) + `<img>` + (%CC0 ? (not %CX0 ? `expand` : `collapse`) : `empty`) + `:16</img>` + (%CC0 ? (`</a>`) : ``)) : ``) + ` ` + val" +
	"ue");
		Exgridlib_tlb::IEditorPtr var_Editor = var_Column->Editor;
			var_Editor->EditType = Exgridlib_tlb::EditTypeEnum::EditType;
			var_Editor->set_Option(Exgridlib_tlb::EditorOptionEnum::exEditorAdjustPos,TVariant("32 4 -4 -4"));
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	long hRoot = var_Items->AddItem(TVariant("ACME Corporation"));
	var_Items->set_SelectableItem(hRoot,false);
	var_Items->set_ExpandItem(hRoot,true);
	long h = var_Items->InsertItem(hRoot,TNoParam(),TVariant("Management"));
	var_Items->InsertItem(h,TNoParam(),TVariant("CEO - Alice Brown"));
	var_Items->InsertItem(h,TNoParam(),TVariant("COO - James Lee"));
	h = var_Items->InsertItem(hRoot,TNoParam(),TVariant("HR Department"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Recruiter - Jane Smith"));
	var_Items->InsertItem(h,TNoParam(),TVariant("HR Assistant - Bob Green"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->InsertItem(h,TNoParam(),TVariant("Engineering"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Software Team"));
	h = var_Items->InsertItem(h,TNoParam(),TVariant("Lead Developer - Mark H."));
	var_Items->InsertItem(h,TNoParam(),TVariant("Frontend Dev - Emily R."));
	var_Items->InsertItem(h,TNoParam(),TVariant("Backend Dev - Tom W."));
	var_Items->InsertItem(hRoot,TNoParam(),TVariant("QA Team"));
Grid1->EndUpdate();

1253
How can I reposition the +/- (expand/collapse) icon to show as "number, icon, text" (sample 1)

// AnchorClick event - Occurs when an anchor element is clicked.
void __fastcall TForm1::Grid1AnchorClick(TObject *Sender, BSTR   AnchorID, BSTR   Options)
{
	TVariant i = TVariant(Grid1->FormatABC(L"int(value)",TVariant(AnchorID),TNoParam(),TNoParam()));
	Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
		i = var_Items->get_ItemByIndex(i);
		bool exp = var_Items->get_ExpandItem(i);
		var_Items->set_ExpandItem(i,false);
}

Grid1->BeginUpdate();
Grid1->HTMLPicture[L"expand"] = TVariant(String("gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYc7YYBY5vVBkiIYOhFLB0KZvMx0O5hORlABQM") +
	"JpNx0FxOIpUEA1FwxFw3RbWe45iK2MpYJJmJJJFQABERmgaAM0AMRJURDd1AF3hUQhQoAIDvsRAURGIBw8ThRaiJpQ4EwsKNURyxgjsRzEKv1TqtXrNbrtfsIAwgASAH" +
	"AGShQwGQzGABUGEzudAqgyWdSmWw2Fw+sABSHI4AGH1XAGAxGAwywlI6eRqjGi1YuaJJEIJUHBPYqSJYKQAwCBDKbBPbncBibrUKQjGLFQo+TBFfR5GaUAR/KbGICyRx" +
	"siCOQClgdJxGoMpkGycpdDqUZ0EoJQJHYVoWCSCA4kEbRlHKRwJiYcYCH0PBNB2JwYCaCRsGcE8LDyfZKg+U59EsAZMlQCgJkcEA9CsywkiKJwiFcIQwEEgI=");
Grid1->HTMLPicture[L"collapse"] = TVariant(String("gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYU7YQBCooJSAiIYOhFLB0KZvMx0O5hORlABQM") +
	"JpNx0FxOIpUEA1FwxFw3RbWe45iK2MpYJJmJJJFQABERmgaAM0AMRJURDd1AF3hUQhQoAIDvsRAURGIBw8ThRaiJpQ4EwsKNURyzyO13dGEAGYzWcqlWrFarlesA3AGc" +
	"SAHAGShQwGQzGABUGEv2TAAFUGS26Uy2GwuH1wAKQ5HAAw+s4YwGIwGGWISpVLiXT5MrxiJyJJEIJUHBPYqSXYOQAgBgAB6jJwufxxX7YYhdYhFCSsSwSC4uMLoQajNJ" +
	"AG8QgZAgSIqGMCwRBkAJDicGwuiMeoHGeaRFlAU5qDwQQ6A+CYnlgPQeisGJfl4AJYhsRISjQYwJHIcpmmALAtlMEpkE4YBREmEpPBAARdicSw8AES5fi+fI5g+PpcAA" +
	"UJKgyCYknaZRrssJIiicIhXCEMBBICA==");
Grid1->HeaderVisible = false;
Grid1->HasLines = Exgridlib_tlb::HierarchyLineEnum::exNoLine;
Grid1->HasButtons = Exgridlib_tlb::ExpandButtonEnum::exNoButtons;
Grid1->Indent = 12;
Grid1->DefaultItemHeight = 24;
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exHLines;
Grid1->GridLineStyle = Exgridlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
Grid1->GridLineColor = RGB(204,204,204);
Grid1->ShowFocusRect = false;
Grid1->ExpandOnDblClick = false;
Grid1->ExpandOnKeys = false;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Item");
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
		var_Column->FormatColumn = TVariant(String("(len(parent(1 index ``)) ? (`<b><fgcolor gray>` + (1 pos ``) + `. ` + `</fgcolor></b>` + `<a ` + (0 index ``) + `><img>` + (%CC") +
	"0 ? (not %CX0 ? `expand` : `collapse`) : ``) + `:16</img></a>`) : ``) + ` ` + value");
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	long hRoot = var_Items->AddItem(TVariant("ACME Corporation"));
	var_Items->set_SelectableItem(hRoot,false);
	var_Items->set_ExpandItem(hRoot,true);
	long h = var_Items->InsertItem(hRoot,TNoParam(),TVariant("Management"));
	var_Items->InsertItem(h,TNoParam(),TVariant("CEO - Alice Brown"));
	var_Items->InsertItem(h,TNoParam(),TVariant("COO - James Lee"));
	h = var_Items->InsertItem(hRoot,TNoParam(),TVariant("HR Department"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Recruiter - Jane Smith"));
	var_Items->InsertItem(h,TNoParam(),TVariant("HR Assistant - Bob Green"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->InsertItem(h,TNoParam(),TVariant("Engineering"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Software Team"));
	h = var_Items->InsertItem(h,TNoParam(),TVariant("Lead Developer - Mark H."));
	var_Items->InsertItem(h,TNoParam(),TVariant("Frontend Dev - Emily R."));
	var_Items->InsertItem(h,TNoParam(),TVariant("Backend Dev - Tom W."));
	var_Items->InsertItem(hRoot,TNoParam(),TVariant("QA Team"));
Grid1->EndUpdate();

1252
Expandable bullet list

// AnchorClick event - Occurs when an anchor element is clicked.
void __fastcall TForm1::Grid1AnchorClick(TObject *Sender, BSTR   AnchorID, BSTR   Options)
{
	TVariant i = TVariant(Grid1->FormatABC(L"int(value)",TVariant(AnchorID),TNoParam(),TNoParam()));
	Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
		i = var_Items->get_ItemByIndex(i);
		bool exp = var_Items->get_ExpandItem(i);
		var_Items->set_ExpandItem(i,false);
}

Grid1->BeginUpdate();
Grid1->HTMLPicture[L"expand"] = TVariant(String("gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYM7YIBXCRNbtiIYOhFLB0KZvMx0O5hORlABQM") +
	"JpNx0FxOIpUEA1FwxFw3RbWe45iK2MpYJJmJJJFQABERmgaAM0AMRJURDd1AF3hUQhQoAIDvsRAURGIBw8ThRaiJpQ4EwsKNURyzZO13dGEAGYzWcqlWrFarlesA3AGc" +
	"SAHAGShQwGQzGABUGEv2TAAFUGS26Uy2GwuH1wAKQ5HAAw+s4YwGIwGGWNa6awbST7DBTiLyJJEIJUHBPUqSGJuYYwCAES5pBiQfyEX4QKAFH6QSihJQ/GZlET1FhIcg" +
	"GnUdoVHMmxajSIghlMKhsGiAAFggQ5dmKcRHEUEhbFAFQBgacABmAAJgAAcAJkAZgNjUcwDFecYcD8QoIDsGJjD6aYaGyHI7mqLRfgGfBcg+TYggkEhakQThtFsEpAE2" +
	"Xh7goSIJiSHp6haKgPGOXx3j+c5hiKLpri6JAPHWYJREuFJkBCYxcFeYS7ikJQzG0ZIVGKMBYGsVwXDWVQHjqfpjAoYpyE4Z5vH2YoHDkZwzkkUxHC8pwCgifIHBCdk4" +
	"GMLQVmcXJVhicxWi4IIUiKSQ1A8cBUj+eBEGCFQlFSIophiPRkFAWBLFALhwm+HhKjARpmgSGwNn4AIUCcZZUFEKoVmwywkiKJwiFcIQwEEgI");
Grid1->HTMLPicture[L"collapse"] = TVariant(String("gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYM7YIBXCRNbtiIYOhFLB0KZvMx0O5hORlABQM") +
	"JpNx0FxOIpUEA1FwxFw3RbWe45iK2MpYJJmJJJFQABERmgaAM0AMRJURDd1AF3hUQhQoAIDvsRAURGIBw8ThRaiJpQ4EwsKNURyzZO13dGEAGYzWcqlWrFarlesA3AGc" +
	"SAHAGShQwGQzGABUGEv2TAAFUGS26Uy2GwuH1wAKQ5HAAw+s4YwGIwGGWNa6awbST7DBTiLZJJEIJUHBPdpSGKOAQxCAzGhIBKfbAvUBsSIPbiVMhLTxJPK3banJB0N5" +
	"sA8VQRlmCRKjSCRaAIOgCiORISiWaI0DYLJPBYJBxB+LAqAMBRgAsIABjAAhYAOEB5kKDQ5kGZoaCaL5vH2KoEDCbpbDaWRrE8SopE+AA/DcMoZkgAgkhKERDlcdYEHA" +
	"JRzg4IpyCAKRyl6HZLGONwMEMb5clwWB3n2CZki6FoWC4cwQCbGYukKwhiAwOp3HIEJFGCNBGDyLArE8R56n4RUnlOShHGcXJdgcKQlCOSRdEcLw8DmAoInyexvFeMRG" +
	"G0DARmsbRZmsfRxleFZeHoD4eEKKRxGmPANgAC5xDAWpYHMW4uCGywkiKJwiFcIQwEEgI");
Grid1->HeaderVisible = false;
Grid1->HasLines = Exgridlib_tlb::HierarchyLineEnum::exNoLine;
Grid1->HasButtons = Exgridlib_tlb::ExpandButtonEnum::exNoButtons;
Grid1->Indent = 12;
Grid1->DefaultItemHeight = 24;
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exHLines;
Grid1->GridLineStyle = Exgridlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
Grid1->GridLineColor = RGB(204,204,204);
Grid1->ShowFocusRect = false;
Grid1->ExpandOnDblClick = false;
Grid1->ExpandOnKeys = false;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Item");
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
		var_Column->FormatColumn = TVariant(String("(len(parent(1 index ``)) ? (`<b><fgcolor gray>` + (1 pos ``) + `. ` + `</fgcolor></b>` + `<a ` + (0 index ``) + `><img>` + (%CC") +
	"0 ? (not %CX0 ? `expand` : `collapse`) : `collapse`) + `:16</img></a>`) : ``) + ` ` + value");
		Exgridlib_tlb::IEditorPtr var_Editor = var_Column->Editor;
			var_Editor->EditType = Exgridlib_tlb::EditTypeEnum::EditType;
			var_Editor->set_Option(Exgridlib_tlb::EditorOptionEnum::exEditorAdjustPos,TVariant("32D 4D -4D -4D"));
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	long hRoot = var_Items->AddItem(TVariant("ACME Corporation"));
	var_Items->set_SelectableItem(hRoot,false);
	var_Items->set_ExpandItem(hRoot,true);
	long h = var_Items->InsertItem(hRoot,TNoParam(),TVariant("Management"));
	var_Items->InsertItem(h,TNoParam(),TVariant("CEO - Alice Brown"));
	var_Items->InsertItem(h,TNoParam(),TVariant("COO - James Lee"));
	h = var_Items->InsertItem(hRoot,TNoParam(),TVariant("HR Department"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Recruiter - Jane Smith"));
	var_Items->InsertItem(h,TNoParam(),TVariant("HR Assistant - Bob Green"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->InsertItem(h,TNoParam(),TVariant("Engineering"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Software Team"));
	h = var_Items->InsertItem(h,TNoParam(),TVariant("Lead Developer - Mark H."));
	var_Items->InsertItem(h,TNoParam(),TVariant("Frontend Dev - Emily R."));
	var_Items->InsertItem(h,TNoParam(),TVariant("Backend Dev - Tom W."));
	var_Items->InsertItem(hRoot,TNoParam(),TVariant("QA Team"));
Grid1->EndUpdate();

1251
Does grouping support multi-column sorting

Grid1->BeginUpdate();
Grid1->SingleSort = false;
Grid1->HeaderVisible = false;
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exRowLines;
Grid1->GridLineStyle = Exgridlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
Grid1->AllowGroupBy = true;
Grid1->Columns->Add(L"Prefix");
Grid1->Columns->Add(L"Region");
Grid1->Columns->Add(L"City");
Exgridlib_tlb::IColumnPtr var_Column = Grid1->Columns->Add(L"Sort");
	var_Column->ComputedField = L"%1 + %2";
	var_Column->Visible = false;
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	long h = var_Items->AddItem(TVariant("+33"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Corsica"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Bastia "));
	h = var_Items->AddItem(TVariant("+33"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Occitanie"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Toulouse "));
	h = var_Items->AddItem(TVariant("+33"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Corsica"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Ajaccio"));
	h = var_Items->AddItem(TVariant("+33"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Occitanie"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Carcassonne "));
Grid1->Layout = L"multiplesort=\"C0:2\";singlesort=\"C3:1\";";
Grid1->EndUpdate();

1250
How can I vertically scroll the control
Grid1->BeginUpdate();
Grid1->ColumnAutoResize = false;
Grid1->DataSource = (IDispatch*)Variant::CreateObject(L"DAO.DBEngine.120")->OpenDatabase(L"C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",TNoParam(),TNoParam(),TNoParam())->OpenRecordset(L"Orders",TNoParam(),TNoParam(),TNoParam())->OpenDatabase(L"C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",TNoParam(),TNoParam(),TNoParam())->OpenRecordset(L"Orders",TNoParam(),TNoParam(),TNoParam());
Grid1->Layout = L"Collapse=\"\";VScroll=10";
Grid1->EndUpdate();

1249
Export the items as a two-dimensional array

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->ScrollBySingleLine = true;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exGroupLinesOutside;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Desc");
		var_Column->Width = 32;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Amount");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
		var_Column1->FormatColumn = L"currency(value)";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->set_LockedItemCount(Exgridlib_tlb::VAlignmentEnum::exTop,1);
	long h = var_Items->get_LockedItem(Exgridlib_tlb::VAlignmentEnum::exTop,0);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant("All"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("sum(all,rec,%1)"));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(1),Exgridlib_tlb::ValueFormatEnum::exTotalField);
	long r = var_Items->AddItem(TVariant("Root 1"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group A"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"))),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"))),TVariant(1),TVariant(2));
	var_Items->set_CellState(TVariant(var_Items->get_ItemByIndex(3)),TVariant(0),1);
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group B"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 3"))),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 4"))),TVariant(1),TVariant(4));
	var_Items->set_ExpandItem(g1,true);
	var_Items->set_ExpandItem(r,true);
	h = var_Items->AddItem(TVariant("divider"));
	var_Items->set_ItemDivider(h,0);
	var_Items->set_SelectableItem(h,false);
	var_Items->set_SortableItem(h,false);
	var_Items->set_ItemHeight(h,1);
	r = var_Items->AddItem(TVariant("Root 2"));
	g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group C"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 5"))),TVariant(1),TVariant(5));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 6"))),TVariant(1),TVariant(6));
	var_Items->set_SelectItem(var_Items->get_ItemByIndex(2),true);
Grid1->PutItems(Grid1->Export(TVariant("array"),TVariant("all")),TNoParam());
Grid1->EndUpdate();

1248
Export only expanded items

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->ScrollBySingleLine = true;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exGroupLinesOutside;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Desc");
		var_Column->Width = 32;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Amount");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
		var_Column1->FormatColumn = L"currency(value)";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->set_LockedItemCount(Exgridlib_tlb::VAlignmentEnum::exTop,1);
	long h = var_Items->get_LockedItem(Exgridlib_tlb::VAlignmentEnum::exTop,0);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant("All"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("sum(all,rec,%1)"));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(1),Exgridlib_tlb::ValueFormatEnum::exTotalField);
	long r = var_Items->AddItem(TVariant("Root 1"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group A"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"))),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"))),TVariant(1),TVariant(2));
	var_Items->set_CellState(TVariant(var_Items->get_ItemByIndex(3)),TVariant(0),1);
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group B"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 3"))),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 4"))),TVariant(1),TVariant(4));
	var_Items->set_ExpandItem(g1,true);
	var_Items->set_ExpandItem(r,true);
	h = var_Items->AddItem(TVariant("divider"));
	var_Items->set_ItemDivider(h,0);
	var_Items->set_SelectableItem(h,false);
	var_Items->set_SortableItem(h,false);
	var_Items->set_ItemHeight(h,1);
	r = var_Items->AddItem(TVariant("Root 2"));
	g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group C"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 5"))),TVariant(1),TVariant(5));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 6"))),TVariant(1),TVariant(6));
	var_Items->set_SelectItem(var_Items->get_ItemByIndex(2),true);
Grid1->EndUpdate();
OutputDebugString( PChar(Grid1->Export(TVariant(""),TVariant("only(expanded)"))) );

1247
Export only selectable, sortable leaf items that are neither locked nor dividers

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->ScrollBySingleLine = true;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exGroupLinesOutside;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Desc");
		var_Column->Width = 32;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Amount");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
		var_Column1->FormatColumn = L"currency(value)";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->set_LockedItemCount(Exgridlib_tlb::VAlignmentEnum::exTop,1);
	long h = var_Items->get_LockedItem(Exgridlib_tlb::VAlignmentEnum::exTop,0);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant("All"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("sum(all,rec,%1)"));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(1),Exgridlib_tlb::ValueFormatEnum::exTotalField);
	long r = var_Items->AddItem(TVariant("Root 1"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group A"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"))),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"))),TVariant(1),TVariant(2));
	var_Items->set_CellState(TVariant(var_Items->get_ItemByIndex(3)),TVariant(0),1);
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group B"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 3"))),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 4"))),TVariant(1),TVariant(4));
	var_Items->set_ExpandItem(g1,true);
	var_Items->set_ExpandItem(r,true);
	h = var_Items->AddItem(TVariant("divider"));
	var_Items->set_ItemDivider(h,0);
	var_Items->set_SelectableItem(h,false);
	var_Items->set_SortableItem(h,false);
	var_Items->set_ItemHeight(h,1);
	r = var_Items->AddItem(TVariant("Root 2"));
	g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group C"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 5"))),TVariant(1),TVariant(5));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 6"))),TVariant(1),TVariant(6));
	var_Items->set_SelectItem(var_Items->get_ItemByIndex(2),true);
Grid1->EndUpdate();
OutputDebugString( PChar(Grid1->Export(TVariant(""),TVariant("only(leaf,sortable,selectable,!divider,!locked)"))) );

1246
Export only non-divider items

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->ScrollBySingleLine = true;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exGroupLinesOutside;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Desc");
		var_Column->Width = 32;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Amount");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
		var_Column1->FormatColumn = L"currency(value)";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->set_LockedItemCount(Exgridlib_tlb::VAlignmentEnum::exTop,1);
	long h = var_Items->get_LockedItem(Exgridlib_tlb::VAlignmentEnum::exTop,0);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant("All"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("sum(all,rec,%1)"));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(1),Exgridlib_tlb::ValueFormatEnum::exTotalField);
	long r = var_Items->AddItem(TVariant("Root 1"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group A"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"))),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"))),TVariant(1),TVariant(2));
	var_Items->set_CellState(TVariant(var_Items->get_ItemByIndex(3)),TVariant(0),1);
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group B"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 3"))),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 4"))),TVariant(1),TVariant(4));
	var_Items->set_ExpandItem(g1,true);
	var_Items->set_ExpandItem(r,true);
	h = var_Items->AddItem(TVariant("divider"));
	var_Items->set_ItemDivider(h,0);
	var_Items->set_SelectableItem(h,false);
	var_Items->set_SortableItem(h,false);
	var_Items->set_ItemHeight(h,1);
	r = var_Items->AddItem(TVariant("Root 2"));
	g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group C"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 5"))),TVariant(1),TVariant(5));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 6"))),TVariant(1),TVariant(6));
	var_Items->set_SelectItem(var_Items->get_ItemByIndex(2),true);
Grid1->EndUpdate();
OutputDebugString( PChar(Grid1->Export(TVariant(""),TVariant("only(!divider)"))) );

1245
Export only selectable items

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->ScrollBySingleLine = true;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exGroupLinesOutside;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Desc");
		var_Column->Width = 32;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Amount");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
		var_Column1->FormatColumn = L"currency(value)";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->set_LockedItemCount(Exgridlib_tlb::VAlignmentEnum::exTop,1);
	long h = var_Items->get_LockedItem(Exgridlib_tlb::VAlignmentEnum::exTop,0);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant("All"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("sum(all,rec,%1)"));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(1),Exgridlib_tlb::ValueFormatEnum::exTotalField);
	long r = var_Items->AddItem(TVariant("Root 1"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group A"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"))),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"))),TVariant(1),TVariant(2));
	var_Items->set_CellState(TVariant(var_Items->get_ItemByIndex(3)),TVariant(0),1);
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group B"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 3"))),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 4"))),TVariant(1),TVariant(4));
	var_Items->set_ExpandItem(g1,true);
	var_Items->set_ExpandItem(r,true);
	h = var_Items->AddItem(TVariant("divider"));
	var_Items->set_ItemDivider(h,0);
	var_Items->set_SelectableItem(h,false);
	var_Items->set_SortableItem(h,false);
	var_Items->set_ItemHeight(h,1);
	r = var_Items->AddItem(TVariant("Root 2"));
	g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group C"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 5"))),TVariant(1),TVariant(5));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 6"))),TVariant(1),TVariant(6));
	var_Items->set_SelectItem(var_Items->get_ItemByIndex(2),true);
Grid1->EndUpdate();
OutputDebugString( PChar(Grid1->Export(TVariant(""),TVariant("only(selectable)"))) );

1244
Export only sortable, but not locked items

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->ScrollBySingleLine = true;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exGroupLinesOutside;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Desc");
		var_Column->Width = 32;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Amount");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
		var_Column1->FormatColumn = L"currency(value)";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->set_LockedItemCount(Exgridlib_tlb::VAlignmentEnum::exTop,1);
	long h = var_Items->get_LockedItem(Exgridlib_tlb::VAlignmentEnum::exTop,0);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant("All"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("sum(all,rec,%1)"));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(1),Exgridlib_tlb::ValueFormatEnum::exTotalField);
	long r = var_Items->AddItem(TVariant("Root 1"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group A"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"))),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"))),TVariant(1),TVariant(2));
	var_Items->set_CellState(TVariant(var_Items->get_ItemByIndex(3)),TVariant(0),1);
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group B"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 3"))),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 4"))),TVariant(1),TVariant(4));
	var_Items->set_ExpandItem(g1,true);
	var_Items->set_ExpandItem(r,true);
	h = var_Items->AddItem(TVariant("divider"));
	var_Items->set_ItemDivider(h,0);
	var_Items->set_SelectableItem(h,false);
	var_Items->set_SortableItem(h,false);
	var_Items->set_ItemHeight(h,1);
	r = var_Items->AddItem(TVariant("Root 2"));
	g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group C"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 5"))),TVariant(1),TVariant(5));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 6"))),TVariant(1),TVariant(6));
	var_Items->set_SelectItem(var_Items->get_ItemByIndex(2),true);
Grid1->EndUpdate();
OutputDebugString( PChar(Grid1->Export(TVariant(""),TVariant("only(sortable,!locked)"))) );

1243
Export only checked items on specified column

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->ScrollBySingleLine = true;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exGroupLinesOutside;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Desc");
		var_Column->Width = 32;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Amount");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
		var_Column1->FormatColumn = L"currency(value)";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->set_LockedItemCount(Exgridlib_tlb::VAlignmentEnum::exTop,1);
	long h = var_Items->get_LockedItem(Exgridlib_tlb::VAlignmentEnum::exTop,0);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant("All"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("sum(all,rec,%1)"));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(1),Exgridlib_tlb::ValueFormatEnum::exTotalField);
	long r = var_Items->AddItem(TVariant("Root 1"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group A"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"))),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"))),TVariant(1),TVariant(2));
	var_Items->set_CellState(TVariant(var_Items->get_ItemByIndex(3)),TVariant(0),1);
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group B"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 3"))),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 4"))),TVariant(1),TVariant(4));
	var_Items->set_ExpandItem(g1,true);
	var_Items->set_ExpandItem(r,true);
	h = var_Items->AddItem(TVariant("divider"));
	var_Items->set_ItemDivider(h,0);
	var_Items->set_SelectableItem(h,false);
	var_Items->set_SortableItem(h,false);
	var_Items->set_ItemHeight(h,1);
	r = var_Items->AddItem(TVariant("Root 2"));
	g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group C"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 5"))),TVariant(1),TVariant(5));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 6"))),TVariant(1),TVariant(6));
	var_Items->set_SelectItem(var_Items->get_ItemByIndex(2),true);
Grid1->EndUpdate();
OutputDebugString( PChar(Grid1->Export(TVariant(""),TVariant("only(checked[0])"))) );

1242
Export only filtered, not locked or divider items

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->ScrollBySingleLine = true;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exGroupLinesOutside;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Desc");
		var_Column->Width = 32;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Amount");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
		var_Column1->FormatColumn = L"currency(value)";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->set_LockedItemCount(Exgridlib_tlb::VAlignmentEnum::exTop,1);
	long h = var_Items->get_LockedItem(Exgridlib_tlb::VAlignmentEnum::exTop,0);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant("All"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("sum(all,rec,%1)"));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(1),Exgridlib_tlb::ValueFormatEnum::exTotalField);
	long r = var_Items->AddItem(TVariant("Root 1"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group A"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"))),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"))),TVariant(1),TVariant(2));
	var_Items->set_CellState(TVariant(var_Items->get_ItemByIndex(3)),TVariant(0),1);
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group B"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 3"))),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 4"))),TVariant(1),TVariant(4));
	var_Items->set_ExpandItem(g1,true);
	var_Items->set_ExpandItem(r,true);
	h = var_Items->AddItem(TVariant("divider"));
	var_Items->set_ItemDivider(h,0);
	var_Items->set_SelectableItem(h,false);
	var_Items->set_SortableItem(h,false);
	var_Items->set_ItemHeight(h,1);
	r = var_Items->AddItem(TVariant("Root 2"));
	g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group C"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 5"))),TVariant(1),TVariant(5));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 6"))),TVariant(1),TVariant(6));
	var_Items->set_SelectItem(var_Items->get_ItemByIndex(2),true);
Grid1->EndUpdate();
OutputDebugString( PChar(Grid1->Export(TVariant(""),TVariant("only(visible,!locked,!divider)"))) );

1241
Export only selected items

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->ScrollBySingleLine = true;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exGroupLinesOutside;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Desc");
		var_Column->Width = 32;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Amount");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
		var_Column1->FormatColumn = L"currency(value)";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->set_LockedItemCount(Exgridlib_tlb::VAlignmentEnum::exTop,1);
	long h = var_Items->get_LockedItem(Exgridlib_tlb::VAlignmentEnum::exTop,0);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant("All"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("sum(all,rec,%1)"));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(1),Exgridlib_tlb::ValueFormatEnum::exTotalField);
	long r = var_Items->AddItem(TVariant("Root 1"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group A"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"))),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"))),TVariant(1),TVariant(2));
	var_Items->set_CellState(TVariant(var_Items->get_ItemByIndex(3)),TVariant(0),1);
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group B"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 3"))),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 4"))),TVariant(1),TVariant(4));
	var_Items->set_ExpandItem(g1,true);
	var_Items->set_ExpandItem(r,true);
	h = var_Items->AddItem(TVariant("divider"));
	var_Items->set_ItemDivider(h,0);
	var_Items->set_SelectableItem(h,false);
	var_Items->set_SortableItem(h,false);
	var_Items->set_ItemHeight(h,1);
	r = var_Items->AddItem(TVariant("Root 2"));
	g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group C"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 5"))),TVariant(1),TVariant(5));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 6"))),TVariant(1),TVariant(6));
	var_Items->set_SelectItem(var_Items->get_ItemByIndex(2),true);
Grid1->EndUpdate();
OutputDebugString( PChar(Grid1->Export(TVariant(""),TVariant("only(selected)"))) );

1240
Export only locked items

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->ScrollBySingleLine = true;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exGroupLinesOutside;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Desc");
		var_Column->Width = 32;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Amount");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
		var_Column1->FormatColumn = L"currency(value)";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->set_LockedItemCount(Exgridlib_tlb::VAlignmentEnum::exTop,1);
	long h = var_Items->get_LockedItem(Exgridlib_tlb::VAlignmentEnum::exTop,0);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant("All"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("sum(all,rec,%1)"));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(1),Exgridlib_tlb::ValueFormatEnum::exTotalField);
	long r = var_Items->AddItem(TVariant("Root 1"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group A"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"))),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"))),TVariant(1),TVariant(2));
	var_Items->set_CellState(TVariant(var_Items->get_ItemByIndex(3)),TVariant(0),1);
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group B"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 3"))),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 4"))),TVariant(1),TVariant(4));
	var_Items->set_ExpandItem(g1,true);
	var_Items->set_ExpandItem(r,true);
	h = var_Items->AddItem(TVariant("divider"));
	var_Items->set_ItemDivider(h,0);
	var_Items->set_SelectableItem(h,false);
	var_Items->set_SortableItem(h,false);
	var_Items->set_ItemHeight(h,1);
	r = var_Items->AddItem(TVariant("Root 2"));
	g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group C"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 5"))),TVariant(1),TVariant(5));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 6"))),TVariant(1),TVariant(6));
	var_Items->set_SelectItem(var_Items->get_ItemByIndex(2),true);
Grid1->EndUpdate();
OutputDebugString( PChar(Grid1->Export(TVariant(""),TVariant("only(locked)"))) );

1239
Export the leaf items of the control, excluding parent or grouped items

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->ScrollBySingleLine = true;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exGroupLinesOutside;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Desc");
		var_Column->Width = 32;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Amount");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
		var_Column1->FormatColumn = L"currency(value)";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->set_LockedItemCount(Exgridlib_tlb::VAlignmentEnum::exTop,1);
	long h = var_Items->get_LockedItem(Exgridlib_tlb::VAlignmentEnum::exTop,0);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant("All"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("sum(all,rec,%1)"));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(1),Exgridlib_tlb::ValueFormatEnum::exTotalField);
	long r = var_Items->AddItem(TVariant("Root 1"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group A"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"))),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"))),TVariant(1),TVariant(2));
	var_Items->set_CellState(TVariant(var_Items->get_ItemByIndex(3)),TVariant(0),1);
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group B"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 3"))),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 4"))),TVariant(1),TVariant(4));
	var_Items->set_ExpandItem(g1,true);
	var_Items->set_ExpandItem(r,true);
	h = var_Items->AddItem(TVariant("divider"));
	var_Items->set_ItemDivider(h,0);
	var_Items->set_SelectableItem(h,false);
	var_Items->set_SortableItem(h,false);
	var_Items->set_ItemHeight(h,1);
	r = var_Items->AddItem(TVariant("Root 2"));
	g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group C"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 5"))),TVariant(1),TVariant(5));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 6"))),TVariant(1),TVariant(6));
	var_Items->set_SelectItem(var_Items->get_ItemByIndex(2),true);
Grid1->EndUpdate();
OutputDebugString( PChar(Grid1->Export(TVariant(""),TVariant("leaf"))) );

1238
Export all checked and visible items (the first column in the columns list specifies the index of the column used to query the checkbox state)

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->ScrollBySingleLine = true;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exGroupLinesOutside;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Desc");
		var_Column->Width = 32;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Amount");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
		var_Column1->FormatColumn = L"currency(value)";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->set_LockedItemCount(Exgridlib_tlb::VAlignmentEnum::exTop,1);
	long h = var_Items->get_LockedItem(Exgridlib_tlb::VAlignmentEnum::exTop,0);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant("All"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("sum(all,rec,%1)"));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(1),Exgridlib_tlb::ValueFormatEnum::exTotalField);
	long r = var_Items->AddItem(TVariant("Root 1"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group A"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"))),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"))),TVariant(1),TVariant(2));
	var_Items->set_CellState(TVariant(var_Items->get_ItemByIndex(3)),TVariant(0),1);
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group B"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 3"))),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 4"))),TVariant(1),TVariant(4));
	var_Items->set_ExpandItem(g1,true);
	var_Items->set_ExpandItem(r,true);
	h = var_Items->AddItem(TVariant("divider"));
	var_Items->set_ItemDivider(h,0);
	var_Items->set_SelectableItem(h,false);
	var_Items->set_SortableItem(h,false);
	var_Items->set_ItemHeight(h,1);
	r = var_Items->AddItem(TVariant("Root 2"));
	g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group C"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 5"))),TVariant(1),TVariant(5));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 6"))),TVariant(1),TVariant(6));
	var_Items->set_SelectItem(var_Items->get_ItemByIndex(2),true);
Grid1->EndUpdate();
OutputDebugString( PChar(Grid1->Export(TVariant(""),TVariant("chk"))) );

1237
Export the selected-items

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->ScrollBySingleLine = true;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exGroupLinesOutside;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Desc");
		var_Column->Width = 32;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Amount");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
		var_Column1->FormatColumn = L"currency(value)";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->set_LockedItemCount(Exgridlib_tlb::VAlignmentEnum::exTop,1);
	long h = var_Items->get_LockedItem(Exgridlib_tlb::VAlignmentEnum::exTop,0);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant("All"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("sum(all,rec,%1)"));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(1),Exgridlib_tlb::ValueFormatEnum::exTotalField);
	long r = var_Items->AddItem(TVariant("Root 1"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group A"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"))),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"))),TVariant(1),TVariant(2));
	var_Items->set_CellState(TVariant(var_Items->get_ItemByIndex(3)),TVariant(0),1);
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group B"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 3"))),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 4"))),TVariant(1),TVariant(4));
	var_Items->set_ExpandItem(g1,true);
	var_Items->set_ExpandItem(r,true);
	h = var_Items->AddItem(TVariant("divider"));
	var_Items->set_ItemDivider(h,0);
	var_Items->set_SelectableItem(h,false);
	var_Items->set_SortableItem(h,false);
	var_Items->set_ItemHeight(h,1);
	r = var_Items->AddItem(TVariant("Root 2"));
	g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group C"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 5"))),TVariant(1),TVariant(5));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 6"))),TVariant(1),TVariant(6));
	var_Items->set_SelectItem(var_Items->get_ItemByIndex(2),true);
Grid1->EndUpdate();
OutputDebugString( PChar(Grid1->Export(TVariant(""),TVariant("sel"))) );

1236
Export the visible items, excluding child items of collapsed elements, non-visible items (such as those with a height of 0), and items that do not match the current filter

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->ScrollBySingleLine = true;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exGroupLinesOutside;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Desc");
		var_Column->Width = 32;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Amount");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
		var_Column1->FormatColumn = L"currency(value)";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->set_LockedItemCount(Exgridlib_tlb::VAlignmentEnum::exTop,1);
	long h = var_Items->get_LockedItem(Exgridlib_tlb::VAlignmentEnum::exTop,0);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant("All"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("sum(all,rec,%1)"));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(1),Exgridlib_tlb::ValueFormatEnum::exTotalField);
	long r = var_Items->AddItem(TVariant("Root 1"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group A"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"))),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"))),TVariant(1),TVariant(2));
	var_Items->set_CellState(TVariant(var_Items->get_ItemByIndex(3)),TVariant(0),1);
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group B"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 3"))),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 4"))),TVariant(1),TVariant(4));
	var_Items->set_ExpandItem(g1,true);
	var_Items->set_ExpandItem(r,true);
	h = var_Items->AddItem(TVariant("divider"));
	var_Items->set_ItemDivider(h,0);
	var_Items->set_SelectableItem(h,false);
	var_Items->set_SortableItem(h,false);
	var_Items->set_ItemHeight(h,1);
	r = var_Items->AddItem(TVariant("Root 2"));
	g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group C"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 5"))),TVariant(1),TVariant(5));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 6"))),TVariant(1),TVariant(6));
	var_Items->set_SelectItem(var_Items->get_ItemByIndex(2),true);
Grid1->EndUpdate();
OutputDebugString( PChar(Grid1->Export(TVariant(""),TVariant("vis"))) );

1235
Export all items, including the hidden or collapsed items

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->ScrollBySingleLine = true;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exGroupLinesOutside;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Desc");
		var_Column->Width = 32;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Amount");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
		var_Column1->FormatColumn = L"currency(value)";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->set_LockedItemCount(Exgridlib_tlb::VAlignmentEnum::exTop,1);
	long h = var_Items->get_LockedItem(Exgridlib_tlb::VAlignmentEnum::exTop,0);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant("All"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("sum(all,rec,%1)"));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(1),Exgridlib_tlb::ValueFormatEnum::exTotalField);
	long r = var_Items->AddItem(TVariant("Root 1"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group A"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"))),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"))),TVariant(1),TVariant(2));
	var_Items->set_CellState(TVariant(var_Items->get_ItemByIndex(3)),TVariant(0),1);
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group B"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 3"))),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g2,TNoParam(),TVariant("Item 4"))),TVariant(1),TVariant(4));
	var_Items->set_ExpandItem(g1,true);
	var_Items->set_ExpandItem(r,true);
	h = var_Items->AddItem(TVariant("divider"));
	var_Items->set_ItemDivider(h,0);
	var_Items->set_SelectableItem(h,false);
	var_Items->set_SortableItem(h,false);
	var_Items->set_ItemHeight(h,1);
	r = var_Items->AddItem(TVariant("Root 2"));
	g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group C"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 5"))),TVariant(1),TVariant(5));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(g1,TNoParam(),TVariant("Item 6"))),TVariant(1),TVariant(6));
	var_Items->set_SelectItem(var_Items->get_ItemByIndex(2),true);
Grid1->EndUpdate();
OutputDebugString( PChar(Grid1->Export(TVariant(""),TVariant("all"))) );

1234
Bolds only the expanded items

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Grid1->ConditionalFormats->Add(L"%CX0",TNoParam())->Bold = true;
Grid1->Columns->Add(L"Description");
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	long h = var_Items->AddItem(TVariant("Root 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(var_Items->InsertItem(h,TNoParam(),TVariant("Child 2")),TNoParam(),TVariant("Sub-Child 2"));
	var_Items->set_CellState(TVariant(var_Items->InsertItem(h,TNoParam(),TVariant("Child 3"))),TVariant(0),1);
	var_Items->set_ExpandItem(h,true);
	h = var_Items->AddItem(TVariant("Root 2"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 3"));
Grid1->EndUpdate();

1233
Displays the root item's index and value/caption using expressions

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Grid1->AutoDrag = Exgridlib_tlb::AutoDragEnum::exAutoDragPositionAny;
Grid1->AllowCopyPaste = Exgridlib_tlb::AllowCopyPasteEnum::exAllowPaste | Exgridlib_tlb::AllowCopyPasteEnum::exAllowCut | Exgridlib_tlb::AllowCopyPasteEnum::exAllowCopy;
Grid1->SingleSel = false;
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exRowLines;
Grid1->GridLineStyle = Exgridlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
Grid1->GridLineColor = RGB(208,208,208);
Grid1->ConditionalFormats->Add(L"%CC0 and %CX0",TNoParam())->Bold = true;
Exgridlib_tlb::IConditionalFormatPtr var_ConditionalFormat = Grid1->ConditionalFormats->Add(L"1",TNoParam());
	var_ConditionalFormat->Bold = true;
	var_ConditionalFormat->ApplyTo = Exgridlib_tlb::FormatApplyToEnum(0x2);
Exgridlib_tlb::IColumnPtr var_Column = Grid1->Columns->Add(L"Description");
	var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column->PartialCheck = true;
Exgridlib_tlb::IColumnPtr var_Column1 = Grid1->Columns->Add(L"Index");
	var_Column1->FormatColumn = L"1 index ``";
	var_Column1->Position = 0;
	var_Column1->Width = 16;
Exgridlib_tlb::IColumnPtr var_Column2 = Grid1->Columns->Add(L"Root-Index");
	var_Column2->FormatColumn = L"root(1 index ``)";
	var_Column2->Position = 1;
	var_Column2->Width = 32;
	var_Column2->set_Def(Exgridlib_tlb::DefColumnEnum::exCellBackColor,TVariant(15790320));
Exgridlib_tlb::IColumnPtr var_Column3 = Grid1->Columns->Add(L"Root-Value");
	var_Column3->FormatColumn = L"root(%0)";
	var_Column3->Position = 2;
	var_Column3->Width = 32;
	var_Column3->set_Def(Exgridlib_tlb::DefColumnEnum::exCellBackColor,TVariant(15790320));
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	long h = var_Items->AddItem(TVariant("Root 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(var_Items->InsertItem(h,TNoParam(),TVariant("Child 2")),TNoParam(),TVariant("Sub-Child 2"));
	var_Items->set_CellState(TVariant(var_Items->InsertItem(h,TNoParam(),TVariant("Child 3"))),TVariant(0),1);
	var_Items->set_ExpandItem(h,true);
	h = var_Items->AddItem(TVariant("Root 2"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 3"));
	var_Items->set_ExpandItem(h,true);
Grid1->EndUpdate();

1232
Displays the parent item's index and caption/value using expressions

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Grid1->AutoDrag = Exgridlib_tlb::AutoDragEnum::exAutoDragPositionAny;
Grid1->AllowCopyPaste = Exgridlib_tlb::AllowCopyPasteEnum::exAllowPaste | Exgridlib_tlb::AllowCopyPasteEnum::exAllowCut | Exgridlib_tlb::AllowCopyPasteEnum::exAllowCopy;
Grid1->SingleSel = false;
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exRowLines;
Grid1->GridLineStyle = Exgridlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
Grid1->GridLineColor = RGB(208,208,208);
Grid1->ConditionalFormats->Add(L"%CC0 and %CX0",TNoParam())->Bold = true;
Exgridlib_tlb::IConditionalFormatPtr var_ConditionalFormat = Grid1->ConditionalFormats->Add(L"1",TNoParam());
	var_ConditionalFormat->Bold = true;
	var_ConditionalFormat->ApplyTo = Exgridlib_tlb::FormatApplyToEnum(0x2);
Exgridlib_tlb::IColumnPtr var_Column = Grid1->Columns->Add(L"Description");
	var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column->PartialCheck = true;
Exgridlib_tlb::IColumnPtr var_Column1 = Grid1->Columns->Add(L"Index");
	var_Column1->FormatColumn = L"1 index `I`";
	var_Column1->Position = 0;
	var_Column1->Width = 16;
Exgridlib_tlb::IColumnPtr var_Column2 = Grid1->Columns->Add(L"Parent-Index");
	var_Column2->FormatColumn = L"parent(1 index `I`)";
	var_Column2->Position = 1;
	var_Column2->Width = 32;
	var_Column2->set_Def(Exgridlib_tlb::DefColumnEnum::exCellBackColor,TVariant(15790320));
Exgridlib_tlb::IColumnPtr var_Column3 = Grid1->Columns->Add(L"Parent-Value");
	var_Column3->FormatColumn = L"parent(%0)";
	var_Column3->Position = 2;
	var_Column3->Width = 32;
	var_Column3->set_Def(Exgridlib_tlb::DefColumnEnum::exCellBackColor,TVariant(15790320));
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	long h = var_Items->AddItem(TVariant("Root 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(var_Items->InsertItem(h,TNoParam(),TVariant("Child 2")),TNoParam(),TVariant("Sub-Child 2"));
	var_Items->set_CellState(TVariant(var_Items->InsertItem(h,TNoParam(),TVariant("Child 3"))),TVariant(0),1);
	var_Items->set_ExpandItem(h,true);
	h = var_Items->AddItem(TVariant("Root 2"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 3"));
	var_Items->set_ExpandItem(h,true);
Grid1->EndUpdate();

1231
Copying and Pasting the Selection Programmatically
Grid1->BeginUpdate();
Grid1->Columns->Add(L"Tasks");
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Grid1->SingleSel = false;
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->AddItem(TVariant("Tasks"));
	var_Items->set_SelectItem(var_Items->AddItem(TVariant("Task 1")),true);
	var_Items->set_SelectItem(var_Items->AddItem(TVariant("Task 2")),true);
Grid1->IndentSelection(TVariant(false));
Grid1->CopySelection();
Grid1->Items->UnselectAll();
Grid1->Paste(TNoParam());
Grid1->EndUpdate();

1230
Enable Copy, Cut and Paste Clipboard operations
Grid1->BeginUpdate();
Grid1->Columns->Add(L"Tasks");
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Grid1->AllowCopyPaste = Exgridlib_tlb::AllowCopyPasteEnum::exAllowPaste | Exgridlib_tlb::AllowCopyPasteEnum::exAllowCut | Exgridlib_tlb::AllowCopyPasteEnum::exAllowCopy;
Grid1->SingleSel = false;
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->AddItem(TVariant("Tasks"));
	var_Items->set_SelectItem(var_Items->AddItem(TVariant("Task 1")),true);
	var_Items->set_SelectItem(var_Items->AddItem(TVariant("Task 2")),true);
Grid1->IndentSelection(TVariant(false));
Grid1->EndUpdate();

1229
Adjusts the hierarchy of selected items by changing their parent

Grid1->BeginUpdate();
Grid1->Columns->Add(L"Tasks");
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Grid1->SingleSel = false;
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->AddItem(TVariant("Tasks"));
	var_Items->set_SelectItem(var_Items->AddItem(TVariant("Task A")),true);
	var_Items->set_SelectItem(var_Items->AddItem(TVariant("Task B")),true);
Grid1->IndentSelection(TVariant(false));
Grid1->EndUpdate();

1228
Specify the size of the Columns panel

Grid1->BeginUpdate();
Grid1->HeaderHeight = 24;
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	var_Columns->Add(L"City");
	var_Columns->Add(L"Start")->Visible = false;
	var_Columns->Add(L"End")->Visible = false;
Grid1->ColumnsFloatBarRect = L",,96";
Grid1->ColumnsFloatBarVisible = Exgridlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleAsChild | Exgridlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleIncludeCheckColumns;
Grid1->EndUpdate();

1227
Show a vertical line between pivot and Columns panel (EBN color)

Grid1->BeginUpdate();
Grid1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABRsIQAAYAQGKIYBkAKBQAGaAoDDUNQxQwAAxwfBMKgBBCLIxhEYobgmGIXRpFICQTIcBhaGIZRiAKCRTDmHwyRCNIwCLD8QxtDqBY4gOZZX") +
	"hal4cJTgMaBYi+Pw3DZHcbvBRkewzHQAKgnSjoDhEMg1CTVVYTDKdOSzDyEX7sIAACpOIZQVJVEY1VT8cyxIyEZimSypWqiYJ0Ty6cQwTAIgI"));
Grid1->Background[Exgridlib_tlb::BackgroundPartEnum::exColumnsFloatBackColor] = 0x1000000;
Grid1->HeaderHeight = 24;
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	var_Columns->Add(L"City");
	var_Columns->Add(L"Start")->Visible = false;
	var_Columns->Add(L"End")->Visible = false;
Grid1->ColumnsFloatBarVisible = Exgridlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleAsChild | Exgridlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleIncludeCheckColumns;
Grid1->EndUpdate();

1226
Change the background of the Columns panel (EBN color)

Grid1->BeginUpdate();
Grid1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABNoCg6AADACAxRDAMgBQKAAzQFAYahqGKGAAGOD4JhUAIIRZGMIjFDcEwxC6NIpAWLoJDCH4mSTHYxgJIMWwzDiBZgkCA4fiGEYnThCIxzT") +
	"J0aw1CKbYRAKCUKoUAJFsSnQAJIgOO4lULPMIhDDQKQTIKBahoehqIhaEQyDSJNb2DCIahhMSEbKtCooDhGFZUWzLVxTJJNawHJqJJDuOTpSjKH4+RjWFKUXR9b4BJSN" +
	"AgqeCQTiSWZEVxRUS0XbGCyZLSQY7uAAMKgOVoDYzdGLwHTtOwrMa1QAsDSbKqWZ5uRpHcQ5aAGN5DPbMbqwOaqLznAaLQLtG4RTikVRPTDYaj437+OaHGyNbI6HTNPp" +
	"TlWDJWjYXI8l8C4fg6GYAAEEISgGJJGHQOocgyIwYnqKhYAAIQTH2MYRjQJBRAmZptmEAYIjGU5dk8UgOFgBJUgCTQIBYBoBmCCAmAqApghgDJUDmYQFCCZoEk2OBUm+" +
	"BZPCgZgagaYZIHYHoHmGWBcm8NwiEiFJVgmYgji4Kg6GKSI2C6C5jAiRgygwIojiycINkyeJmAYPJjkiTg+g+ZAIkCdIQkyWQWDuDxkBkJhKguZAzlIRQzGQc5ODWFJl" +
	"EkVhWhWZYJFYTYTmUE4yF6F5mAmBhihiZhJhYX4WmQaAUnWGpOlmNhuhuZwJkYcocmcSY4naHZlkmKhrDuJ5JnYfofmgCgGgKIJnlmXJ2h4TQKBosRokoNoOiOaQKDSd" +
	"4kmiChMncPBpgoZoaiaaZKHaHonmmE5iiKJRpDicomimaoKiaKoqmqSoeiIPgogqPotiyaxKlYPA+GuCqbBMa5KnaPovmwCwGj6LgP24RIhiyCwmkqMpsksNpKD6LQLB" +
	"qOIzi0SxWlaHZtAOahPssM5Wi+IYtlsXpijKbZ5lyTo5mAE4UlqOpjHOQpEjubyanKPJvEuNgVj2TY1CCao+k2G52AyP5wAwBp9DYZZ1CCaxsAABAEICA"));
Grid1->Background[Exgridlib_tlb::BackgroundPartEnum::exColumnsFloatBackColor] = 0x1000000;
Grid1->HeaderHeight = 24;
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	var_Columns->Add(L"City");
	var_Columns->Add(L"Start")->Visible = false;
	var_Columns->Add(L"End")->Visible = false;
Grid1->ColumnsFloatBarVisible = Exgridlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleAsChild | Exgridlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleIncludeCheckColumns;
Grid1->EndUpdate();

1225
Change the background of the Columns panel (solid color)

Grid1->BeginUpdate();
Grid1->HeaderHeight = 24;
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	var_Columns->Add(L"City");
	var_Columns->Add(L"Start")->Visible = false;
	var_Columns->Add(L"End")->Visible = false;
Grid1->ColumnsFloatBarVisible = Exgridlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleAsChild | Exgridlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleIncludeCheckColumns;
Grid1->Background[Exgridlib_tlb::BackgroundPartEnum::exColumnsFloatBackColor] = RGB(240,240,240);
Grid1->EndUpdate();

1224
Change the visual appearance of the Columns panel

Grid1->BeginUpdate();
Grid1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABNoCg6AADACAxRDAMgBQKAAzQFAYahqGKGAAGOD4JhUAIIRZGMIjFDcEwxC6NIpAWLoJDCH4mSTHYxgJIMWwzDiBZgkCA4fiGEYnThCIxzT") +
	"J0aw1CKbYRAKCUKoUAJFsSnQAJIgOO4lULPMIhDDQKQTIKBahoehqIhaEQyDSJNb2DCIahhMSEbKtCooDhGFZUWzLVxTJJNawHJqJJDuOTpSjKH4+RjWFKUXR9b4BJSN" +
	"AgqeCQTiSWZEVxRUS0XbGCyZLSQY7uAAMKgOVoDYzdGLwHTtOwrMa1QAsDSbKqWZ5uRpHcQ5aAGN5DPbMbqwOaqLznAaLQLtG4RTikVRPTDYaj437+OaHGyNbI6HTNPp" +
	"TlWDJWjYXI8l8C4fg6GYAAEEISgGJJGHQOocgyIwYnqKhYAAIQTH2MYRjQJBRAmZptmEAYIjGU5dk8UgOFgBJUgCTQIBYBoBmCCAmAqApghgDJUDmYQFCCZoEk2OBUm+" +
	"BZPCgZgagaYZIHYHoHmGWBcm8NwiEiFJVgmYgji4Kg6GKSI2C6C5jAiRgygwIojiycINkyeJmAYPJjkiTg+g+ZAIkCdIQkyWQWDuDxkBkJhKguZAzlIRQzGQc5ODWFJl" +
	"EkVhWhWZYJFYTYTmUE4yF6F5mAmBhihiZhJhYX4WmQaAUnWGpOlmNhuhuZwJkYcocmcSY4naHZlkmKhrDuJ5JnYfofmgCgGgKIJnlmXJ2h4TQKBosRokoNoOiOaQKDSd" +
	"4kmiChMncPBpgoZoaiaaZKHaHonmmE5iiKJRpDicomimaoKiaKoqmqSoeiIPgogqPotiyaxKlYPA+GuCqbBMa5KnaPovmwCwGj6LgP24RIhiyCwmkqMpsksNpKD6LQLB" +
	"qOIzi0SxWlaHZtAOahPssM5Wi+IYtlsXpijKbZ5lyTo5mAE4UlqOpjHOQpEjubyanKPJvEuNgVj2TY1CCao+k2G52AyP5wAwBp9DYZZ1CCaxsAABAEICA"));
Grid1->Background[Exgridlib_tlb::BackgroundPartEnum::exColumnsFloatAppearance] = 0x1000000;
Grid1->Background[Exgridlib_tlb::BackgroundPartEnum::exColumnsFloatCaptionBackColor] = RGB(246,246,246);
Grid1->BackColorHeader = 0x1000000;
Grid1->HeaderHeight = 24;
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	var_Columns->Add(L"City");
	var_Columns->Add(L"Start")->Visible = false;
	var_Columns->Add(L"End")->Visible = false;
Grid1->Description[Exgridlib_tlb::DescriptionTypeEnum::exColumnsFloatBar] = L"Show/Hide";
Grid1->ColumnsFloatBarVisible = Exgridlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleIncludeCheckColumns;
Grid1->EndUpdate();

1223
Defines the symbol used to indicate repeated captions, providing a clear visual cue for identical entries (ditto mark)

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exRowLines;
Grid1->Columns->Add(L"Country")->ShowIdem = L"<fgcolor gray>〃";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->AddItem(TVariant("Spain"));
	var_Items->AddItem(TVariant("Spain"));
	var_Items->AddItem(TVariant("Spain"));
	var_Items->AddItem(TVariant("Spain"));
	var_Items->AddItem(TVariant("Germany"));
	var_Items->AddItem(TVariant("Germany"));
	var_Items->AddItem(TVariant("Germany"));
	var_Items->AddItem(TVariant("Germany"));
Grid1->EndUpdate();

1222
Defines the symbol used to indicate repeated captions, providing a clear visual cue for identical entries (space)

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exRowLines;
Grid1->Columns->Add(L"Country")->ShowIdem = L" ";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->AddItem(TVariant("Spain"));
	var_Items->AddItem(TVariant("Spain"));
	var_Items->AddItem(TVariant("Spain"));
	var_Items->AddItem(TVariant("Spain"));
	var_Items->AddItem(TVariant("Germany"));
	var_Items->AddItem(TVariant("Germany"));
	var_Items->AddItem(TVariant("Germany"));
	var_Items->AddItem(TVariant("Germany"));
Grid1->EndUpdate();

1221
Displays a glitch funnel for drop-down filter buttons (empty or active)

Grid1->BeginUpdate();
Exgridlib_tlb::IAppearancePtr var_Appearance = Grid1->VisualAppearance;
	var_Appearance->RenderType = -1;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABa8IQAAYAQGKIYBkAKBQAGaAoDDUNQxQwAAxwfBMKgBBCLIxhEYobgmGIXRpFMbxCKQahLEiTIhGUYJHgmK4tRiAUgxVDkBxrECZYqjcBZO") +
	"iwLQ2TxDM7DNKUCBnIoABhGOaYDh+IQNQjUFKwTRFGRxK4EIRKAyTDLQdRyGSMMbjdQpBCbMiMRqhESKRq2UwYRYCFS1NalaztO6BUAvK67YrWez/YBfF+SfwGeqDYRe" +
	"WAPfgWERnQrGMLxbD8KwZAKTRjkGJ4XhuB41TbQMqufL9ByXHKSSDpGjaXjeO5VVjYNAvS69UzXNq3bhtQAOXCMEwCgI="));
	var_Appearance->Add(2,TVariant("CP:1 -2 0 0 0"));
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exAllLines;
Grid1->GridLineStyle = Exgridlib_tlb::GridLinesStyleEnum::exGridLinesGeometric;
Grid1->ShowFocusRect = false;
Grid1->Background[Exgridlib_tlb::BackgroundPartEnum::exHeaderFilterBarButton] = 0x2000000;
Grid1->Background[Exgridlib_tlb::BackgroundPartEnum::exHeaderFilterBarActive] = 0x2000001;
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->BackColorHeader = RGB(255,255,255);
Grid1->HeaderHeight = 24;
Grid1->HeaderVisible = true;
Exgridlib_tlb::IColumnPtr var_Column = Grid1->Columns->Add(L"1st col");
	var_Column->DisplayFilterButton = true;
	var_Column->DisplayFilterPattern = false;
	var_Column->Filter = L"Item B";
	var_Column->FilterType = Exgridlib_tlb::FilterTypeEnum::exFilter;
Grid1->Columns->Add(L"2nd col");
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->AddItem(TVariant("Item A"));
	var_Items->AddItem(TVariant("Item B"));
	var_Items->AddItem(TVariant("Item C"));
Grid1->ApplyFilter();
Grid1->EndUpdate();

1220
How can I store any extra data associated with a cell
// ButtonClick event - Occurs when user clicks on the cell's button.
void __fastcall TForm1::Grid1ButtonClick(TObject *Sender, Exgridlib_tlb::HITEM   Item, long   ColIndex, Variant   Key)
{
	OutputDebugString( PChar(Grid1->Items->get_CellData(TVariant(Item),TVariant(ColIndex))) );
}

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Exgridlib_tlb::IEditorPtr var_Editor = Grid1->Columns->Add(L"Def")->Editor;
	var_Editor->EditType = Exgridlib_tlb::EditTypeEnum::ButtonType;
	var_Editor->Locked = true;
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->set_CellData(TVariant(var_Items->AddItem(TVariant("Cell 1"))),TVariant(0),TVariant("your extra data for cell 1"));
	var_Items->set_CellData(TVariant(var_Items->AddItem(TVariant("Cell 2"))),TVariant(0),TVariant("your extra data for cell 2"));
Grid1->EndUpdate();

1219
How can I replace or add an icon at runtime

Grid1->BeginUpdate();
Grid1->ReplaceIcon(TVariant(String("gAAAABgYACEHgUJFEEAAWhUJCEJEEJggEhMCYEXjUbjkJQECj8gj8hAEjkshYEpk8kf8ClsulsvAExmcvf83js5nU7nkCeEcn8boMaocXosCB9Hn09pkzcEuoL/fE+O") +
	"kYB0gB9YhIHrddgVcr9aktZADAD8+P8CgIA=="),TNoParam());
Grid1->ReplaceIcon(TVariant("C:\\images\\favicon.ico"),TVariant(0));
Grid1->Columns->Add(L"Items")->set_Def(Exgridlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
Grid1->Items->AddItem(TVariant("Item <img>1</img>"));
Grid1->EndUpdate();

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 __fastcall TForm1::Grid1Click(TObject *Sender)
{
	Grid1->Layout = L"Select=\"0\";SingleSort=\"C0:2\";Columns=1";
}

Grid1->BeginUpdate();
Grid1->Columns->Add(L"Column");
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->AddItem(TVariant("Item 1"));
	var_Items->AddItem(TVariant("Item 2"));
	var_Items->AddItem(TVariant("Item 3"));
Grid1->EndUpdate();

1217
How can I add totals to groups without having to go through the AddGroupItem grid function

Grid1->FreezeEvents(true);
Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exgridlib_tlb::IConditionalFormatsPtr var_ConditionalFormats = Grid1->ConditionalFormats;
	Exgridlib_tlb::IConditionalFormatPtr var_ConditionalFormat = var_ConditionalFormats->Add(L"%CT1",TNoParam());
		var_ConditionalFormat->ForeColor = RGB(128,128,128);
		var_ConditionalFormat->ApplyTo = Exgridlib_tlb::FormatApplyToEnum(0x1);
	Exgridlib_tlb::IConditionalFormatPtr var_ConditionalFormat1 = var_ConditionalFormats->Add(L"%CT2",TNoParam());
		var_ConditionalFormat1->ForeColor = RGB(128,128,128);
		var_ConditionalFormat1->ApplyTo = Exgridlib_tlb::FormatApplyToEnum(0x2);
	Exgridlib_tlb::IConditionalFormatPtr var_ConditionalFormat2 = var_ConditionalFormats->Add(L"%CT3",TNoParam());
		var_ConditionalFormat2->ForeColor = RGB(128,128,128);
		var_ConditionalFormat2->ApplyTo = Exgridlib_tlb::FormatApplyToEnum(0x3);
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	var_Columns->Add(L"Description");
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Qty");
		var_Column->Editor->EditType = Exgridlib_tlb::EditTypeEnum::SpinType;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Price");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("avg(current,rec,%2)"));
		var_Column1->Editor->EditType = Exgridlib_tlb::EditTypeEnum::SpinType;
	Exgridlib_tlb::IColumnPtr var_Column2 = var_Columns->Add(L"Amount");
		var_Column2->ComputedField = L"%1 * %2";
		var_Column2->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%3)"));
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	long r = var_Items->AddItem(TVariant("Root"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group 1"));
	long h = var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(10));
	h = var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(2));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(11));
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group 2"));
	h = var_Items->InsertItem(g2,TNoParam(),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(12));
	h = var_Items->InsertItem(g2,TNoParam(),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(4));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(13));
	var_Items->set_ExpandItem(0,true);
Grid1->EndUpdate();
Grid1->FreezeEvents(false);

1216
How can I configure the filters in the text columns to search by content

Grid1->BeginUpdate();
Grid1->FilterBarPromptVisible = Exgridlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::None2;
Grid1->FilterBarPromptType = Exgridlib_tlb::FilterPromptEnum::exFilterPromptContainsAll;
Grid1->Columns->Add(L"Names");
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->AddItem(TVariant("Mantel"));
	var_Items->AddItem(TVariant("Mechanik"));
	var_Items->AddItem(TVariant("Motor"));
	var_Items->AddItem(TVariant("Murks"));
	var_Items->AddItem(TVariant("Märchen"));
	var_Items->AddItem(TVariant("Möhren"));
	var_Items->AddItem(TVariant("Mühle"));
	var_Items->AddItem(TVariant("Sérigraphie"));
Grid1->FilterBarPromptPattern = L"a";
Grid1->EndUpdate();

1215
How can I display the control's captions in Spanish

Grid1->BeginUpdate();
Grid1->FilterBarPromptVisible = Exgridlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::None2;
Grid1->Description[Exgridlib_tlb::DescriptionTypeEnum::exFilterBarAll] = L"(todo) ";
Grid1->Description[Exgridlib_tlb::DescriptionTypeEnum::exFilterBarFilterForCaption] = L"filtrar por...";
Grid1->FilterBarPrompt = L"<i><fgcolor=808080>iniciar filtro...</fgcolor></i>";
Exgridlib_tlb::IColumnPtr var_Column = Grid1->Columns->Add(L"Names");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterType = Exgridlib_tlb::FilterTypeEnum::exPattern;
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->AddItem(TVariant("Mantel"));
	var_Items->AddItem(TVariant("Mechanik"));
	var_Items->AddItem(TVariant("Motor"));
	var_Items->AddItem(TVariant("Murks"));
	var_Items->AddItem(TVariant("Märchen"));
	var_Items->AddItem(TVariant("Möhren"));
	var_Items->AddItem(TVariant("Mühle"));
	var_Items->AddItem(TVariant("Sérigraphie"));
Grid1->EndUpdate();

1214
How can I zoom in the control

Grid1->BeginUpdate();
String s1 = 16;
TVariant s2 = TVariant(Grid1->FormatABC(L"2 * value",TVariant(s1),TNoParam(),TNoParam()));
Grid1->ImageSize = s2;
Grid1->DefaultItemHeight = s2;
Grid1->HeaderHeight = s2;
Grid1->SortBarHeight = s2;
Grid1->Indent = s2;
Grid1->Font->Size = TVariant(s1);
Grid1->FilterBarFont->Size = TVariant(s1);
Grid1->ToolTipFont->Size = TVariant(s1);
Grid1->FilterBarPromptVisible = Exgridlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::None2;
Exgridlib_tlb::IColumnPtr var_Column = Grid1->Columns->Add(L"Names");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterType = Exgridlib_tlb::FilterTypeEnum::exPattern;
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->AddItem(TVariant("Mantel"));
	var_Items->AddItem(TVariant("Mechanik"));
	var_Items->AddItem(TVariant("Motor"));
	var_Items->AddItem(TVariant("Murks"));
	var_Items->AddItem(TVariant("Märchen"));
	var_Items->AddItem(TVariant("Möhren"));
	var_Items->AddItem(TVariant("Mühle"));
	var_Items->AddItem(TVariant("Sérigraphie"));
Grid1->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

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exgridlib_tlb::IColumnPtr var_Column = Grid1->Columns->Add(L"Items");
	var_Column->DisplayFilterButton = true;
	var_Column->DisplayFilterPattern = true;
	var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exFilterPatternTemplate,TVariant("*<%filter%>*"));
	var_Column->FilterType = Exgridlib_tlb::FilterTypeEnum::exPattern;
	var_Column->Filter = L"1";
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	long h = var_Items->AddItem(TVariant("Root 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->AddItem(TVariant("Root 2"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
Grid1->ApplyFilter();
Grid1->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

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exAllLines;
Grid1->GridLineStyle = Exgridlib_tlb::GridLinesStyleEnum::exGridLinesGeometric;
Grid1->ColumnAutoResize = false;
Grid1->Columns->Add(L"Column 1");
Grid1->Columns->Add(L"Column 2");
Grid1->Columns->Add(L"Column 3");
Grid1->Columns->Add(L"Column 4");
Grid1->EndUpdate();

1211
Load data as a tree using a parent-id relationship

Grid1->BeginUpdate();
Grid1->ColumnAutoResize = false;
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exVLines;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exLinesAtRoot;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADODB.Recordset");
	rs->Open(TVariant("Select * FROM Employees WHERE 1=0"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.mdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
Grid1->DataSource = (IDispatch*)rs;
Grid1->Columns->get_Item(TVariant(0))->Width = 128;
rs = Variant::CreateObject(L"ADODB.Recordset");
	rs->Open(TVariant("Employees"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.mdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
Grid1->PutItems(rs->GetRows(0,TNoParam(),TNoParam()),TVariant(";0;17"));
Grid1->Items->set_ExpandItem(0,true);
Grid1->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 __fastcall TForm1::Grid1AddItem(TObject *Sender, Exgridlib_tlb::HITEM   Item)
{
	Grid1->Items->set_CellEditorVisible(TVariant(Item),TVariant(0),Exgridlib_tlb::EditorVisibleEnum::exEditorVisible);
	Grid1->Items->set_CellEditorVisible(TVariant(Item),TVariant(1),Exgridlib_tlb::EditorVisibleEnum::exEditorVisible);
}

// EditOpen event - Occurs when the edit operation starts.
void __fastcall TForm1::Grid1EditOpen(TObject *Sender)
{
	Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
		TVariant v = TVariant(var_Items->get_CellValue(TVariant(var_Items->FocusItem),TVariant(0)));
		String c = var_Items->get_CellCaption(TVariant(var_Items->FocusItem),TVariant(0));
	Exgridlib_tlb::IEditorPtr var_Editor = Grid1->Columns->get_Item(TVariant(1))->Editor;
		var_Editor->ClearItems();
		var_Editor->AddItem(v,L"c",TNoParam());
}

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->GridLineStyle = Exgridlib_tlb::GridLinesStyleEnum::exGridLinesGeometric;
Exgridlib_tlb::IColumnPtr var_Column = Grid1->Columns->Add(L"DropDownList");
	Exgridlib_tlb::IEditorPtr var_Editor = var_Column->Editor;
		var_Editor->EditType = Exgridlib_tlb::EditTypeEnum::DropDownListType;
		var_Editor->AddItem(1,L"First",TNoParam());
		var_Editor->AddItem(2,L"Second",TNoParam());
		var_Editor->AddItem(3,L"Third",TNoParam());
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exAllLines;
Grid1->Columns->Add(L"DropDownList-Related")->Editor->EditType = Exgridlib_tlb::EditTypeEnum::DropDownListType;
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(1))),TVariant(1),TVariant(-1));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(2))),TVariant(1),TVariant(-1));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(3))),TVariant(1),TVariant(-1));
	var_Items->set_LockedItemCount(Exgridlib_tlb::VAlignmentEnum::exBottom,1);
	long h = var_Items->get_LockedItem(Exgridlib_tlb::VAlignmentEnum::exBottom,0);
	var_Items->set_ItemDivider(h,0);
	var_Items->set_ItemDividerLineAlignment(h,Exgridlib_tlb::DividerAlignmentEnum::DividerTop);
	var_Items->set_CellEditorVisible(TVariant(h),TVariant(0),Exgridlib_tlb::EditorVisibleEnum::exEditorHidden);
	var_Items->set_CellSingleLine(TVariant(h),TVariant(0),Exgridlib_tlb::CellSingleLineEnum::exCaptionWordWrap);
	var_Items->set_CellValueFormat(TVariant(h),TVariant(0),Exgridlib_tlb::ValueFormatEnum::exHTML);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant(String("The drop down editor in the second column is filled during the <b>EditOpen event</b>, and the values are based on the selection") +
	" on the first column."));
Grid1->EndUpdate();

1209
Highlight the editable fields

// Change event - Occurs when the user changes the cell's content.
void __fastcall TForm1::Grid1Change(TObject *Sender, Exgridlib_tlb::HITEM   Item, long   ColIndex, Variant *   NewValue)
{
	Grid1->Refresh();
}

Grid1->FreezeEvents(true);
Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exgridlib_tlb::IConditionalFormatsPtr var_ConditionalFormats = Grid1->ConditionalFormats;
	Exgridlib_tlb::IConditionalFormatPtr var_ConditionalFormat = var_ConditionalFormats->Add(L"%CE1",TNoParam());
		var_ConditionalFormat->Bold = true;
		var_ConditionalFormat->BackColor = RGB(245,245,245);
		var_ConditionalFormat->ApplyTo = Exgridlib_tlb::FormatApplyToEnum(0x1);
	Exgridlib_tlb::IConditionalFormatPtr var_ConditionalFormat1 = var_ConditionalFormats->Add(L"%CE2",TNoParam());
		var_ConditionalFormat1->Bold = true;
		var_ConditionalFormat1->BackColor = RGB(245,245,245);
		var_ConditionalFormat1->ApplyTo = Exgridlib_tlb::FormatApplyToEnum(0x2);
	Exgridlib_tlb::IConditionalFormatPtr var_ConditionalFormat2 = var_ConditionalFormats->Add(L"%CE3",TNoParam());
		var_ConditionalFormat2->Bold = true;
		var_ConditionalFormat2->BackColor = RGB(245,245,245);
		var_ConditionalFormat2->ApplyTo = Exgridlib_tlb::FormatApplyToEnum(0x3);
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	var_Columns->Add(L"Description");
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Qty");
		var_Column->Editor->EditType = Exgridlib_tlb::EditTypeEnum::SpinType;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Price");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("avg(current,rec,%2)"));
		var_Column1->Editor->EditType = Exgridlib_tlb::EditTypeEnum::SpinType;
	Exgridlib_tlb::IColumnPtr var_Column2 = var_Columns->Add(L"Amount");
		var_Column2->ComputedField = L"%1 * %2";
		var_Column2->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%3)"));
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	long r = var_Items->AddItem(TVariant("Root"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group 1"));
	long h = var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(10));
	h = var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(2));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(11));
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group 2"));
	h = var_Items->InsertItem(g2,TNoParam(),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(12));
	h = var_Items->InsertItem(g2,TNoParam(),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(4));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(13));
	var_Items->set_ExpandItem(0,true);
Grid1->EndUpdate();
Grid1->FreezeEvents(false);

1208
Highlight the total fields

// Change event - Occurs when the user changes the cell's content.
void __fastcall TForm1::Grid1Change(TObject *Sender, Exgridlib_tlb::HITEM   Item, long   ColIndex, Variant *   NewValue)
{
	Grid1->Refresh();
}

Grid1->FreezeEvents(true);
Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exgridlib_tlb::IConditionalFormatsPtr var_ConditionalFormats = Grid1->ConditionalFormats;
	Exgridlib_tlb::IConditionalFormatPtr var_ConditionalFormat = var_ConditionalFormats->Add(L"%CT1",TNoParam());
		var_ConditionalFormat->ForeColor = RGB(128,128,128);
		var_ConditionalFormat->ApplyTo = Exgridlib_tlb::FormatApplyToEnum(0x1);
	Exgridlib_tlb::IConditionalFormatPtr var_ConditionalFormat1 = var_ConditionalFormats->Add(L"%CT2",TNoParam());
		var_ConditionalFormat1->ForeColor = RGB(128,128,128);
		var_ConditionalFormat1->ApplyTo = Exgridlib_tlb::FormatApplyToEnum(0x2);
	Exgridlib_tlb::IConditionalFormatPtr var_ConditionalFormat2 = var_ConditionalFormats->Add(L"%CT3",TNoParam());
		var_ConditionalFormat2->ForeColor = RGB(128,128,128);
		var_ConditionalFormat2->ApplyTo = Exgridlib_tlb::FormatApplyToEnum(0x3);
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	var_Columns->Add(L"Description");
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Qty");
		var_Column->Editor->EditType = Exgridlib_tlb::EditTypeEnum::SpinType;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Price");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("avg(current,rec,%2)"));
		var_Column1->Editor->EditType = Exgridlib_tlb::EditTypeEnum::SpinType;
	Exgridlib_tlb::IColumnPtr var_Column2 = var_Columns->Add(L"Amount");
		var_Column2->ComputedField = L"%1 * %2";
		var_Column2->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%3)"));
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	long r = var_Items->AddItem(TVariant("Root"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group 1"));
	long h = var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(10));
	h = var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(2));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(11));
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group 2"));
	h = var_Items->InsertItem(g2,TNoParam(),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(12));
	h = var_Items->InsertItem(g2,TNoParam(),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(4));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(13));
	var_Items->set_ExpandItem(0,true);
Grid1->EndUpdate();
Grid1->FreezeEvents(false);

1207
Highlight the leaf items

Grid1->BeginUpdate();
Grid1->ConditionalFormats->Add(L"%CC0=0",TNoParam())->ForeColor = RGB(128,128,128);
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	var_Columns->Add(L"Item")->Width = 16;
	var_Columns->Add(L"Desc");
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	long hR = var_Items->AddItem(TVariant("Root"));
	var_Items->set_CellValue(TVariant(hR),TVariant(1),TVariant("The root directory /"));
	var_Items->set_ExpandItem(hR,true);
	long h = var_Items->InsertItem(hR,TNoParam(),TVariant("Home"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("The home directory with user directories Alice and Bob"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Alice"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Bob"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->InsertItem(hR,TNoParam(),TVariant("Etc"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("The etc directory with one configuration file"));
	h = var_Items->InsertItem(h,TNoParam(),TVariant("nginx.conf"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(hR,TNoParam(),TVariant("Var"))),TVariant(1),TVariant("The var directory"));
Grid1->EndUpdate();

1206
Highlight the parent items

Grid1->BeginUpdate();
Grid1->ConditionalFormats->Add(L"%CC0",TNoParam())->ForeColor = RGB(255,0,0);
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	var_Columns->Add(L"Item")->Width = 16;
	var_Columns->Add(L"Desc");
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	long hR = var_Items->AddItem(TVariant("Root"));
	var_Items->set_CellValue(TVariant(hR),TVariant(1),TVariant("The root directory /"));
	var_Items->set_ExpandItem(hR,true);
	long h = var_Items->InsertItem(hR,TNoParam(),TVariant("Home"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("The home directory with user directories Alice and Bob"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Alice"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Bob"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->InsertItem(hR,TNoParam(),TVariant("Etc"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("The etc directory with one configuration file"));
	h = var_Items->InsertItem(h,TNoParam(),TVariant("nginx.conf"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(hR,TNoParam(),TVariant("Var"))),TVariant(1),TVariant("The var directory"));
Grid1->EndUpdate();

1205
Highlight the item being expanded or collapsed

Grid1->BeginUpdate();
Grid1->ConditionalFormats->Add(L"%CX0",TNoParam())->Bold = true;
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	var_Columns->Add(L"Item")->Width = 16;
	var_Columns->Add(L"Desc");
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	long hR = var_Items->AddItem(TVariant("Root"));
	var_Items->set_CellValue(TVariant(hR),TVariant(1),TVariant("The root directory /"));
	var_Items->set_ExpandItem(hR,true);
	long h = var_Items->InsertItem(hR,TNoParam(),TVariant("Home"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("The home directory with user directories Alice and Bob"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Alice"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Bob"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->InsertItem(hR,TNoParam(),TVariant("Etc"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("The etc directory with one configuration file"));
	h = var_Items->InsertItem(h,TNoParam(),TVariant("nginx.conf"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(hR,TNoParam(),TVariant("Var"))),TVariant(1),TVariant("The var directory"));
Grid1->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 __fastcall TForm1::Grid1Change(TObject *Sender, Exgridlib_tlb::HITEM   Item, long   ColIndex, Variant *   NewValue)
{
	Grid1->Refresh();
}

Grid1->FreezeEvents(true);
Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	var_Columns->Add(L"Description");
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Qty");
		var_Column->Editor->EditType = Exgridlib_tlb::EditTypeEnum::SpinType;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Price");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("avg(current,rec,%2)"));
		var_Column1->Editor->EditType = Exgridlib_tlb::EditTypeEnum::SpinType;
	Exgridlib_tlb::IColumnPtr var_Column2 = var_Columns->Add(L"Amount");
		var_Column2->ComputedField = L"%1 * %2";
		var_Column2->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%3)"));
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	long r = var_Items->AddItem(TVariant("Root"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group 1"));
	var_Items->set_FormatCell(TVariant(g1),TVariant(2),L"`<average missing>`");
	var_Items->set_CellEditorVisible(TVariant(g1),TVariant(2),Exgridlib_tlb::EditorVisibleEnum::exEditorHidden);
	var_Items->set_CellBold(TVariant(g1),TVariant(2),true);
	var_Items->set_CellForeColor(TVariant(g1),TVariant(2),RGB(255,0,0));
	long h = var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(10));
	h = var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(2));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(11));
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group 2"));
	h = var_Items->InsertItem(g2,TNoParam(),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(12));
	h = var_Items->InsertItem(g2,TNoParam(),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(4));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(13));
	var_Items->set_ExpandItem(0,true);
Grid1->EndUpdate();
Grid1->FreezeEvents(false);

1203
How can I add a total column

// Change event - Occurs when the user changes the cell's content.
void __fastcall TForm1::Grid1Change(TObject *Sender, Exgridlib_tlb::HITEM   Item, long   ColIndex, Variant *   NewValue)
{
	Grid1->Refresh();
}

Grid1->FreezeEvents(true);
Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->HeaderHeight = 24;
Grid1->LinesAtRoot = Exgridlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exgridlib_tlb::IColumnsPtr var_Columns = Grid1->Columns;
	var_Columns->Add(L"Description");
	Exgridlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Qty");
		var_Column->Editor->EditType = Exgridlib_tlb::EditTypeEnum::SpinType;
		var_Column->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
	Exgridlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Price");
		var_Column1->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("avg(current,rec,%2)"));
		var_Column1->Editor->EditType = Exgridlib_tlb::EditTypeEnum::SpinType;
	Exgridlib_tlb::IColumnPtr var_Column2 = var_Columns->Add(L"Amount");
		var_Column2->ComputedField = L"%1 * %2";
		var_Column2->set_Def(Exgridlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%3)"));
Exgridlib_tlb::IItemsPtr var_Items = Grid1->Items;
	long r = var_Items->AddItem(TVariant("Root"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group 1"));
	long h = var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(10));
	h = var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(2));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(11));
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group 2"));
	h = var_Items->InsertItem(g2,TNoParam(),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(12));
	h = var_Items->InsertItem(g2,TNoParam(),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(4));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(13));
	var_Items->set_ExpandItem(0,true);
Grid1->EndUpdate();
Grid1->FreezeEvents(false);

1202
Is it possible to disable sizing(size) the column
Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exVLines;
Exgridlib_tlb::IColumnPtr var_Column = Grid1->Columns->Add(L"32px");
	var_Column->Width = 32;
	var_Column->AllowSizing = false;
Grid1->Columns->Add(L"Rest");
Grid1->ColumnAutoResize = true;
Grid1->EndUpdate();

1201
How can I add two columns of 25% and the third of 50%

Grid1->BeginUpdate();
Grid1->HeaderAppearance = Exgridlib_tlb::AppearanceEnum::Etched;
Grid1->DrawGridLines = Exgridlib_tlb::GridLinesEnum::exVLines;
Grid1->Columns->Add(L"25%")->Width = 25;
Grid1->Columns->Add(L"25%")->Width = 25;
Grid1->Columns->Add(L"50%")->Width = 50;
Grid1->ColumnAutoResize = true;
Grid1->EndUpdate();