1122:
How can I define a column of button type

// ButtonClick event - Occurs when user clicks on the cell's button.
procedure TWinForm1.AxGrid1_ButtonClick(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ButtonClickEvent);
begin
	with AxGrid1 do
	begin
		with Items do
		begin
			OutputDebugString( CellValue[TObject(e.item),TObject(e.colIndex)] );
		end;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Button') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasButton] := TObject(True);
		Def[EXGRIDLib.DefColumnEnum.exCellButtonAutoWidth] := TObject(False);
		FormatColumn := '``';
		AllowSizing := False;
		Width := 48;
	end;
	(Columns.Add('Second') as EXGRIDLib.Column).FormatColumn := '` Item ` + 1 index ``';
	with Items do
	begin
		AddItem('Button 1');
		AddItem('Button 2');
		AddItem('Button 3 ');
	end;
	EndUpdate();
end
1121:
Is it possible to configure different colour/icon when there is a active filter

// FilterChange event - Occurs when filter was changed.
procedure TWinForm1.AxGrid1_FilterChange(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		set_Background(EXGRIDLib.BackgroundPartEnum.exHeaderFilterBarButton,FormatABC('value = 0 ? 0x1000001 : 0x10000FF ',TObject(Columns.Item[TObject(0)].FilterType),Nil,Nil));
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		RenderType := -16777216;
		Add(1,'gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQg' + 
	'mPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThd' + 
	'r4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA');
	end;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exAllLines;
	ShowFocusRect := False;
	set_Background(EXGRIDLib.BackgroundPartEnum.exHeaderFilterBarButton,$1000001);
	set_Background(EXGRIDLib.BackgroundPartEnum.exCursorHoverColumn,$ffffffff);
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	BackColorHeader := Color.FromArgb(255,255,255);
	HeaderVisible := True;
	with (Columns.Add('Filter') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		AllowSort := False;
		AllowDragging := False;
		FilterList := EXGRIDLib.FilterListEnum.exShowCheckBox;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	with Columns.Item[TObject(0)] do
	begin
		Filter := 'Item B';
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
	end;
	ApplyFilter();
	EndUpdate();
end
1120:
How can I display the type of the value the column display

with AxGrid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	with (Columns.Add('Values') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		FormatColumn := 'value + ` <off 4><fgcolor=808080>type(` + type(%0) + `)`';
	end;
	with Items do
	begin
		AddItem(Nil);
		AddItem(TObject(-1));
		AddItem('string');
		AddItem('1/1/2001');
		AddItem(TObject(2));
		AddItem(TObject(True));
		AddItem(TObject(12.34));
	end;
	EndUpdate();
end
1119:
I want to create a conditional format for a column, verifying that the value of the cell is numeric, how can I do

with AxGrid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	Columns.Add('Values');
	with ConditionalFormats.Add('type(%0) in (2,3,4,5,18,19,20,21)',Nil) do
	begin
		ForeColor := $ff;
		Bold := True;
	end;
	ConditionalFormats.Add('type(%0) = 11',Nil).ForeColor := $ff00;
	ConditionalFormats.Add('type(%0) = 7',Nil).ForeColor := $ff0000;
	ConditionalFormats.Add('type(%0) in (0,1)',Nil).BackColor := $f0f0f0;
	with Items do
	begin
		AddItem(Nil);
		AddItem(TObject(-1));
		AddItem('string');
		AddItem('1/1/2001');
		AddItem(TObject(2));
		AddItem(TObject(True));
		AddItem(TObject(12.34));
	end;
	EndUpdate();
end
1118:
How can I assign a computed value on a different column based on other columns

// Change event - Occurs when the user changes the cell's content.
procedure TWinForm1.AxGrid1_Change(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ChangeEvent);
begin
	with AxGrid1 do
	begin
		FreezeEvents(True);
		with Items do
		begin
			CellValue[TObject(e.item),TObject(1)] := AxGrid1.FormatABC('int(255*sin(value/2))',TObject(e.newValue),Nil,Nil);
			CellValue[TObject(e.item),TObject(2)] := AxGrid1.FormatABC('int(255*cos(value/2))',TObject(e.newValue),Nil,Nil);
		end;
		FreezeEvents(False);
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	SelBackMode := EXGRIDLib.BackModeEnum.exTransparent;
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	with (Columns.Add('Value') as EXGRIDLib.Column) do
	begin
		Editor.EditType := EXGRIDLib.EditTypeEnum.SpinType;
		Width := 64;
		AllowSizing := False;
	end;
	(Columns.Add('Assign A') as EXGRIDLib.Column).Def[EXGRIDLib.DefColumnEnum.exCellBackColor] := TObject(16448250);
	(Columns.Add('Assign B') as EXGRIDLib.Column).Def[EXGRIDLib.DefColumnEnum.exCellBackColor] := TObject(16448250);
	var_Column := (Columns.Add('Computed') as EXGRIDLib.Column);
	with var_Column do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellBackColor] := TObject(16448250);
		ComputedField := '%1 + %2';
		FormatColumn := 'value format ``';
		Alignment := EXGRIDLib.AlignmentEnum.RightAlignment;
		HeaderAlignment := Alignment;
	end;
	ConditionalFormats.Add('%3 >= 0',Nil).Bold := True;
	with Items do
	begin
		AddItem(TObject(1989));
		AddItem(TObject(2001));
		AddItem(TObject(2017));
		AddItem(TObject(2018));
		AddItem(TObject(2019));
	end;
	EndUpdate();
end
1117:
How can I get computed a value on a different column

with AxGrid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	with (Columns.Add('Year') as EXGRIDLib.Column) do
	begin
		Editor.EditType := EXGRIDLib.EditTypeEnum.SpinType;
		Width := 64;
		AllowSizing := False;
	end;
	(Columns.Add('Easter') as EXGRIDLib.Column).FormatColumn := 'date(dateS(''3/1/'' + %0)  + ((1:=(((255 - 11 * (%0 mod 19)) - 21) mod 30) + 21) + (=:1 > 48 ? -1 : 0) + 6 - ((%0 + int(%0 / 4)) +' + 
	' =:1 + (=:1 > 48 ? -1 : 0) + 1) mod 7))';
	with Items do
	begin
		AddItem(TObject(1989));
		AddItem(TObject(2001));
		AddItem(TObject(2017));
		AddItem(TObject(2018));
		AddItem(TObject(2019));
	end;
	EndUpdate();
end
1116:
How can I prevent applying ConditionalFormats on a specified cell, for instance I am displaying a Total field, and I will like to have formatted in a different way (method 2)

// Change event - Occurs when the user changes the cell's content.
procedure TWinForm1.AxGrid1_Change(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ChangeEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	with ConditionalFormats.Add('(%0 >= 0)',Nil) do
	begin
		Expression := '(0=type(%CD0)) and (%0 >= 0)';
		Bold := True;
		ForeColor := $ff;
		OutputDebugString( 'ConditionalFormat.Valid' );
		OutputDebugString( Valid );
	end;
	with (Columns.Add('Numbers') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			Numeric := EXGRIDLib.NumericEnum.exInteger;
			EditType := EXGRIDLib.EditTypeEnum.SpinType;
		end;
		SortType := EXGRIDLib.SortTypeEnum.SortNumeric;
	end;
	with Items do
	begin
		AddItem(TObject(100));
		AddItem(TObject(-25));
		AddItem(TObject(31));
		AddItem(TObject(-48));
	end;
	with Items do
	begin
		h := AddItem('sum(all,dir,dbl(%0))');
		SelectableItem[h] := False;
		SortableItem[h] := False;
		ItemBackColor[h] := $f0f0f0;
		CellData[TObject(h),TObject(0)] := 'total';
		CellValueFormat[TObject(h),TObject(0)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
		FormatCell[TObject(h),TObject(0)] := '''Total: <b><fgcolor=0000FF>''+(value format ``)';
	end;
	EndUpdate();
end
1115:
How can I prevent applying ConditionalFormats on a specified cell, for instance I am displaying a Total field, and I will like to have formatted in a different way (method 1)

// Change event - Occurs when the user changes the cell's content.
procedure TWinForm1.AxGrid1_Change(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ChangeEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	with ConditionalFormats.Add('%0 >= 0',Nil) do
	begin
		Bold := True;
		ForeColor := $ff;
		ApplyTo := EXGRIDLib.FormatApplyToEnum.exFormatToColumns;
	end;
	with (Columns.Add('Numbers') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			Numeric := EXGRIDLib.NumericEnum.exInteger;
			EditType := EXGRIDLib.EditTypeEnum.SpinType;
		end;
		SortType := EXGRIDLib.SortTypeEnum.SortNumeric;
	end;
	(Columns.Add('Total') as EXGRIDLib.Column).Visible := False;
	with Items do
	begin
		LockedItemCount[EXGRIDLib.VAlignmentEnum.exBottom] := 1;
		h := LockedItem[EXGRIDLib.VAlignmentEnum.exBottom,0];
		ItemDivider[h] := 1;
		ItemDividerLine[h] := EXGRIDLib.DividerLineEnum.EmptyLine;
		ItemBackColor[h] := $f0f0f0;
		CellValue[TObject(h),TObject(1)] := 'sum(all,dir,dbl(%0))';
		CellValueFormat[TObject(h),TObject(1)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
		CellHAlignment[TObject(h),TObject(1)] := EXGRIDLib.AlignmentEnum.RightAlignment;
		FormatCell[TObject(h),TObject(1)] := '''Total: <b><fgcolor=0000FF>''+(value format ``)';
	end;
	with Items do
	begin
		AddItem(TObject(100));
		AddItem(TObject(-25));
		AddItem(TObject(31));
		AddItem(TObject(-48));
	end;
	EndUpdate();
end
1114:
ADODB Requery sample

// ButtonClick event - Occurs when user clicks on the cell's button.
procedure TWinForm1.AxGrid1_ButtonClick(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ButtonClickEvent);
begin
	with AxGrid1 do
	begin
		cmd := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Command')) as ADODB.Command);
		with cmd do
		begin
			ActiveConnection := ((AxGrid1.DataSource as ADODB.Recordset).ActiveConnection as ADODB.Connection);
			CommandText := 'INSERT INTO Orders (EmployeeID) VALUES(12345)';
			CommandType := 1;
			Execute(Nil,Nil,Nil);
		end;
		(DataSource as ADODB.Recordset).Requery(Nil);
	end
end;

// Error event - Fired when an internal error occurs.
procedure TWinForm1.AxGrid1_Error(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ErrorEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( e.description );
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Select * From Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access2007\sample.accdb',1,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	ConditionalFormats.Add('%1=12345',Nil).BackColor := $f0f0f0;
	with Items do
	begin
		LockedItemCount[EXGRIDLib.VAlignmentEnum.exTop] := 1;
		h := LockedItem[EXGRIDLib.VAlignmentEnum.exTop,0];
		ItemDivider[h] := 0;
		CellHasButton[TObject(h),TObject(0)] := True;
		CellValue[TObject(h),TObject(0)] := 'Requery (add a new record, using ADODB.Command)';
		CellHAlignment[TObject(h),TObject(0)] := EXGRIDLib.AlignmentEnum.CenterAlignment;
	end;
	EndUpdate();
end
1113:
I am using DetectAddNew property, but no new items is added when AddNew is performed

// ButtonClick event - Occurs when user clicks on the cell's button.
procedure TWinForm1.AxGrid1_ButtonClick(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ButtonClickEvent);
begin
	with AxGrid1 do
	begin
		with (DataSource as ADODB.Recordset) do
		begin
			AddNew('EmployeeID',TObject(123));
			Update(Nil,Nil);
		end;
	end
end;

// Error event - Fired when an internal error occurs.
procedure TWinForm1.AxGrid1_Error(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ErrorEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( e.description );
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access2007\sample.accdb',1,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	with Items do
	begin
		LockedItemCount[EXGRIDLib.VAlignmentEnum.exTop] := 1;
		h := LockedItem[EXGRIDLib.VAlignmentEnum.exTop,0];
		ItemDivider[h] := 0;
		CellHasButton[TObject(h),TObject(0)] := True;
		CellValue[TObject(h),TObject(0)] := 'AddNew';
		CellHAlignment[TObject(h),TObject(0)] := EXGRIDLib.AlignmentEnum.CenterAlignment;
	end;
	DetectAddNew := True;
	DetectDelete := True;
	EndUpdate();
end
1112:
I am skinning the control's header-bar, but the background of the header-bar is shown on each item in the filter-bar drop down panel. What can I do

with AxGrid1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxRDgMQBQKAAzQFAYcBqGqGAAGQZxYgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL' + 
	'UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQGhsCYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU8lORLUi+M4zSBPcZVTRtGShPDBK' + 
	'TjMKKYgkG4lVpRNa0PC1GTzQ6mazkKQLRADDIDVbAeL3LiMBy9LyLLItQALByua5mWhbcZyBCOPgBTrRb5zO58FjuTK7YLjMB7NrUNYtFaUMy2OpOCADIaecTNcaWLxP' + 
	'F2MY1HWYxVj2Jw3DuRJonKYBgggSRAlIYw6B0ThGFgPAkFUDAhBMfZRiGNAkFECZnm4YQdneJwqnsSQrGAAhWAIJBJBIQgFCQIBiEIAglgqYo0i4V4MEgRI9gSToYFSb' + 
	'4Fk6Y4+BmBZhFOJgTC8TBogQAArgqco4muCZOkOMJtgmYpIjYKg7GKE4uCUK4AAKKg2DwI4DiCZw5k6KJ2D6D4OHiag4DwIxiiQAArAqMosnEPBPAOIhOg+DozjIJ4PG' + 
	'SY4iEwPAkhKLhHUUSQsnKFCnkYU9MjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaI' + 
	'CokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEs' + 
	'HJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQgp' + 
	'DOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAAM' + 
	'R1EOZxWi+bx7HcWQ8msfRYnnDhQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARViHH4' + 
	'HQOYmxuCpF2MsecEQVBvGQCcIQvA6i2CAAIARAQ=');
		Add(2,'gBFLBCJwBAEHhEJAAEhABZEGACAADACAxRDgMQBQKAAzQFAYcBqGqGAAGQZxYgmFgAQhFcZQSKUOQTDKMIziYBYJhEMwwDhEIwjHCEEhsGIbJAGQBJCjWGodQLOEgzNC' + 
	'0IxNFCQILhEZJADKII8TTOU5UPRESwTE4cKBmKhQCo2NpKR7VUTxCKQahLLivoCjBT8EzHMqtIzrCA6MpaP4pQjKcqwHJ8YyHEi0ZrjazKaj6T5AXDUcaWbbNVx3PK3a' + 
	'ioOpLZrqOZZYzYFoABTuJzPMSyIhxXD8cweaZvSpLExVYK9BY3PbKMgxC77QgTIpDaQMNS6PjtF43PAALLFUaNYzoOKzABMHATBIXAYJCwIIR5G7ID4BbQcCQAHL9DBa' + 
	'EEIAEEISgGhMGZQmocgymmIRQkIEQ2BcGgbEIRQci8XaMBqTRVgSAZHG+S5pnOep+D6f4vjec5zn0fpfmgBgAH6TRoBYBoAh+eAmAiAgPFgNArgOQpIESdoEmCOAOAqB' + 
	'YfFGAgaEaBgYHYFYFmIB5UiGCJUgKCgmgeYoHk4BgCmKRQiCwApgHgYgyH8B54lQU4NkMeJlBoDgjkiXBTg0R54iYIR+koeQVBoKpkgkChKhEJBkF4SFEjkDgJhFQoeE' + 
	'mDJlBeehUhWJQJGIXoICWOQ6FeFIlhkfhlDsSJpiQVoamaSY2G6G5nAmRhpCOH5pkwVYdmeCZmHqHpnkmdhzhmaAIFiax8AABAEICA==');
	end;
	(GetOcx() as EXGRIDLib.Grid).BackColorHeader := $1000000;
	ForeColorHeader := Color.FromArgb(128,128,128);
	set_Background(EXGRIDLib.BackgroundPartEnum.exHeaderFilterBarButton,$2000000);
	set_Background(EXGRIDLib.BackgroundPartEnum.exBackColorFilter,$ffffff);
	set_Background(EXGRIDLib.BackgroundPartEnum.exForeColorFilter,$10000);
	set_Background(EXGRIDLib.BackgroundPartEnum.exSelBackColorFilter,$1ff8000);
	set_Background(EXGRIDLib.BackgroundPartEnum.exSelForeColorFilter,$f0f0f0);
	set_Background(EXGRIDLib.BackgroundPartEnum.exCursorHoverColumn,$ffffffff);
	HeaderHeight := 24;
	BackColorLevelHeader := BackColor;
	with (Columns.Add('Filter') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
		Def[EXGRIDLib.DefColumnEnum.exHeaderPaddingLeft] := TObject(2);
		Def[EXGRIDLib.DefColumnEnum.exHeaderPaddingRight] := TObject(2);
	end;
	with Items do
	begin
		AddItem('A');
		AddItem('B');
		AddItem('C');
		AddItem('D');
	end;
	EndUpdate();
end
1111:
How can I change the font for entire column (method 3)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		with Items do
		begin
			CellFont[TObject(e.item),TObject(1)] := (AxGrid1.Columns.Item[TObject(1)].Data as stdole.StdFont);
			CellBold[TObject(e.item),TObject(1)] := True;
			CellForeColor[TObject(e.item),TObject(1)] := $ff;
		end;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	HeaderHeight := 24;
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	Columns.Add('C1');
	with (Columns.Add('C2') as EXGRIDLib.Column) do
	begin
		HTMLCaption := '<b><font Tahoma;14>C2';
		f := (ComObj.CreateComObject(ComObj.ProgIDToClassID('StdFont')) as stdole.StdFont);
		with f do
		begin
			Name := 'Tahoma';
			Size := 11;
		end;
		Data := (f as stdole.StdFont);
	end;
	with Items do
	begin
		CellValue[TObject(AddItem(TObject(10))),TObject(1)] := TObject(11);
		CellValue[TObject(AddItem(TObject(12))),TObject(1)] := TObject(13);
	end;
	EndUpdate();
end
1110:
How can I change the font for entire column (method 2)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		with Items do
		begin
			f := (ComObj.CreateComObject(ComObj.ProgIDToClassID('StdFont')) as stdole.StdFont);
			with f do
			begin
				Name := 'Tahoma';
				Size := 11;
			end;
			CellFont[TObject(e.item),TObject(1)] := (f as stdole.StdFont);
			CellBold[TObject(e.item),TObject(1)] := True;
			CellForeColor[TObject(e.item),TObject(1)] := $ff;
		end;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	HeaderHeight := 24;
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	Columns.Add('C1');
	(Columns.Add('C2') as EXGRIDLib.Column).HTMLCaption := '<b><font Tahoma;14>C2';
	with Items do
	begin
		CellValue[TObject(AddItem(TObject(10))),TObject(1)] := TObject(11);
		CellValue[TObject(AddItem(TObject(12))),TObject(1)] := TObject(13);
	end;
	EndUpdate();
end
1109:
How can I change the font for entire column (method 1)

with AxGrid1 do
begin
	BeginUpdate();
	with ConditionalFormats.Add('1',Nil) do
	begin
		Bold := True;
		ForeColor := $ff;
		f := (ComObj.CreateComObject(ComObj.ProgIDToClassID('StdFont')) as stdole.StdFont);
		with f do
		begin
			Name := 'Tahoma';
			Size := 11;
		end;
		Font := (f as stdole.StdFont);
		ApplyTo := EXGRIDLib.FormatApplyToEnum($1);
	end;
	HeaderHeight := 24;
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	Columns.Add('C1');
	(Columns.Add('C2') as EXGRIDLib.Column).HTMLCaption := '<b><font Tahoma;14>C2';
	with Items do
	begin
		CellValue[TObject(AddItem(TObject(10))),TObject(1)] := TObject(11);
		CellValue[TObject(AddItem(TObject(12))),TObject(1)] := TObject(13);
	end;
	EndUpdate();
end
1108:
I am using ExComboBox as an user editor, how can I display a different column

// UserEditorClose event - Fired the user editor is about to be opened.
procedure TWinForm1.AxGrid1_UserEditorClose(sender: System.Object; e: AxEXGRIDLib._IGridEvents_UserEditorCloseEvent);
begin
	// Items.CellValue(Item,ColIndex) = Object.Select("OrderID")
end;

// UserEditorOleEvent event - Occurs when an user editor fires an event.
procedure TWinForm1.AxGrid1_UserEditorOleEvent(sender: System.Object; e: AxEXGRIDLib._IGridEvents_UserEditorOleEventEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( e.ev );
	end
end;

// UserEditorOpen event - Occurs when an user editor is about to be opened.
procedure TWinForm1.AxGrid1_UserEditorOpen(sender: System.Object; e: AxEXGRIDLib._IGridEvents_UserEditorOpenEvent);
begin
	// Object.Select("OrderID") = Me.Items.CellValue(Item,ColIndex)
end;

with AxGrid1 do
begin
	BeginUpdate();
	SortOnClick := EXGRIDLib.SortOnClickEnum.exNoSort;
	with (Columns.Add('Exontrol.ComboBox') as EXGRIDLib.Column).Editor do
	begin
		EditType := EXGRIDLib.EditTypeEnum.UserEditorType;
		UserEditor('Exontrol.ComboBox','');
		with (UserEditorObject as EXCOMBOBOXLib.ComboBox) do
		begin
			BeginUpdate();
			Style := 2;
			ColumnAutoResize := False;
			rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
			with rs do
			begin
				Open('Orders','Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\SAMPLE.MDB',3,3,Nil);
			end;
			DataSource := (rs as ADODB.Recordset);
			Alignment := 0;
			IntegralHeight := True;
			MinHeightList := 128;
			MinWidthList := 648;
			HeaderHeight := 36;
			AllowSizeGrip := True;
			SingleEdit := True;
			LabelColumnIndex := 7;
			SearchColumnIndex := 0;
			with Columns.Item[TObject(0)] do
			begin
				HeaderBold := True;
				HTMLCaption := 'OrderID<br><fgcolor=808080>(search)';
			end;
			with Columns.Item[TObject(7)] do
			begin
				HeaderBold := True;
				HTMLCaption := 'ShipName<br><fgcolor=808080>(display)';
				Width := 128;
			end;
			UseTabKey := False;
			EndUpdate();
		end;
	end;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	TreeColumnIndex := -1;
	DefaultItemHeight := 21;
	with Items do
	begin
		h := AddItem('shows always the drop-down editor');
		CellHAlignment[TObject(h),TObject(0)] := EXGRIDLib.AlignmentEnum.CenterAlignment;
		ItemDivider[h] := 0;
		ItemDividerLineAlignment[h] := EXGRIDLib.DividerAlignmentEnum.DividerCenter;
		SelectableItem[h] := False;
		EnableItem[h] := False;
		CellEditorVisible[TObject(AddItem(TObject(10248))),TObject(0)] := EXGRIDLib.EditorVisibleEnum.exEditorVisible;
		CellEditorVisible[TObject(AddItem(TObject(10249))),TObject(0)] := EXGRIDLib.EditorVisibleEnum.exEditorVisible;
		CellEditorVisible[TObject(AddItem(TObject(10250))),TObject(0)] := EXGRIDLib.EditorVisibleEnum.exEditorVisible;
		h := AddItem('shows the drop-down editor when user clicks it');
		CellHAlignment[TObject(h),TObject(0)] := EXGRIDLib.AlignmentEnum.CenterAlignment;
		ItemDivider[h] := 0;
		ItemDividerLineAlignment[h] := EXGRIDLib.DividerAlignmentEnum.DividerCenter;
		SelectableItem[h] := False;
		EnableItem[h] := False;
		AddItem(TObject(10248));
		AddItem(TObject(10249));
		AddItem(TObject(10250));
	end;
	EndUpdate();
end
1107:
The ItemHeight property is not working (method 2)

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	ScrollBySingleLine := True;
	(Columns.Add('Column') as EXGRIDLib.Column).Width := 128;
	with Items do
	begin
		CellSingleLine[TObject(AddItem('This is a bit of text that should break the line')),TObject(0)] := EXGRIDLib.CellSingleLineEnum.exCaptionWordWrap;
		h := AddItem('');
		ItemDivider[h] := 0;
		SelectableItem[h] := False;
		ItemDividerLineAlignment[h] := EXGRIDLib.DividerAlignmentEnum.DividerCenter;
		ItemHeight[h] := 3;
		CellSingleLine[TObject(AddItem('This is a bit of text that should break the line')),TObject(0)] := EXGRIDLib.CellSingleLineEnum.exCaptionWordWrap;
	end;
	EndUpdate();
end
1106:
The ItemHeight property is not working (method 1)

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	ScrollBySingleLine := True;
	with (Columns.Add('Column') as EXGRIDLib.Column) do
	begin
		Width := 128;
		Def[EXGRIDLib.DefColumnEnum.exCellSingleLine] := TObject(0);
	end;
	with Items do
	begin
		AddItem('This is a bit of text that should break the line');
		h := AddItem('');
		ItemDivider[h] := 0;
		SelectableItem[h] := False;
		ItemDividerLineAlignment[h] := EXGRIDLib.DividerAlignmentEnum.DividerCenter;
		ItemMinHeight[h] := 3;
		ItemMaxHeight[h] := 3;
		AddItem('This is a bit of text that should break the line');
	end;
	EndUpdate();
end
1105:
How do I add a total field locked at the bottom of the control

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddGroupItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddGroupItemEvent);
begin
	with AxGrid1 do
	begin
		with Items do
		begin
			ItemDividerLine[e.item] := EXGRIDLib.DividerLineEnum.EmptyLine;
			FormatCell[TObject(e.item),TObject(GroupItem[e.item])] := 'value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column`';
			CellValue[TObject(e.item),'Min'] := 'min(current,all,dbl(%6))';
			CellValueFormat[TObject(e.item),'Min'] := EXGRIDLib.ValueFormatEnum.exTotalField;
			CellValue[TObject(e.item),'Max'] := 'max(current,all,dbl(%6))';
			CellValueFormat[TObject(e.item),'Max'] := EXGRIDLib.ValueFormatEnum.exTotalField;
			CellValue[TObject(e.item),'Sum'] := 'sum(current,all,dbl(%6))';
			CellValueFormat[TObject(e.item),'Sum'] := EXGRIDLib.ValueFormatEnum.exTotalField;
			ItemBackColor[e.item] := $f0f0f0;
		end;
	end
end;

// Change event - Occurs when the user changes the cell's content.
procedure TWinForm1.AxGrid1_Change(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ChangeEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	HasLines := EXGRIDLib.HierarchyLineEnum.exNoLine;
	set_Description(EXGRIDLib.DescriptionTypeEnum.exColumnsFloatBar,'Show/Hide');
	ColumnsFloatBarSortOrder := EXGRIDLib.SortOrderEnum.SortAscending;
	ColumnsFloatBarVisible := EXGRIDLib.ColumnsFloatBarVisibleEnum.exColumnsFloatBarVisibleIncludeCheckColumns;
	ColumnAutoResize := False;
	BackColorSortBar := Color.FromArgb(240,240,240);
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\SAMPLE.MDB',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SingleSort := False;
	SortBarVisible := True;
	AllowGroupBy := True;
	SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
	with Columns do
	begin
		with (Add('Min') as EXGRIDLib.Column) do
		begin
			Visible := False;
			AllowDragging := False;
		end;
		var_Column := (Add('Max') as EXGRIDLib.Column);
		with var_Column do
		begin
			Visible := False;
			Visible := False;
			AllowDragging := False;
		end;
		var_Column1 := (Add('Sum') as EXGRIDLib.Column);
		with var_Column1 do
		begin
			Visible := False;
			Visible := False;
			AllowDragging := False;
		end;
	end;
	with Columns.Item['Freight'] do
	begin
		FormatColumn := 'currency(value)';
		Def[EXGRIDLib.DefColumnEnum.exCellBackColor] := TObject(12895487);
		Def[EXGRIDLib.DefColumnEnum.exHeaderBackColor] := Def[EXGRIDLib.DefColumnEnum.exCellBackColor];
		HeaderBold := True;
		AllowGroupBy := False;
		Alignment := EXGRIDLib.AlignmentEnum.RightAlignment;
	end;
	ScrollBySingleLine := False;
	with Items do
	begin
		LockedItemCount[EXGRIDLib.VAlignmentEnum.exBottom] := 2;
		hL := LockedItem[EXGRIDLib.VAlignmentEnum.exBottom,0];
		ItemDivider[hL] := 0;
		ItemHeight[hL] := 3;
		ItemDividerLineAlignment[hL] := EXGRIDLib.DividerAlignmentEnum.DividerTop;
		ItemDividerLine[hL] := EXGRIDLib.DividerLineEnum.DoubleLine;
		hL := LockedItem[EXGRIDLib.VAlignmentEnum.exBottom,1];
		CellValue[TObject(hL),TObject(6)] := 'sum(all,rec,dbl(%6))';
		CellValueFormat[TObject(hL),TObject(6)] := EXGRIDLib.ValueFormatEnum.exTotalField;
		ItemHeight[hL] := 24;
		ItemBold[hL] := True;
	end;
	Columns.Item['EmployeeID'].SortOrder := True;
	EndUpdate();
end
1104:
How can I add a total field, when I use grouping

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddGroupItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddGroupItemEvent);
begin
	with AxGrid1 do
	begin
		with Items do
		begin
			ItemDividerLine[e.item] := EXGRIDLib.DividerLineEnum.EmptyLine;
			FormatCell[TObject(e.item),TObject(GroupItem[e.item])] := 'value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column`';
			CellValue[TObject(e.item),'Min'] := 'min(current,all,dbl(%6))';
			CellValueFormat[TObject(e.item),'Min'] := EXGRIDLib.ValueFormatEnum.exTotalField;
			CellValue[TObject(e.item),'Max'] := 'max(current,all,dbl(%6))';
			CellValueFormat[TObject(e.item),'Max'] := EXGRIDLib.ValueFormatEnum.exTotalField;
			CellValue[TObject(e.item),'Sum'] := 'sum(current,all,dbl(%6))';
			CellValueFormat[TObject(e.item),'Sum'] := EXGRIDLib.ValueFormatEnum.exTotalField;
			ItemBackColor[e.item] := $f0f0f0;
		end;
	end
end;

// Change event - Occurs when the user changes the cell's content.
procedure TWinForm1.AxGrid1_Change(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ChangeEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	HasLines := EXGRIDLib.HierarchyLineEnum.exNoLine;
	ColumnAutoResize := False;
	BackColorSortBar := Color.FromArgb(240,240,240);
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\SAMPLE.MDB',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SingleSort := False;
	SortBarVisible := True;
	AllowGroupBy := True;
	Columns.Item[TObject(1)].SortOrder := True;
	with Columns do
	begin
		(Add('Min') as EXGRIDLib.Column).Visible := False;
		(Add('Max') as EXGRIDLib.Column).Visible := False;
		(Add('Sum') as EXGRIDLib.Column).Visible := False;
	end;
	with Columns.Item['Freight'] do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellBackColor] := TObject(12895487);
		Def[EXGRIDLib.DefColumnEnum.exHeaderBackColor] := Def[EXGRIDLib.DefColumnEnum.exCellBackColor];
		HeaderBold := True;
		AllowGroupBy := False;
	end;
	ScrollBySingleLine := False;
	with Items do
	begin
		LockedItemCount[EXGRIDLib.VAlignmentEnum.exBottom] := 1;
		hL := LockedItem[EXGRIDLib.VAlignmentEnum.exBottom,0];
		ItemDivider[hL] := 0;
		ItemHeight[hL] := 24;
		ItemDividerLineAlignment[hL] := EXGRIDLib.DividerAlignmentEnum.DividerTop;
		ItemDividerLine[hL] := EXGRIDLib.DividerLineEnum.DoubleLine;
		CellValue[TObject(hL),TObject(0)] := 'sum(all,rec,dbl(%6))';
		CellValueFormat[TObject(hL),TObject(0)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
		CellHAlignment[TObject(hL),TObject(0)] := EXGRIDLib.AlignmentEnum.RightAlignment;
		FormatCell[TObject(hL),TObject(0)] := '''Freight: <bgcolor=FFC4C4> ''+(value format ``) + ` `';
	end;
	EndUpdate();
end
1103:
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeCheckColumns

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	with Columns do
	begin
		Add('City');
		(Add('Start') as EXGRIDLib.Column).Visible := False;
		(Add('End') as EXGRIDLib.Column).Visible := False;
	end;
	set_Description(EXGRIDLib.DescriptionTypeEnum.exColumnsFloatBar,'Show/Hide');
	ColumnsFloatBarSortOrder := EXGRIDLib.SortOrderEnum.SortAscending;
	ColumnsFloatBarVisible := EXGRIDLib.ColumnsFloatBarVisibleEnum.exColumnsFloatBarVisibleIncludeCheckColumns;
	EndUpdate();
end
1102:
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeHiddenColumn

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	with Columns do
	begin
		Add('City');
		(Add('Start') as EXGRIDLib.Column).Visible := False;
		(Add('End') as EXGRIDLib.Column).Visible := False;
	end;
	set_Description(EXGRIDLib.DescriptionTypeEnum.exColumnsFloatBar,'Show');
	ColumnsFloatBarVisible := EXGRIDLib.ColumnsFloatBarVisibleEnum.exColumnsFloatBarVisibleIncludeHiddenColumns;
	ColumnsFloatBarSortOrder := EXGRIDLib.SortOrderEnum.SortAscending;
	EndUpdate();
end
1101:
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeGroupByColumns

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	with Columns do
	begin
		Add('City');
		Add('Start');
		Add('End');
	end;
	AllowGroupBy := True;
	SortBarVisible := True;
	SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
	BackColorSortBar := Color.FromArgb(250,250,250);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exColumnsFloatBar,'Group-By');
	ColumnsFloatBarVisible := EXGRIDLib.ColumnsFloatBarVisibleEnum.exColumnsFloatBarVisibleIncludeGroupByColumns;
	ColumnsFloatBarSortOrder := EXGRIDLib.SortOrderEnum.SortAscending;
	Columns.Item['City'].SortOrder := EXGRIDLib.SortOrderEnum.SortAscending;
	EndUpdate();
end
1100:
How can I advance to the next line, once the user presses the ENTER key

// KeyDown event - Occurs when the user presses a key while an object has the focus.
procedure TWinForm1.AxGrid1_KeyDownEvent(sender: System.Object; e: AxEXGRIDLib._IGridEvents_KeyDownEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'KeyCode Before:' );
		OutputDebugString( e.keyCode );
		e.keyCode := FormatABC('value = 13 ? 40 : value',TObject(e.keyCode),Nil,Nil);
		OutputDebugString( 'KeyCode After:' );
		OutputDebugString( e.keyCode );
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	with Columns do
	begin
		with (Add('A') as EXGRIDLib.Column).Editor do
		begin
			Appearance := EXGRIDLib.InplaceAppearanceEnum.EtchedApp;
			EditType := EXGRIDLib.EditTypeEnum.EditType;
		end;
		with (Add('B') as EXGRIDLib.Column).Editor do
		begin
			Appearance := EXGRIDLib.InplaceAppearanceEnum.EtchedApp;
			EditType := EXGRIDLib.EditTypeEnum.EditType;
		end;
	end;
	with Items do
	begin
		h0 := AddItem('Item A.1');
		CellValue[TObject(h0),TObject(1)] := 'Item B.1';
		h0 := AddItem('Item A.2');
		CellValue[TObject(h0),TObject(1)] := 'Item B.2';
	end;
	EndUpdate();
end
1099:
I am using AddNew to add new records, but I can not see them into the control

// ButtonClick event - Occurs when user clicks on the cell's button.
procedure TWinForm1.AxGrid1_ButtonClick(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ButtonClickEvent);
begin
	with AxGrid1 do
	begin
		with (DataSource as ADODB.Recordset) do
		begin
			AddNew(Nil,Nil);
			Fields.Item['A'].Value := 'new A';
			Fields.Item['B'].Value := 'new B';
			Update(Nil,Nil);
		end;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Fields.Append('A',8,Nil,Nil,Nil);
		Fields.Append('B',8,Nil,Nil,Nil);
		Open(Nil,Nil,Nil,Nil,Nil);
		AddNew(Nil,Nil);
		Fields.Item['A'].Value := 'Item A.1';
		Fields.Item['B'].Value := 'Item B.1';
		Update(Nil,Nil);
		AddNew(Nil,Nil);
		Fields.Item['A'].Value := 'Item A.2';
		Fields.Item['B'].Value := 'Item B.2';
		Update(Nil,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	with Items do
	begin
		LockedItemCount[EXGRIDLib.VAlignmentEnum.exTop] := 1;
		h := LockedItem[EXGRIDLib.VAlignmentEnum.exTop,0];
		ItemDivider[h] := 0;
		CellHasButton[TObject(h),TObject(0)] := True;
		CellValue[TObject(h),TObject(0)] := 'AddNew';
		CellHAlignment[TObject(h),TObject(0)] := EXGRIDLib.AlignmentEnum.CenterAlignment;
	end;
	DetectAddNew := True;
	DetectDelete := True;
	EndUpdate();
end
1098:
How can I create a new ADO recordset

with AxGrid1 do
begin
	BeginUpdate();
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Fields.Append('A',8,Nil,Nil,Nil);
		Fields.Append('B',8,Nil,Nil,Nil);
		Open(Nil,Nil,Nil,Nil,Nil);
		AddNew(Nil,Nil);
		Fields.Item['A'].Value := 'Item A.1';
		Fields.Item['B'].Value := 'Item B.1';
		Update(Nil,Nil);
		AddNew(Nil,Nil);
		Fields.Item['A'].Value := 'Item A.2';
		Fields.Item['B'].Value := 'Item B.2';
		Update(Nil,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	EndUpdate();
end
1097:
Do do I get the DAO version I have installed

with AxGrid1 do
begin
	OutputDebugString( (ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.35')) as DAO.PrivDBEngine).Version );
	OutputDebugString( (ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.36')) as DAO.PrivDBEngine).Version );
	OutputDebugString( (ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.120')) as DAO.PrivDBEngine).Version );
end
1096:
How do I get a list of interfaces the object implemenets

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	with (ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.120')) as DAO.PrivDBEngine) do
	begin
		rs := (OpenDatabase('C:\Program Files\Exontrol\ExGrid\Sample\Access2007\sample.accdb',Nil,Nil,Nil).OpenRecordset('Orders',Nil,Nil,Nil) as DAO.Recordset2);
	end;
	OutputDebugString( (ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.PropertiesList')) as EXPROPERTIESLISTLib.PropertiesList).Interfaces[rs] );
	DataSource := (rs as DAO.Recordset2);
	EndUpdate();
end
1095:
Do do I get the ADO version I have installed

with AxGrid1 do
begin
	OutputDebugString( 'ADO Version:' );
	OutputDebugString( (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Connection')) as ADODB.Connection).Version );
end
1094:
DAO, ACCDB, 120

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	with (ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.120')) as DAO.PrivDBEngine) do
	begin
		rs := (OpenDatabase('C:\Program Files\Exontrol\ExGrid\Sample\Access2007\sample.accdb',Nil,Nil,Nil).OpenRecordset('Orders',Nil,Nil,Nil) as DAO.Recordset2);
	end;
	DataSource := (rs as DAO.Recordset2);
	EndUpdate();
end
1093:
DAO, MDB, 120

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	with (ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.120')) as DAO.PrivDBEngine) do
	begin
		rs := (OpenDatabase('C:\Program Files\Exontrol\ExGrid\Sample\SAMPLE.MDB',Nil,Nil,Nil).OpenRecordset('Orders',Nil,Nil,Nil) as DAO.Recordset2);
	end;
	DataSource := (rs as DAO.Recordset2);
	EndUpdate();
end
1092:
DAO, MDB

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	with (ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.36')) as DAO.PrivDBEngine) do
	begin
		rs := OpenDatabase('C:\Program Files\Exontrol\ExGrid\Sample\SAMPLE.MDB',Nil,Nil,Nil).OpenRecordset('Orders',Nil,Nil,Nil);
	end;
	DataSource := (rs as DAO.Recordset);
	EndUpdate();
end
1091:
ADODB, ACCDB, x64

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access2007\sample.accdb',1,1,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	EndUpdate();
end
1090:
ADOR, ACCDB

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access2007\sample.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	EndUpdate();
end
1089:
ADODB, MDB

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\SAMPLE.MDB',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	EndUpdate();
end
1088:
ADOR, MDB

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\SAMPLE.MDB',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	EndUpdate();
end
1087:
How can I display the row on multiple lines (excrd)

with AxGrid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	SelBackMode := EXGRIDLib.BackModeEnum.exTransparent;
	with (Columns.Add('Default') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellFormatLevel] := '[b=0]60;1[b=15]:60,((20;"<fgcolor=808080>Dateigröße"[b=1][a=2]:120,2[b=15])/(20;"<fgcolor=808080>Erstellt am"[a=2]:120,3[b=15])/' + 
	'(20;"<fgcolor=808080>Zuletzt bearbeitet"[b=4][a=2]:120,4[b=15]))';
		AllowSort := False;
	end;
	(Columns.Add(1) as EXGRIDLib.Column).Visible := False;
	with (Columns.Add(2) as EXGRIDLib.Column) do
	begin
		Visible := False;
		Editor.EditType := EXGRIDLib.EditTypeEnum.EditType;
		FormatColumn := '1 index `A-Z`';
	end;
	with (Columns.Add(3) as EXGRIDLib.Column) do
	begin
		Visible := False;
		Editor.EditType := EXGRIDLib.EditTypeEnum.EditType;
		FormatColumn := '1 index ``';
	end;
	with (Columns.Add(4) as EXGRIDLib.Column) do
	begin
		Visible := False;
		Editor.EditType := EXGRIDLib.EditTypeEnum.EditType;
		FormatColumn := 'date(``)';
	end;
	DefaultItemHeight := 48;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	GridLineStyle := EXGRIDLib.GridLinesStyleEnum.exGridLinesSolid;
	set_ViewModeOption(EXGRIDLib.ViewModeEnum.exTableView,EXGRIDLib.ViewModeOptionEnum.exBorderWidth,TObject(1));
	set_ViewModeOption(EXGRIDLib.ViewModeEnum.exTableView,EXGRIDLib.ViewModeOptionEnum.exBorderHeight,TObject(1));
	with Items do
	begin
		CellValue[TObject(AddItem('')),TObject(1)] := 'One';
		CellValue[TObject(AddItem('')),TObject(1)] := 'Two';
		CellValue[TObject(AddItem('')),TObject(1)] := 'Three';
	end;
	EndUpdate();
end
1086:
Type of wraps the cell's caption support (Sample 2)

with AxGrid1 do
begin
	BeginUpdate();
	HeaderSingleLine := False;
	HeaderHeight := 36;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	ColumnAutoResize := False;
	ScrollBySingleLine := True;
	with Columns do
	begin
		with (Add('Single-Line (exCaptionSingleLine)') as EXGRIDLib.Column) do
		begin
			Width := 96;
			Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
			Def[EXGRIDLib.DefColumnEnum.exCellSingleLine] := TObject(-1);
		end;
		with (Add('Word-Wrap (exCaptionWordWrap)') as EXGRIDLib.Column) do
		begin
			Width := 96;
			Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
			Def[EXGRIDLib.DefColumnEnum.exCellSingleLine] := TObject(0);
			FormatColumn := '%0';
		end;
		with (Add('Break-Wrap (exCaptionBreakWrap)') as EXGRIDLib.Column) do
		begin
			Width := 96;
			Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
			Def[EXGRIDLib.DefColumnEnum.exCellSingleLine] := TObject(1);
			FormatColumn := '%0';
		end;
	end;
	with Items do
	begin
		AddItem('This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.');
		AddItem('This is the <b>first</b> line.\r\nThis is the <b>second</b> line.\r\nThis is the <b>third</b> line.');
	end;
	EndUpdate();
end
1085:
Type of wraps the cell's caption support (Sample 1)

with AxGrid1 do
begin
	BeginUpdate();
	HeaderSingleLine := False;
	HeaderHeight := 36;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	ColumnAutoResize := False;
	ScrollBySingleLine := True;
	(Columns.Add('Default') as EXGRIDLib.Column).Width := 128;
	with Items do
	begin
		h := AddItem('This is the first line.\r\nThis is the second line.\r\nThis is the third line.');
		h := AddItem('This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.');
		CellValueFormat[TObject(h),TObject(0)] := EXGRIDLib.ValueFormatEnum.exHTML;
		h := AddItem('This is the first line.\r\nThis is the second line.\r\nThis is the third line.');
		CellSingleLine[TObject(h),TObject(0)] := EXGRIDLib.CellSingleLineEnum.exCaptionWordWrap;
		h := AddItem('This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.');
		CellValueFormat[TObject(h),TObject(0)] := EXGRIDLib.ValueFormatEnum.exHTML;
		CellSingleLine[TObject(h),TObject(0)] := EXGRIDLib.CellSingleLineEnum.exCaptionWordWrap;
		h := AddItem('This is the first line.\r\nThis is the second line.\r\nThis is the third line.');
		CellSingleLine[TObject(h),TObject(0)] := EXGRIDLib.CellSingleLineEnum.exCaptionBreakWrap;
		h := AddItem('This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.');
		CellValueFormat[TObject(h),TObject(0)] := EXGRIDLib.ValueFormatEnum.exHTML;
		CellSingleLine[TObject(h),TObject(0)] := EXGRIDLib.CellSingleLineEnum.exCaptionBreakWrap;
	end;
	EndUpdate();
end
1084:
Can I break the cell's caption using the line break <br> or \r\n (Sample 2)

with AxGrid1 do
begin
	BeginUpdate();
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	ColumnAutoResize := False;
	ScrollBySingleLine := True;
	(Columns.Add('Default') as EXGRIDLib.Column).Width := 128;
	with Items do
	begin
		CellSingleLine[TObject(AddItem('This is the first line.\r\nThis is the second line.\r\nThis is the third line.')),TObject(0)] := EXGRIDLib.CellSingleLineEnum.exCaptionBreakWrap;
		AddItem('This is the first line.\r\nThis is the second line.\r\nThis is the third line.');
	end;
	EndUpdate();
end
1083:
Can I break the cell's caption using the line break <br> or \r\n (Sample 1)

with AxGrid1 do
begin
	BeginUpdate();
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	ColumnAutoResize := False;
	ScrollBySingleLine := True;
	with (Columns.Add('Default') as EXGRIDLib.Column) do
	begin
		Width := 128;
		Def[EXGRIDLib.DefColumnEnum.exCellSingleLine] := TObject(1);
	end;
	with Items do
	begin
		AddItem('This is the first line.\r\nThis is the second line.\r\nThis is the third line.');
		AddItem('This is the first line.\r\nThis is the second line.\r\nThis is the third line.');
	end;
	EndUpdate();
end
1082:
How can I change the visual appearance/color of the Filter For ... field

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	BackColorHeader := Color.FromArgb(1,0,0);
	ForeColorHeader := Color.FromArgb(255,255,255);
	set_Background(EXGRIDLib.BackgroundPartEnum.exBackColorFilter,BackColorHeader);
	set_Background(EXGRIDLib.BackgroundPartEnum.exForeColorFilter,ForeColorHeader);
	set_Background(EXGRIDLib.BackgroundPartEnum.exHeaderFilterBarButton,$f0f0f0);
	set_Background(EXGRIDLib.BackgroundPartEnum.exCursorHoverColumn,$ffffffff);
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Bump;
	with (Columns.Add('Items') as EXGRIDLib.Column) do
	begin
		FilterOnType := True;
		DisplayFilterButton := True;
		FilterList := EXGRIDLib.FilterListEnum.exNoItems;
	end;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
	end;
	EndUpdate();
end
1081:
How can I display the cell's caption without spaces on both sides

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	with (Columns.Add('Default') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		FormatColumn := '((trim(value) replace `   ` with ` `) replace `  ` with ` `) replace ` ` with `<bgcolor=FF0000> </bgcolor>`';
	end;
	with Items do
	begin
		AddItem('');
		AddItem('Item A');
		AddItem('    Item B');
		AddItem('        Item   C    ');
	end;
	EndUpdate();
end
1080:
How can I highlight the spaces within the column (sample 2)

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	with (Columns.Add('Default') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		FormatColumn := '`''` + ( value replace ` ` with `_` ) + `''`';
	end;
	with Items do
	begin
		AddItem('');
		AddItem('Item A');
		AddItem('    Item B');
		AddItem('        Item   C    ');
	end;
	EndUpdate();
end
1079:
How can I highlight the spaces within the column (sample 1)

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	with (Columns.Add('Default') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		FormatColumn := 'len(value) = 0 ? `<bgcolor=FF0000> </bgcolor>` : ( value replace ` ` with `<bgcolor=FF0000> </bgcolor>` )';
	end;
	with Items do
	begin
		AddItem('');
		AddItem('Item A');
		AddItem('    Item B');
		AddItem('        Item   C    ');
	end;
	EndUpdate();
end
1078:
How can I change the visual aspect of the drop down filter-calendar

with AxGrid1 do
begin
	BeginUpdate();
	set_Background(EXGRIDLib.BackgroundPartEnum.exBackColorFilter,$10000);
	set_Background(EXGRIDLib.BackgroundPartEnum.exForeColorFilter,$ffffff);
	set_Background(EXGRIDLib.BackgroundPartEnum.exDateScrollRange,$ffffff);
	set_Background(EXGRIDLib.BackgroundPartEnum.exDateHeader,get_Background(EXGRIDLib.BackgroundPartEnum.exBackColorFilter));
	set_Background(EXGRIDLib.BackgroundPartEnum.exDateScrollThumb,$808080);
	with (Columns.Add('Date') as EXGRIDLib.Column) do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exDate;
		DisplayFilterButton := True;
		DisplayFilterDate := True;
		DisplayFilterPattern := False;
	end;
	EndUpdate();
end
1077:
How can I hide the filter bar description

with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Filter') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'B';
	end;
	with Items do
	begin
		AddItem('A');
		AddItem('B');
		AddItem('C');
	end;
	ApplyFilter();
	FilterBarHeight := 0;
	EndUpdate();
end
1076:
Export Data in HTML format

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	BackColorAlternate := Color.FromArgb(240,240,240);
	DrawGridLines := EXGRIDLib.GridLinesEnum.exAllLines;
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := '(( ( value replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `' + 
	'[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( match' + 
	'itemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcoun' + 
	't + ` item(s)`) )))';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCompact) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarShowCloseIfRequired) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarSingleLine) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	FilterBarPromptType := EXGRIDLib.FilterPromptEnum.exFilterPromptContainsAny;
	with ConditionalFormats do
	begin
		Add('%0 like `*parent*`','parent').BackColor := $c0c0c0;
		with Add('%0 like `*child*`','child') do
		begin
			ForeColor := $8080ff;
			ApplyTo := EXGRIDLib.FormatApplyToEnum.exFormatToColumns;
		end;
		with Add('%0 like `*B*`','b') do
		begin
			ForeColor := $ff0000;
			Bold := True;
			Italic := True;
			ApplyTo := EXGRIDLib.FormatApplyToEnum.exFormatToColumns;
		end;
	end;
	with Columns do
	begin
		with (Add('Value') as EXGRIDLib.Column) do
		begin
			Width := 128;
			HTMLCaption := '<b>VA</b><r>sko';
		end;
		with (Add('APos') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 apos ``';
			AllowSort := False;
			Def[EXGRIDLib.DefColumnEnum.exCellBackColor] := TObject(15790320);
			Def[EXGRIDLib.DefColumnEnum.exCellForeColor] := TObject(8421504);
			Def[EXGRIDLib.DefColumnEnum.exHeaderForeColor] := Def[EXGRIDLib.DefColumnEnum.exCellForeColor];
			Position := 0;
		end;
		with (Add('RPos') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 rpos ``';
			AllowSort := False;
			Position := 1;
		end;
		with (Add('Index') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 index ``';
			DisplayFilterButton := True;
			FilterList := EXGRIDLib.FilterListEnum.exShowCheckBox;
			Position := 2;
		end;
		with (Add('Data 1') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 index `A-Z`';
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		end;
		with (Add('Data 2') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 index `AB` replace `A` with `<off -4>A</off>`';
			Def[EXGRIDLib.DefColumnEnum.exCellSingleLine] := TObject(False);
			Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
			Def[EXGRIDLib.DefColumnEnum.exCellHasRadioButton] := TObject(True);
		end;
		with (Add('Data 3') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 index `CDC` replace `D` with `<b>D</b>`';
			Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		end;
	end;
	with Items do
	begin
		h := AddItem('ParentA');
		InsertItem(h,Nil,'Child A');
		InsertItem(h,Nil,'Child B');
		CellState[TObject(h),TObject(4)] := 1;
		CellBackColor[TObject(InsertItem(h,Nil,'Child C')),TObject(5)] := $ff00;
		ExpandItem[h] := True;
		AddItem('Item A');
		h := AddItem('ParentB');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		CellBackColor[TObject(InsertItem(h,Nil,'Child 3')),TObject(5)] := $ff00;
		CellState[TObject(h),TObject(5)] := 1;
		AddItem('Item B');
		AddItem('Item C');
		AddItem('Item D');
		ExpandItem[h] := True;
	end;
	EndUpdate();
	sFile := 'c:/temp/export.html';
	Export(TObject(sFile),'vis');
	with (ComObj.CreateComObject(ComObj.ProgIDToClassID('InternetExplorer.Application')) as SHDocVw.ShellBrowserWindow) do
	begin
		Navigate2(sFile,Nil,Nil,Nil,Nil);
	end;
end
1075:
Export Data in CSV format

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	BackColorAlternate := Color.FromArgb(240,240,240);
	DrawGridLines := EXGRIDLib.GridLinesEnum.exAllLines;
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := '(( ( value replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `' + 
	'[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( match' + 
	'itemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcoun' + 
	't + ` item(s)`) )))';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCompact) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarShowCloseIfRequired) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarSingleLine) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	FilterBarPromptType := EXGRIDLib.FilterPromptEnum.exFilterPromptContainsAny;
	with ConditionalFormats do
	begin
		Add('%0 like `*parent*`','parent').BackColor := $c0c0c0;
		with Add('%0 like `*child*`','child') do
		begin
			ForeColor := $8080ff;
			ApplyTo := EXGRIDLib.FormatApplyToEnum.exFormatToColumns;
		end;
		with Add('%0 like `*B*`','b') do
		begin
			ForeColor := $ff0000;
			Bold := True;
			Italic := True;
			ApplyTo := EXGRIDLib.FormatApplyToEnum.exFormatToColumns;
		end;
	end;
	with Columns do
	begin
		with (Add('Value') as EXGRIDLib.Column) do
		begin
			Width := 128;
			HTMLCaption := '<b>VA</b><r>sko';
		end;
		with (Add('APos') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 apos ``';
			AllowSort := False;
			Def[EXGRIDLib.DefColumnEnum.exCellBackColor] := TObject(15790320);
			Def[EXGRIDLib.DefColumnEnum.exCellForeColor] := TObject(8421504);
			Def[EXGRIDLib.DefColumnEnum.exHeaderForeColor] := Def[EXGRIDLib.DefColumnEnum.exCellForeColor];
			Position := 0;
		end;
		with (Add('RPos') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 rpos ``';
			AllowSort := False;
			Position := 1;
		end;
		with (Add('Index') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 index ``';
			DisplayFilterButton := True;
			FilterList := EXGRIDLib.FilterListEnum.exShowCheckBox;
			Position := 2;
		end;
		with (Add('Data 1') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 index `A-Z`';
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		end;
		with (Add('Data 2') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 index `AB` replace `A` with `<off -4>A</off>`';
			Def[EXGRIDLib.DefColumnEnum.exCellSingleLine] := TObject(False);
			Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
			Def[EXGRIDLib.DefColumnEnum.exCellHasRadioButton] := TObject(True);
		end;
		with (Add('Data 3') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 index `CDC` replace `D` with `<b>D</b>`';
			Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		end;
	end;
	with Items do
	begin
		h := AddItem('ParentA');
		InsertItem(h,Nil,'Child A');
		InsertItem(h,Nil,'Child B');
		CellState[TObject(h),TObject(4)] := 1;
		CellBackColor[TObject(InsertItem(h,Nil,'Child C')),TObject(5)] := $ff00;
		ExpandItem[h] := True;
		AddItem('Item A');
		h := AddItem('ParentB');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		CellBackColor[TObject(InsertItem(h,Nil,'Child 3')),TObject(5)] := $ff00;
		CellState[TObject(h),TObject(5)] := 1;
		AddItem('Item B');
		AddItem('Item C');
		AddItem('Item D');
		ExpandItem[h] := True;
	end;
	EndUpdate();
	OutputDebugString( Export('','vis') );
end
1074:
Is it possible to check multiple-items at once

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		bHasParent := FormatABC('value != 0',Items.ItemParent[e.item],Nil,Nil);
		with Items do
		begin
			CellHasCheckBox[TObject(e.item),TObject(0)] := False;
		end;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Tasks') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		FormatColumn := 'value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)';
	end;
	HeaderVisible := True;
	SingleSel := False;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Nil,'Task 1');
		hChild := InsertItem(h,Nil,'Task 2');
		hChild := InsertItem(h,Nil,'Task 3');
		ExpandItem[h] := True;
		LockedItemCount[EXGRIDLib.VAlignmentEnum.exTop] := 1;
		CellValue[TObject(LockedItem[EXGRIDLib.VAlignmentEnum.exTop,0]),TObject(0)] := '<c>Select multiple items and press the <b>SPACE</b> key';
	end;
	EndUpdate();
end
1073:
How can I get the icon from the cell when using the Items.CellImages property (icon index)

// MouseMove event - Occurs when the user moves the mouse.
procedure TWinForm1.AxGrid1_MouseMoveEvent(sender: System.Object; e: AxEXGRIDLib._IGridEvents_MouseMoveEvent);
begin
	with AxGrid1 do
	begin
		i := get_ItemFromPoint(-1,-1,c,hit);
		OutputDebugString( FormatABC('( 0x44 = ( value bitand 0x44 ) ) ? ( ( (value bitand 0xFFFF0000) bitshift 16 ) array B split `,` )  : `no image`',TObject(hit),Items.CellImages[TObject(i),TObject(c)],Nil) );
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	Columns.Add('Default');
	with Items do
	begin
		CellImages[TObject(AddItem('Item 1')),TObject(0)] := '3,2,1';
		CellImages[TObject(AddItem('Item 2')),TObject(0)] := '2,3';
		CellImages[TObject(AddItem('Item 3')),TObject(0)] := '2,';
	end;
	EndUpdate();
end
1072:
How can I get the icon from the cell when using the Items.CellImages property (icon position within the cell)

// MouseMove event - Occurs when the user moves the mouse.
procedure TWinForm1.AxGrid1_MouseMoveEvent(sender: System.Object; e: AxEXGRIDLib._IGridEvents_MouseMoveEvent);
begin
	with AxGrid1 do
	begin
		i := get_ItemFromPoint(-1,-1,c,hit);
		OutputDebugString( FormatABC('( 0x44 = ( value bitand 0x44 ) ) ? 1 + ( (value bitand 0xFFFF0000) bitshift 16 ) : `no image`',TObject(hit),Nil,Nil) );
	end
end;

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

with AxGrid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	with Columns do
	begin
		Add('Column 1');
		Add('Column 2');
		Add('Column 3');
	end;
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABZEGACAADACAxRDgMQBQKAAzAJBIYhiG4cYCgMYxXDOCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADKMA4SOKIZhrE4bBhGaQRUgyI43RhHUBzVI' + 
	'UcQvE6TZRHCQYHgkNIhDJIM7TPLkeSVJaTIRoKhJUogApQThTMgVRDEThkGoSa6soSoYTDBKybLrSLKagOT5YUDKUqSdKEZRpEq1YztWbaQoCUoqVRRVIWfbNd4JJa4a' + 
	'DhWpYdpeeY5R7bWLgBYVVABL7LLRsSxpHxPF6RXxaeI3GKsaS8G6ic6nPQMHj7I4NS5pUa6Rh2VYNSa8AAtETRYznOw4bTMXAjNIea5bAYIIR5HIoDzVbQcCQAHL9DBe' + 
	'EMIQEEISgGhMGZQmocgymoYRRCIEQ0G2HYBnEIBig4V4zCQGINnmagCECY43medZ6H2Pw/g+X5fnueh/h+R5+AKABfkMWgGgGYA4AICoCGCE5WA4CphACMgSD2IRIDIB' + 
	'ICmEd5YGCBpRjGBgegWIYIgWdgoGIRQsiKCZiAiJZ0gGQI4jUS4LECOAiBmDJflGfg2BSY4Al4OhGkOCJ2DgFJjGGfgqgiH5Ch4RhGkqOQmEOEpkFkHQYhJRYyESAokG' + 
	'KHhIhKIxJEmf4VGUeRGFmF5iBkchPhYJQ5GoYIZg6Ug6GoFYmkmNhuhulRGHKGoImefh0BUZ4JmYeoemeSZ2H6HQmgoBgXDqXwUAQgI=');
		Add(2,'CP:1 0 -36 0 0');
	end;
	set_Background(EXGRIDLib.BackgroundPartEnum.exColumnsPositionSign,$2000000);
	EndUpdate();
end
1070:
How can I add a title column

with AxGrid1 do
begin
	BeginUpdate();
	HeaderHeight := 22;
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exAllLines;
	with Columns do
	begin
		Add('Col 1');
		(Add('Col 2') as EXGRIDLib.Column).FormatColumn := '1 pos ``';
		(Add('Col 3') as EXGRIDLib.Column).FormatColumn := '1 pos `A-`';
		(Add('Col 4') as EXGRIDLib.Column).FormatColumn := '1 pos `A-Z`';
		with (Add('Title') as EXGRIDLib.Column) do
		begin
			ExpandColumns := '0,1,2,3';
			DisplayExpandButton := False;
			AllowSort := False;
			AllowDragging := False;
			Position := 0;
			HeaderAlignment := EXGRIDLib.AlignmentEnum.CenterAlignment;
		end;
	end;
	ColumnAutoResize := False;
	with Items do
	begin
		AddItem('Item 1');
		AddItem('Item 2');
		AddItem('Item 3');
		AddItem('Item 4');
	end;
	EndUpdate();
	OutputDebugString( Export('',Nil) );
end
1069:
FilterBarCaption ALLUI Keyword ( sample 3, result, leaf )

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddGroupItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddGroupItemEvent);
begin
	with AxGrid1 do
	begin
		with Items do
		begin
			ItemBackColor[e.item] := $f0f0f0;
			val := CellValue[TObject(e.item),TObject(GroupItem[e.item])];
			CellState[TObject(e.item),TObject(GroupItem[e.item])] := AxGrid1.FormatABC('A = `Checked` ? 1 : 0',TObject(val),Nil,Nil);
		end;
	end
end;

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[e.item],Nil,Nil);
		Items.CellImage[TObject(e.item),TObject(3)] := i;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXGRIDLib.FilterTypeEnum.exCheck;
	end;
	with (Columns.Add('Image') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXGRIDLib.FilterTypeEnum.exImage;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 rpos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellValue[TObject(h),TObject(1)] := 'Sub-Item B';
		CellState[TObject(h),TObject(2)] := 1;
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (Font as stdole.StdFont);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := '(( ( allui replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `' + 
	'[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( match' + 
	'itemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + leafitemcount + ` result(s)` ) : (`<r><fgcolor=808080>`+ leafitemcount + ` ' + 
	'item(s)`) )))';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	AllowGroupBy := True;
	SortBarVisible := True;
	with Columns.Item[TObject(2)] do
	begin
		FormatColumn := '%CS2 ? `Checked` : `Unchecked`';
		SortOrder := EXGRIDLib.SortOrderEnum.SortAscending;
	end;
	EndUpdate();
end
1068:
A black portion is shown while I am using the BackColorAlternate with EBN colors. What can I do

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	DefaultItemHeight := 20;
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhIDhAxHAxg0HG0Mg4xGI3HMOig3GcJiYAf8jAEhhUnAAyhEqg8hk0oAsIjgAiAwmYxGA4mYzGwwkI0i0ooUnB0IBMIl1Dg8zmYyGolptPkI1mY' + 
	'1GAll9KoUslNIrVCqNQldShFUstXAVfrVcrlZtVhuFnsUHq1zoczoQGhFBkNpg6zbDykUkhsPHE2h85nc9n8xtVDtlex9Msd2p1YstVq9ux8HyMtzuFz1PsNTzQlv2hh' + 
	'WfkuqpeVuN0q+nvEooN5veSAGpkb/ACcZrvhU3w83nM/poxGuchGpoVBvWgg+8knA4WimnFxI45Er5XOlHMg/Q3XU33W4ew9Wyu11mchDagcO7zus8VDoNBBEIKBpMY6' + 
	'DqOQyokhA/IQIQmwMk4bIQFDcoO6LWgwhQkNcABwEyAB5GwWbet6cRQg3DENQ5D8QxADZvEkAB8nabsURGeBpFM3pwE2AEZRpDx/neZpOR3Dz9oO/r/wCMoZNTBQAQRJ' + 
	'SEwYg8HPGhEIoNCaEwq10gQ2WcRt7LcRxRFpuxUAEURQ3sczBEMgTTG8gN7HpOSEAEiQBAQZpmQ0DibPUFwbKcHwkhQoQtNQNzNEMbABOKDy/DMYQzHLeoPL0OTJSUd0' + 
	'pHcxTewk5zrIygIRPslz4lEngBKIAQivgASs/kLSBTlO00f8t0vGcgUbDlDRjXLCUNRERRvRgAHW2oAICA==');
	with (Columns.Add('Default') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with (Columns.Add('Position') as EXGRIDLib.Column) do
	begin
		FormatColumn := '1 rindex ``';
		Visible := False;
	end;
	with ConditionalFormats.Add('%C1 mod 2',Nil) do
	begin
		BackColor := $1000000;
	end;
	with Items do
	begin
		AddItem('Item 1');
		AddItem('Item 2');
		AddItem('Item 3');
		AddItem('Item 4');
	end;
	EndUpdate();
end
1067:
How can I specify alternate background colors for each root item, similar with BackColorAlternate

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Default') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with (Columns.Add('Position') as EXGRIDLib.Column) do
	begin
		FormatColumn := '( ( 1:=( ( 0:=(1 rpos '''') ) lfind `.`) ) < 0 ? =:0 : (=:0 left =:1) )';
		Visible := False;
	end;
	with ConditionalFormats.Add('%C1 mod 2',Nil) do
	begin
		BackColor := $f0f0f0;
	end;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		h := AddItem('Root 3');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
	end;
	EndUpdate();
end
1066:
Is it possible to change the caption from a column without to remove the column and add it with the new caption
with AxGrid1 do
begin
	(Columns.Add('ColumnName') as EXGRIDLib.Column).Caption := 'NewName';
	(Columns.Add('ColumnName') as EXGRIDLib.Column).HTMLCaption := '<b>New</b>Name';
end
1065:
FilterBarCaption ALL Keyword ( sample 2, result )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[e.item],Nil,Nil);
		Items.CellImage[TObject(e.item),TObject(3)] := i;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			EditType := EXGRIDLib.EditTypeEnum.CheckValueType;
			Option[EXGRIDLib.EditorOptionEnum.exCheckValue2] := TObject(1);
		end;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXGRIDLib.FilterTypeEnum.exCheck;
	end;
	with (Columns.Add('Image') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXGRIDLib.FilterTypeEnum.exImage;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellValue[TObject(h),TObject(1)] := 'Sub-Item B';
		CellState[TObject(h),TObject(2)] := 1;
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (Font as stdole.StdFont);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := '(( ( all replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<' + 
	's>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matchit' + 
	'emcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount ' + 
	'+ ` item(s)`) )))';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	Columns.Item[TObject(2)].Filter := 1;
	ApplyFilter();
	EndUpdate();
end
1064:
FilterBarCaption ALL Keyword ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[e.item],Nil,Nil);
		Items.CellImage[TObject(e.item),TObject(3)] := i;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			EditType := EXGRIDLib.EditTypeEnum.CheckValueType;
			Option[EXGRIDLib.EditorOptionEnum.exCheckValue2] := TObject(1);
		end;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXGRIDLib.FilterTypeEnum.exCheck;
	end;
	with (Columns.Add('Image') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXGRIDLib.FilterTypeEnum.exImage;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellValue[TObject(h),TObject(1)] := 'Sub-Item B';
		CellState[TObject(h),TObject(2)] := 1;
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (Font as stdole.StdFont);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := 'all';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	Columns.Item[TObject(2)].Filter := 1;
	ApplyFilter();
	EndUpdate();
end
1063:
FilterBarCaption ALLUI Keyword ( sample 2, result )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[e.item],Nil,Nil);
		Items.CellImage[TObject(e.item),TObject(3)] := i;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			EditType := EXGRIDLib.EditTypeEnum.CheckValueType;
			Option[EXGRIDLib.EditorOptionEnum.exCheckValue2] := TObject(1);
		end;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXGRIDLib.FilterTypeEnum.exCheck;
	end;
	with (Columns.Add('Image') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXGRIDLib.FilterTypeEnum.exImage;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellValue[TObject(h),TObject(1)] := 'Sub-Item B';
		CellState[TObject(h),TObject(2)] := 1;
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (Font as stdole.StdFont);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := '(( ( allui replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `' + 
	'[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( match' + 
	'itemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcoun' + 
	't + ` item(s)`) )))';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	Columns.Item[TObject(2)].Filter := 1;
	ApplyFilter();
	EndUpdate();
end
1062:
FilterBarCaption ALLUI Keyword ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[e.item],Nil,Nil);
		Items.CellImage[TObject(e.item),TObject(3)] := i;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			EditType := EXGRIDLib.EditTypeEnum.CheckValueType;
			Option[EXGRIDLib.EditorOptionEnum.exCheckValue2] := TObject(1);
		end;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXGRIDLib.FilterTypeEnum.exCheck;
	end;
	with (Columns.Add('Image') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXGRIDLib.FilterTypeEnum.exImage;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellValue[TObject(h),TObject(1)] := 'Sub-Item B';
		CellState[TObject(h),TObject(2)] := 1;
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (Font as stdole.StdFont);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := 'allui';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	Columns.Item[TObject(2)].Filter := 1;
	ApplyFilter();
	EndUpdate();
end
1061:
FilterBarCaption AVAILABLE Keyword ( sample 2, result )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[e.item],Nil,Nil);
		Items.CellImage[TObject(e.item),TObject(3)] := i;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			EditType := EXGRIDLib.EditTypeEnum.CheckValueType;
			Option[EXGRIDLib.EditorOptionEnum.exCheckValue2] := TObject(1);
		end;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXGRIDLib.FilterTypeEnum.exCheck;
	end;
	with (Columns.Add('Image') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXGRIDLib.FilterTypeEnum.exImage;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellValue[TObject(h),TObject(1)] := 'Sub-Item B';
		CellState[TObject(h),TObject(2)] := 1;
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (Font as stdole.StdFont);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := '(( ( value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` ) + ` ` + ( avai' + 
	'lable replace `[` with `<bgcolor=C0C0C0><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` replace `<s>` with ``' + 
	' replace `</s>` with `` ) + `<fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount ' + 
	'+ 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	Columns.Item[TObject(2)].Filter := 1;
	ApplyFilter();
	EndUpdate();
end
1060:
FilterBarCaption AVAILABLE Keyword ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[e.item],Nil,Nil);
		Items.CellImage[TObject(e.item),TObject(3)] := i;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			EditType := EXGRIDLib.EditTypeEnum.CheckValueType;
			Option[EXGRIDLib.EditorOptionEnum.exCheckValue2] := TObject(1);
		end;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXGRIDLib.FilterTypeEnum.exCheck;
	end;
	with (Columns.Add('Image') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXGRIDLib.FilterTypeEnum.exImage;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellValue[TObject(h),TObject(1)] := 'Sub-Item B';
		CellState[TObject(h),TObject(2)] := 1;
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (Font as stdole.StdFont);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := 'value + ` ` + available';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	Columns.Item[TObject(2)].Filter := 1;
	ApplyFilter();
	EndUpdate();
end
1059:
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 3, results )

with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		CellValue[TObject(AddItem('Item B')),TObject(1)] := 'Sub-Item B';
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (Font as stdole.StdFont);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080>` + value + `</fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := '(`<b>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ' + 
	'` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )) replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace' + 
	' `]` with ` </b></bgcolor></fgcolor>`';
	FilterBarPromptVisible := EXGRIDLib.FilterBarVisibleEnum.exFilterBarToggle;
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	with Columns.Item[TObject(1)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exPattern;
		Filter := '*B';
	end;
	ApplyFilter();
	EndUpdate();
end
1058:
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 2 )

with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		CellValue[TObject(AddItem('Item B')),TObject(1)] := 'Sub-Item B';
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (Font as stdole.StdFont);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080>` + value + `</fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := 'value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>`';
	FilterBarPromptVisible := EXGRIDLib.FilterBarVisibleEnum.exFilterBarToggle;
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	with Columns.Item[TObject(1)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exPattern;
		Filter := '*B';
	end;
	ApplyFilter();
	EndUpdate();
end
1057:
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 1 )

with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		CellValue[TObject(AddItem('Item B')),TObject(1)] := 'Sub-Item B';
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080>` + value + `</fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := 'value replace `[` with `<fgcolor=808080>[` replace `]` with `]</fgcolor>`';
	FilterBarPromptVisible := EXGRIDLib.FilterBarVisibleEnum.exFilterBarToggle;
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	with Columns.Item[TObject(1)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exPattern;
		Filter := '*B';
	end;
	ApplyFilter();
	EndUpdate();
end
1056:
Is it possible to automatically displays the control's filter label to the right

with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Item') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarCaption := '`<r>` + value';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarShowCloseOnRight) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarToggle);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
1055:
How can I get the number of results/items being shown in the control's filter bar (sample 4)

with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Item') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarFont := (Font as stdole.StdFont);
	FilterBarPrompt := FormatABC('`<b>` + value',TObject(FilterBarPrompt),Nil,Nil);
	FilterBarCaption := '`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount +' + 
	' 1) + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCompact) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarShowCloseOnRight) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarShowCloseIfRequired) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCaptionVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	EndUpdate();
end
1054:
How can I get the number of results being shown in the control's filter bar (sample 3)

with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarFont := (Font as stdole.StdFont);
	FilterBarCaption := '`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount +' + 
	' 1) + ` result(s)` ) : ``)';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCompact) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCaptionVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
1053:
How can I get the number of results being shown in the control's filter bar (sample 2, compact)

with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarFont := (Font as stdole.StdFont);
	FilterBarCaption := '`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? `<off -4> ` + abs(matchitemcount + 1) + ` result(s)` : ``)';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCompact) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarSingleLine) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCaptionVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
1052:
How can I get the number of results being shown in the control's filter bar (sample 1)

with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarFont := (Font as stdole.StdFont);
	FilterBarCaption := '`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCaptionVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
1051:
FilterBarCaption Predefined Keywords

// AfterExpandItem event - Fired after an item is expanded (collapsed).
procedure TWinForm1.AxGrid1_AfterExpandItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AfterExpandItemEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			EditType := EXGRIDLib.EditTypeEnum.CheckValueType;
			Option[EXGRIDLib.EditorOptionEnum.exCheckValue2] := TObject(1);
		end;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXGRIDLib.FilterTypeEnum.exCheck;
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		h := AddItem('Item B');
		CellState[TObject(InsertItem(h,Nil,'Sub-Item B1')),TObject(1)] := 1;
		InsertItem(h,Nil,'Sub-Item B2');
		ExpandItem[h] := True;
		AddItem('Item C');
	end;
	FilterInclude := EXGRIDLib.FilterIncludeEnum.exItemsWithChilds;
	FilterBarFont := (Font as stdole.StdFont);
	FilterBarCaption := '`<fgcolor=0000FF><i>value/current</i></fgcolor>: <fgcolor=808080>` + value + `</fgcolor>` + `<br><fgcolor=0000FF><i>available</i' + 
	'></fgcolor>: ` + available + `<br><fgcolor=0000FF><i>allui</i></fgcolor>: ` + allui + `<br><fgcolor=0000FF><i>all</i></fgcolor>:' + 
	' ` + all + `<br><fgcolor=0000FF><i>itemcount</i></fgcolor>: <fgcolor=808080>` + itemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><' + 
	'i>visibleitemcount</i></fgcolor>: <fgcolor=808080>` + visibleitemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>matchitemcount</i' + 
	'></fgcolor>: <fgcolor=808080>` + matchitemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>promptpattern</i></fgcolor>: <fgcolor=80' + 
	'8080>` + promptpattern + `</fgcolor>`+ `<br><fgcolor=0000FF><i>leafitemcount</i></fgcolor>: <fgcolor=808080>` + leafitemcount + ' + 
	'`</fgcolor>`';
	FilterBarPromptPattern := 'B';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCaptionVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
1050:
I am using filter prompt feature, and also column's filter, just wondering if possible to compact displaying the filter bar so it won't show on multiple lines

with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarFont := (Font as stdole.StdFont);
	FilterBarCaption := '`<r><i><fgcolor=808080><upline><solidline><sha ;;0>` + value';
	FilterBarPromptPattern := 'B';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCompact) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarSingleLine) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
1049:
Just wondering if it is possible to show the filter bar's close button on the right ( sample 2 )

with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarShowCloseOnRight) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarToggle) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	FilterBarPrompt := FormatABC('`<r>` + value',TObject(FilterBarPrompt),Nil,Nil);
	EndUpdate();
end
1048:
Just wondering if it is possible to show the filter bar's close button on the right ( sample 1 )

with AxGrid1 do
begin
	BeginUpdate();
	RightToLeft := True;
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarToggle) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	EndUpdate();
end
1047:
How can I change the visual appearance of the filter bar's close button (EBN)

with AxGrid1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABHQDg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLOg7IJj' + 
	'yI4/SJAYCydKAWhxIaZKJHCZoEDaTAADCNVAQp6MEIJVbVEI0e79OgBLp/Z7kECIJJAaRjHQdJxGLA8EhtCQhCZteK6SgMKJYXhWQYRXI1JwvMBrWrdQjiOYELQtMKmS' + 
	'ZNLYGG4dR5SVJbcYhSYsRRFMoyDIOXYDLKsdYqSpXIThObEGgaPqJYjsUjCMKnR7HVIURrBPC9TBPE69ZgmC6ucKPX51ShKFaBWDZcwFAS+UBuYCAILiEAQGZ1XT8ORO' + 
	'icbgJgSTJRlCaZeDsHY7QGR4xkSYp3CaExZAQMgalQYAwjCAAfBANxcA2TgKAUOpDCGFhKg0RpXCwCwDHQHQHEyAIkCkOhbFOGA8A8DohBgRg9AccZcn8EpEjMLI2C2D' + 
	'YxAgQgvAIUIVkoAAPBQDJlECTZ3CCYwDACQwUA8A5MCAWAWDiQi4l8aQOEgLJuBgBgDmYFAzEoIoIl0WALgKYJbBABADAAHgHg8VAMmqCQQDMXABAATYwTmNwBDATJXA' + 
	'iAgjHmNQ5lgQ5QEQEQMmcWg/GwD5ylyNw2gMcJcjsBgBgOQQDDhRpVAMMwnDBFw1B0Ax8D0DxOmmJJIGQTY5hGMAwkwM4CAYLZAmAOJnAqAojiIGg6iieYkmeAYOHaKJ' + 
	'DCyCwjH6AoggsQpQliAJLhgaJ0CESBTnyDwjk+cg4g4P5IHIHJ+BWRRzlYWAxiOUxihsY4KjKLJRGqC44FCegkkkM58iAKAPnIWIWD8SRSFSfQnkmewUhYP4GiGKJ7G0' + 
	'TIbCSUoggqUo0lAQ4LnEcBcD8Coiiif4nE+eAAn2HpOkcFJqi4T5SkyMw/kqQown8IBIBOdA+A+DJrBqVxXEqYo4lCApLhGHBnD8S4ymyfxmg+cwQkQP5egOUZIWoEAk' + 
	'jIeIPBMBJBD+TBjBifwvkuc58hQJQPmFrYykkchclSApKjGOBuD+TRDFCfw3mmIxNi8FxFlOXhVC4aYDFyPgvg2YBcBcLZGCGCJ0DSLRzGSWQ/lmY5+mEP5gmMDBZRSM' + 
	'RsFsOxMhMJJ/DsTpTnwaQaE+N5ojuNhdEYNI5C4TZJO1GRDmCaxnA2Yx4n8IpIjOTBQBQC5TgyYw7gUYRYikC0BYRwsDQBoB8eA6Q2hsE0BUXgywZtYCyHMKwnxSAhAQ' + 
	'HkIQhRrBaDsCwA4ERiB2EWAIYIXhhiVEgAEUYwwYjyASLge4FhHgRDkM8OQih0jWPkGgBBAQ');
	end;
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarToggle) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	set_Background(EXGRIDLib.BackgroundPartEnum.exFooterFilterBarButton,$1000000);
	EndUpdate();
end
1046:
How can I change the visual appearance of the filter bar's close button (solid)

with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptVisible := EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible;
	set_Background(EXGRIDLib.BackgroundPartEnum.exFooterFilterBarButton,$ff);
	EndUpdate();
end
1045:
Is it possible to prevent definitely showing the filter bar's close button

with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptVisible := EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible;
	set_Background(EXGRIDLib.BackgroundPartEnum.exFooterFilterBarButton,$ffffffff);
	EndUpdate();
end
1044:
Is it possible to show the close button only if there is a filter applied

with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarShowCloseIfRequired) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	EndUpdate();
end
1043:
The control's filter bar is not closed once I click the close button (toggle)

with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
		LockedItemCount[EXGRIDLib.VAlignmentEnum.exBottom] := 1;
		h := LockedItem[EXGRIDLib.VAlignmentEnum.exBottom,0];
		ItemDivider[h] := 0;
		CellValue[TObject(h),TObject(0)] := '<c><fgcolor=808080>Press the CTRL + F to turn on/off the control''s filter bar. ALT + Up/Down moves the focus.';
		CellValueFormat[TObject(h),TObject(0)] := EXGRIDLib.ValueFormatEnum.exHTML;
	end;
	FilterBarCaption := '`<r><fgcolor=808080>` + value';
	FilterBarPromptPattern := 'B';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCompact) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarToggle) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarSingleLine) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
1042:
How can I display the control's filter on a single line

with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarCaption := 'len(value) ? `filter for: <fgcolor 808080>` + value  : `<fgcolor 808080>no filter`';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarSingleLine) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
1041:
How can I display the control's filter on a single line (prompt-combined)

with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarCaption := '`<r>` + value';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCompact) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarSingleLine) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
1040:
How can I get the number of results after a filter is applied

// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
procedure TWinForm1.AxGrid1_ClickEvent(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		ClearFilter();
	end
end;

// FilterChange event - Occurs when filter was changed.
procedure TWinForm1.AxGrid1_FilterChange(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'Items.MatchItemCount' );
		OutputDebugString( Items.MatchItemCount );
		OutputDebugString( FormatABC('value < 0 ? `filter applied: ` + abs(value + 1) + ` result(s)` : `no filter`',Items.MatchItemCount,Nil,Nil) );
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptVisible := EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible;
	FilterBarPromptPattern := 'Item';
	EndUpdate();
end
1039:
How can I programmatically clear the control's filter
// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
procedure TWinForm1.AxGrid1_ClickEvent(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		ClearFilter();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptVisible := EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible;
	FilterBarPromptPattern := 'B';
	EndUpdate();
end
1038:
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt-combined)

with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptPattern := 'B';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
1037:
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt)

with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptVisible := EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible;
	FilterBarPromptPattern := 'B';
	EndUpdate();
end
1036:
Is it possible to prevent closing the control's filter bar, so it is always shown

with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarCaption := 'len(value) = 0 ? `<fgcolor=808080>no filter` : value';
	FilterBarPromptVisible := EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible;
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
1035:
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 4)

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	VisualDesign := 'gBFLBWIgBAEHhEJAEGg6VAkHeLpgwChAOhULB8XAUUg8MAAREEHGMcgRCJ0ei8dhABDEcQAAYAQGKIYBkAKBQAGaAoDDMOQwQwAAxjGKEEwsACEIrjKCRShyCYZRhGcT' + 
	'SBCIZBqEqSZLiEZRQiiCYsS5GQBRWAkEwiBiEQTjea5CgOIAFS7LIqjRQEBxhIaZYIGaiQADENo9TxIMZAfBIHShK6NJABCCSQKkYx0HScRijDIEFwGIQmbKiej4DCiC' + 
	'QQW7OYYRVCNMQSfa8HivJyrcamfp/YBgOBYHb1eLVPR5LwfPCGUw1P6PLxkORZHimK4tSLHV7xVpMIwZFafIQhCCoHomS5NU7UNR0TQUFx9FaGX7rDDsGwLAJ6XRgF4b' + 
	'g2VpnHePpenAN4bH2GwHFmApSjEGBLnWOpRGOTBZHOegrE6BxPiWVJqCweQrn0LgJAWJBjwgaw1gKO5HmWch5h+fovF+G5bmich4BgfZkB8dynRUVYqiUR5rnmex/F6N' + 
	'4tn2AJfnebZ3DEXw3HWXgzAyIwgicKJKBKEIhCeCgiHyHYFEmSAFmqBghFIdgSCeIJygYDAyAgJx6AoIINAMOJNCgCZCGoGoLmMCI+CwJoihMNglCCIhzFCUg0EmMhgh' + 
	'WDBkAiQg9CUY4jEYN4Jk2IxklYJoJHIUg+CSZJSESFwkkkGI+FOFIJEIRhPhMCRJCSVoRrSBhiDgTZjHYT4PEkYhwhgJYm0SaIaiaSYuE+GQNlmCIBGCJxjhiZQ5AkMh' + 
	'Ag6ExJCkPhPguaAiFYUAlAkKZ0g6HoOEmWR/GHcA4m0OwIlIJIHCRgQshGJhpjoaocieaZiC6GAimkUgehIOwnGYGYIGkah6jaE4rg6SpCjKK5rEOMYlGIGIihKOgglo' + 
	'Foqj6L5aGaBo6CkGIkAQjiPpCAAaJILCTJQlKPACDaXJgmSaJsnCdJ4nygKEoijKQpSmKcqCpKoqysK0rivLAsSyLMtC1LYty4Lkui7LwvS+L8wDBMIwzEMUxjHMgyTK' + 
	'MszDNM4zzQNE0jTNQ1TWNc2DZNo2zcN03jfOA4TiOM5DlOY5zoOk6jrOw7TuO88DxPI8z0PU9j3Pg+T6Ps/D9P4/0AQFAkDQRBUGQdCEJQpC0MQ1DkPRBEUSRNFEVBhF' + 
	'kXRhGQ9D6Dxfh+W5gGGd4QH2XQjCmDpFFaKoVB+D5Xmed5+H8YAHnIAh9EwV5Fl0d4MkMKJICmSgygSJAoEmMUCIPgnDCCIOQFYCxJjwFoCcA4kxoF+AIJkAgExegDEg' + 
	'EYQInAzCUAIOEGgfxiiRDYF1Q4EQ2BSCaEQYwbAiKREMpRSymFNDIAkAxT6oVRgSA2qdVKq1WqvVirMZQUhSCnBUMoIgoQRgnGSIQUgkg1hIHYAkAYMROAmHiLsE4xxS' + 
	'CxBwEwCQ0wmDdBsE0GYXBtg2CSPMFIuwYiQBYBQeAcwOCnBCCZgw0g0glBONAQgqQThCGgPQGoBQfiRGmOEZIPAXjsBoPAO4HRThhA0EQSA5BAgaCKJIGg3QdhOCmNUB' + 
	'oQAijTCIF0FwQxpCHDIPAYYMQGgtCmFcaQtRAjZCyFYSojQ2B2BoKwIYFApBXEIBsIQ1QsAWAWEwaA1xCgjAoIAQBAQ=';
	Columns.Add('Column');
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child');
	end;
	EndUpdate();
end
1034:
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 3)

with AxGrid1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(3,'gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB' + 
	'cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD' + 
	'xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l' + 
	'lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5JlgX' + 
	'IcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIRg' + 
	'wZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOMI' + 
	'NCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA=');
		Add(1,'CP:3 -2 -2 2 2');
		Add(4,'gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB' + 
	'cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD' + 
	'xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l' + 
	'lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCEe' + 
	'Bkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchOF' + 
	'SFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQOJ' + 
	'tDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI=');
		Add(2,'CP:4 -2 -2 2 2');
	end;
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exGroupLinesAtRoot;
	HasButtons := EXGRIDLib.ExpandButtonEnum.exCustom;
	set_HasButtonsCustom(False,16777216);
	set_HasButtonsCustom(True,33554432);
	Columns.Add('Column');
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child');
	end;
	EndUpdate();
end
1033:
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 2)

with AxGrid1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'XP:TREEVIEW 2 1');
		Add(2,'XP:TREEVIEW 2 2');
	end;
	set_Background(EXGRIDLib.BackgroundPartEnum.exTreeGlyphOpen,$1000000);
	set_Background(EXGRIDLib.BackgroundPartEnum.exTreeGlyphClose,$2000000);
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	Columns.Add('Column');
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child');
	end;
	EndUpdate();
end
1032:
How can I find if the control is running in DPI mode
with AxGrid1 do
begin
	OutputDebugString( FormatABC('dpi = 1 ? `normal/stretch mode` : `dpi mode`',Nil,Nil,Nil) );
end
1031:
How can I change the visual appearance of the +/- buttons (method 1)

with AxGrid1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB' + 
	'cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD' + 
	'xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l' + 
	'lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5JlgX' + 
	'IcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIRg' + 
	'wZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOMI' + 
	'NCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA=');
		Add(2,'gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB' + 
	'cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD' + 
	'xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l' + 
	'lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCEe' + 
	'Bkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchOF' + 
	'SFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQOJ' + 
	'tDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI=');
	end;
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	set_Background(EXGRIDLib.BackgroundPartEnum.exTreeGlyphOpen,$1000000);
	set_Background(EXGRIDLib.BackgroundPartEnum.exTreeGlyphClose,$2000000);
	Columns.Add('Column');
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child');
	end;
	EndUpdate();
end
1030:
I am using single selection, the question is if possible to select an item only when the user releases the mouse, as currently it selects the item as soon as the user clicks it
// SelectionChanged event - Fired after a new item has been selected.
procedure TWinForm1.AxGrid1_SelectionChanged(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'SelectionChanged' );
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	FreezeEvents(True);
	SingleSel := True;
	SelectOnRelease := True;
	(Columns.Add('Column') as EXGRIDLib.Column).FormatColumn := '1 apos `A-Z`';
	with Items do
	begin
		AddItem('');
		SelectItem[AddItem('')] := True;
		AddItem('');
	end;
	FreezeEvents(False);
	EndUpdate();
end
1029:
Is it possible to select nothing
// SelectionChanged event - Fired after a new item has been selected.
procedure TWinForm1.AxGrid1_SelectionChanged(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'SelectionChanged' );
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	FreezeEvents(True);
	AllowSelectNothing := True;
	(Columns.Add('Column') as EXGRIDLib.Column).FormatColumn := '1 apos `A-Z`';
	with Items do
	begin
		AddItem('');
		SelectItem[AddItem('')] := True;
		AddItem('');
	end;
	FreezeEvents(False);
	EndUpdate();
end
1028:
How can I specify the color for control's selection when it loses the focus

with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowDragging := False;
		AllowSort := False;
		Width := 24;
		Def[EXGRIDLib.DefColumnEnum.exCellHasButton] := TObject(True);
	end;
	(Columns.Add('Column') as EXGRIDLib.Column).FormatColumn := '1 apos `A-Z`';
	with Items do
	begin
		AddItem('');
		SelectItem[AddItem('')] := True;
		AddItem('');
	end;
	set_Background(EXGRIDLib.BackgroundPartEnum.exSelBackColorHide,$c4c4c4);
	set_Background(EXGRIDLib.BackgroundPartEnum.exSelForeColorHide,$10000);
	EndUpdate();
end
1027:
How can I change the background color for checked items (EBN color, frame)

// CellStateChanged event - Fired after cell's state has been changed.
procedure TWinForm1.AxGrid1_CellStateChanged(sender: System.Object; e: AxEXGRIDLib._IGridEvents_CellStateChangedEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	SelBackMode := EXGRIDLib.BackModeEnum.exTransparent;
	DefaultItemHeight := 22;
	with (Columns.Add('Tasks') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with VisualAppearance do
	begin
		Add(2,'gBFLBCJwBAEHhEJAAEhABUkIQAAYAQGKIcBiAKBQAGYBIJDEMQ3DjAUBjMK4ZwTC4AIQjCK4JDKHYJRpHEZgLBMJAAGIZYhhUYRUiYMkiJBGGDIDiGGI2SJAcbTVIEcx' + 
	'9EyUJSgSTJOjCMokTTIU4TTLYASbJafJJhWSaAiyMouDIOMg1BDNIw/Hika6jOgKUisNJXRzWIBTbDlOQ3JqnbCjOQRSrQBoNDAMAiiaKlbwJPK9RoieQXfwUAJrXJcF' + 
	'qXFSLVxNBKAQEBA=');
		Add(1,'CP:2 1 1 -1 -1');
	end;
	with ConditionalFormats.Add('%CS0 = 1',Nil) do
	begin
		BackColor := $1000000;
	end;
	HeaderVisible := True;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Nil,'Task 1');
		SelectItem[hChild] := True;
		hChild := InsertItem(h,Nil,'Task 2');
		CellState[TObject(hChild),Nil] := 1;
		hChild := InsertItem(h,Nil,'Task 3');
		CellState[TObject(hChild),Nil] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1026:
How can I change the caption of the checked items (sample 2)

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Tasks') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
		Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		FormatColumn := '%CS0 = 1 ? `<bgcolor=000000><fgcolor=FFFFFF> ` + value + ` </fgcolor></bgcolor>` : value';
	end;
	HeaderVisible := True;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Nil,'Task 1');
		SelectItem[hChild] := True;
		hChild := InsertItem(h,Nil,'Task 2');
		CellState[TObject(hChild),Nil] := 1;
		hChild := InsertItem(h,Nil,'Task 3');
		CellState[TObject(hChild),Nil] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1025:
How can I change the caption of the checked items (sample 1)

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Tasks') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
		Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		FormatColumn := 'value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)';
	end;
	HeaderVisible := True;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Nil,'Task 1');
		SelectItem[hChild] := True;
		hChild := InsertItem(h,Nil,'Task 2');
		CellState[TObject(hChild),Nil] := 1;
		hChild := InsertItem(h,Nil,'Task 3');
		CellState[TObject(hChild),Nil] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1024:
How can I change the font for the checked items

// CellStateChanged event - Fired after cell's state has been changed.
procedure TWinForm1.AxGrid1_CellStateChanged(sender: System.Object; e: AxEXGRIDLib._IGridEvents_CellStateChangedEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	DefaultItemHeight := 22;
	with (Columns.Add('Tasks') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with ConditionalFormats.Add('%CS0 = 1',Nil) do
	begin
		f := (ComObj.CreateComObject(ComObj.ProgIDToClassID('StdFont')) as stdole.StdFont);
		with f do
		begin
			Name := AxGrid1.Font.Name;
			Size := 12;
		end;
		Font := (f as stdole.StdFont);
	end;
	HeaderVisible := True;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Nil,'Task 1');
		SelectItem[hChild] := True;
		hChild := InsertItem(h,Nil,'Task 2');
		CellState[TObject(hChild),Nil] := 1;
		hChild := InsertItem(h,Nil,'Task 3');
		CellState[TObject(hChild),Nil] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1023:
How can I bold the checked items

// CellStateChanged event - Fired after cell's state has been changed.
procedure TWinForm1.AxGrid1_CellStateChanged(sender: System.Object; e: AxEXGRIDLib._IGridEvents_CellStateChangedEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Tasks') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with ConditionalFormats.Add('%CS0 = 1',Nil) do
	begin
		Bold := True;
	end;
	HeaderVisible := True;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Nil,'Task 1');
		SelectItem[hChild] := True;
		hChild := InsertItem(h,Nil,'Task 2');
		CellState[TObject(hChild),Nil] := 1;
		hChild := InsertItem(h,Nil,'Task 3');
		CellState[TObject(hChild),Nil] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1022:
How can I change the foreground color for checked items

// CellStateChanged event - Fired after cell's state has been changed.
procedure TWinForm1.AxGrid1_CellStateChanged(sender: System.Object; e: AxEXGRIDLib._IGridEvents_CellStateChangedEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	SelBackMode := EXGRIDLib.BackModeEnum.exTransparent;
	with (Columns.Add('Tasks') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with ConditionalFormats.Add('%CS0 = 1',Nil) do
	begin
		ForeColor := $8080ff;
	end;
	HeaderVisible := True;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Nil,'Task 1');
		SelectItem[hChild] := True;
		hChild := InsertItem(h,Nil,'Task 2');
		CellState[TObject(hChild),Nil] := 1;
		hChild := InsertItem(h,Nil,'Task 3');
		CellState[TObject(hChild),Nil] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1021:
How can I change the background color for checked items (solid color)

// CellStateChanged event - Fired after cell's state has been changed.
procedure TWinForm1.AxGrid1_CellStateChanged(sender: System.Object; e: AxEXGRIDLib._IGridEvents_CellStateChangedEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	SelBackMode := EXGRIDLib.BackModeEnum.exTransparent;
	with (Columns.Add('Tasks') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with ConditionalFormats.Add('%CS0 = 1',Nil) do
	begin
		BackColor := $8080ff;
	end;
	HeaderVisible := True;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Nil,'Task 1');
		SelectItem[hChild] := True;
		hChild := InsertItem(h,Nil,'Task 2');
		CellState[TObject(hChild),Nil] := 1;
		hChild := InsertItem(h,Nil,'Task 3');
		CellState[TObject(hChild),Nil] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1020:
How can I export the cell's state as well

with AxGrid1 do
begin
	BeginUpdate();
	with Columns do
	begin
		(Add('C1') as EXGRIDLib.Column).Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		(Add('C2') as EXGRIDLib.Column).FormatColumn := '1 index `A-Z`';
		(Add('C3') as EXGRIDLib.Column).FormatColumn := '100 index ``';
	end;
	with Items do
	begin
		AddItem('Item 1');
		CellState[TObject(AddItem('Item 2')),Nil] := 1;
		CellState[TObject(AddItem('Item 3')),Nil] := 1;
	end;
	EndUpdate();
	OutputDebugString( 'Export CSV Items including Check-State:' );
	BeginUpdate();
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		Position := 0;
		FormatColumn := '%CS0';
	end;
	OutputDebugString( Export('',Nil) );
	Columns.Remove('Check');
	EndUpdate();
end
1019:
Is it possible to customize the editor selection colour of the built in text editor, from standard blue to black

with AxGrid1 do
begin
	BeginUpdate();
	SelBackColor := Color.FromArgb(0,0,0);
	SelForeColor := Color.FromArgb(255,255,255);
	with (Columns.Add('Edit') as EXGRIDLib.Column).Editor do
	begin
		EditType := EXGRIDLib.EditTypeEnum.MaskType;
		Mask := ';;;rich';
	end;
	with Items do
	begin
		AddItem('');
		AddItem('Just a text');
		AddItem('');
	end;
	EndUpdate();
end
1018:
Is it possible to customize the editor selection colour of the built in dropdown editor, from standard blue to black

with AxGrid1 do
begin
	BeginUpdate();
	SelBackColor := Color.FromArgb(0,0,0);
	SelForeColor := Color.FromArgb(255,255,255);
	with (Columns.Add('DropDown') as EXGRIDLib.Column).Editor do
	begin
		AddItem(1,'This is just the first item',Nil);
		AddItem(2,'This is just the second item',Nil);
		AddItem(3,'This is just the third item',Nil);
		EditType := EXGRIDLib.EditTypeEnum.DropDownType;
		Mask := ';;;rich';
	end;
	with Items do
	begin
		AddItem('');
		AddItem('Just a text');
		AddItem('');
	end;
	EndUpdate();
end
1017:
The BeforeExpandItem event is fired when clicking the drop down filter button. What we can do to prevent that
// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
procedure TWinForm1.AxGrid1_BeforeExpandItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_BeforeExpandItemEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'BeforeExpandItem' );
		OutputDebugString( e.item );
		OutputDebugString( 'ColumnFromPoint' );
		OutputDebugString( get_ColumnFromPoint(-1,-1) );
		OutputDebugString( 'ColumnFromPoint return -1, if the user clicks the +/- glitch, else it returns the index of the column where the click occurs.' );
		Items.InsertItem(e.item,Nil,'new child');
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with Columns do
	begin
		(Add('Items') as EXGRIDLib.Column).DisplayFilterButton := True;
	end;
	with Items do
	begin
		ItemHasChildren[InsertItem(Nil,Nil,'Group 1')] := True;
		ItemHasChildren[InsertItem(Nil,Nil,'Group 2')] := True;
	end;
	EndUpdate();
end
1016:
How do I change the drop down filter icon/button (black)

with AxGrid1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQg' + 
	'mPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThd' + 
	'r4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA');
	end;
	set_Background(EXGRIDLib.BackgroundPartEnum.exHeaderFilterBarButton,$1000000);
	set_Background(EXGRIDLib.BackgroundPartEnum.exCursorHoverColumn,$ffffffff);
	HeaderAppearance := EXGRIDLib.AppearanceEnum.None2;
	BackColorHeader := Color.FromArgb(0,0,0);
	ForeColorHeader := Color.FromArgb(255,255,255);
	HeaderVisible := True;
	with (Columns.Add('Filter') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		AllowSort := False;
		AllowDragging := False;
	end;
	EndUpdate();
end
1015:
How do I change the drop down filter icon/button (white)

with AxGrid1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(2,'gBFLBCJwBAEHhEJAAEhABX8GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwYgmNYiTLAcgANJ' + 
	'0WBaGIZJ4gOT5fDKMoEDRRYADFCscwxJybQAqGQKKb+VgAVY/cTyBIAEQSKA0TDOQ5TSKWB4JPZQRBEbZMNBtBIUJquKaqShdQJCU5FdY3Xblez9P7AMBwLFEC4NQ8YN' + 
	'YuPhjR4dRTIMhvVAsUArFh8Zg9GZZFjmDIDT4ydBLTQwcyVIKnP5qOa6XbmPoCQDYKxZHYxPzVDa3axuL76dqCAT7XrXNy1TbNRrzQKfcJqfCbdw2YaDZLOOT3fjuI4h' + 
	'hKaRzFAHJ+jYQ4xHuY4gHuGIXGeExqC8Tp6C+PoEm+G5ImycRgh0XwvDGa5rgOeoejyXwnFeQp2mkf5ClgBB9gCWIYAwfYAEKV58mkdwOggNArgOXY2EWLoDkKOA0mgb' + 
	'hOGgZApgaSBIHWSYHSmbApgYThmESZYJkIeIkgeCpfliLIHgpMIcmUYYYmODAlg2SI4mWfRfGOEguDcCRjFYAJihCQhJBSDoRmONgKEcI4kFCEJhhOVYTmYnAlEAQhWB' + 
	'MJYJGYWoWmWSR2F6F5lnkWAQhUAgpEieRWEuSYkjWGpmkmNhuhuZwJkYcocmaaYkjyEhngnUA6lEFAlAEgI=');
		Add(1,'CP:2 -4 -4 2 4');
	end;
	set_Background(EXGRIDLib.BackgroundPartEnum.exHeaderFilterBarButton,$1000000);
	set_Background(EXGRIDLib.BackgroundPartEnum.exCursorHoverColumn,BackColor);
	HeaderAppearance := EXGRIDLib.AppearanceEnum.None2;
	HeaderHeight := 24;
	BackColorHeader := Color.FromArgb(255,255,255);
	HeaderVisible := True;
	with (Columns.Add('Filter') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		AllowSort := False;
		AllowDragging := False;
	end;
	EndUpdate();
end
1014:
How can I draw a solid frame around the the focusing item

with AxGrid1 do
begin
	BeginUpdate();
	SingleSel := False;
	DefaultItemHeight := 20;
	with VisualAppearance do
	begin
		RenderType := -1;
		Add(1,'gBFLBCJwBAEHhEJAAEhABOkGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBKUQSDqEYyjGLIXAWCYSAAMIwDKAUEwpFAZBhgeDYMiSNoYDJCM4wHI' + 
	'URRJFCUJSGWQpTgSIgyT5HFIxXKoASbJabZLhWS6EpWOotTbIQQRYCkEyfKKfZyGURZQqOKA1DBZErWTJESRFJqLazgO4LAhyQYrVgAErzVKVCRNOqbJzADApdpGQJTU' + 
	'LDNTQHRFIyhOSnIRrWbMAhid6JUZiVT4dBOIYhSYANAqCwLFqrDJmWrpV5WZjlZ47V6BdAyXJsIrmFJEXaOGhyDDlGybSDZYryfZhUziUw4XjbWwZDqPF6DKTTdSGLRE' + 
	'E8WZVlURZvDaep3C+AY8kAYRgGCCBJECUhjDoHROEYWgoAGTQ1CEEx9lGMY0CQUYSnuZQDBGBYFlOH5+H+igGAKAJgEgFgGgGVgDn4CoCmCSA2A6A5hAgDgQgSYRIE4E' + 
	'oFGGCBiBeBhhkgPgbgcYgICoH4IGGWIOCSBhiGiHgVgoYooFoAoLGIWI+DCCgjCiTgrgII4ImYOoOmOSJ2AYOpWlQDQBICA=');
	end;
	ShowFocusRect := True;
	set_Background(EXGRIDLib.BackgroundPartEnum.exShowFocusRect,$1000000);
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('P1') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with Items do
	begin
		h := AddItem('Root');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1013:
The frame around the focusing item is not very clear. Can I show it larger or more cleared (sample 2)

with AxGrid1 do
begin
	BeginUpdate();
	SingleSel := False;
	DefaultItemHeight := 20;
	ShowFocusRect := True;
	with VisualAppearance do
	begin
		RenderType := -1;
		Add(2,'gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBKUQSDqEYyjGLIXAWCYSAAMIwDKAUEwpFAZBhgeCRUgyJI3RgMUIzVA' + 
	'cRRFEiUJQlIZZCjOAw0SIMU7xZRcNxsACnaZnCR4NiuRYiUhOcqzRIQIQ4CiEahqOgJbDUJYwWZKAyjBY8XTZFCSJCpeJ6egOc5jRxQUp1WAEXx3GSsJKvCZ5cADBY+V' + 
	'LQNS0JBtMSTKSLaiuWoIJqCPaDRheWKQJh1NSnLqEcjyYANDxDCZlWzAYxWTZ2Uz7N7PbB0HY4DyPGKZYrfESVRbQcZNS6nNigPI9XhfGq6VjRe63ZaOaYpWrnOJqTRW' + 
	'jOKYujWdZ2BGO5lkuBAAkmcQkDmDBEAwEQJCgGhMGcQ4pkiSxGAAOYmkQIhvkYNg2gSCgyj+LI4GIMIwF2XQoAYAoAmASAWAaAZgggJgKFiT54DYDoDmECBGBKBJgGgT' + 
	'gWgWYRoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChiigYgsgsYYYBYMIKCMKJOCuDRjGiOgLg6Y5InYPoPmQCAkmsXAQDQBCAg=');
		Add(3,'CP:2 -3 0 3 0');
	end;
	set_Background(EXGRIDLib.BackgroundPartEnum.exShowFocusRect,$3010101);
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('P1') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with Items do
	begin
		h := AddItem('Root');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1012:
The frame around the focusing item is not very clear. Can I show it larger or more cleared (sample 1)

with AxGrid1 do
begin
	BeginUpdate();
	SingleSel := False;
	ShowFocusRect := True;
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABHoDg6AADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBIZQ7BKNIxjSJwFiCCQwSDKEjyCKcGRHF6MI6gOYpCgOIYjRJNIASVA' + 
	'ceAAGaUZrjSgobjmOYhAJCLqhYIgASXJqLaBlOCaAieSc+QhjQJIJoeCZXU5TFg1BTsOhqEqcRiseaRVDCaIJWzbdYWLDdNQHHKYLjnWorbpSJZ5XjNEySDQkMS9PrEJ' + 
	'7vST8FBCdAABLJUB2BR9RwxRafKpnWwJDpmCaOQLXEB5DK1PyVMTKYrtGy7GrIAJxWxbV4UHh+QABOzIMAvHKJMwvHYcUZne5XVLeF41HbONogPaJZyIAK2cLROq6Xo7' + 
	'GEcJZEcLASB4DwvgWUZlE6AQQhKAYkkYdA6hyDIwHgSoqFwQgmnsYxjGgSIiBOTpSEiAwRgOJI7j4JAHA6U5wm0MpPlOBIjD8TZiGYCICiCGAuA6AxhAgMgSgOYQ4DYB' + 
	'g/g6cw1n+ABOmMMJ9DmCwjnScw4RsVJngkYh4hoKIKmKKI2CmC5ikiQgqgiT5jhyMw8g4QwIn0OIKEiCJhD8DwTGyfA7k0WQOEWEQkGkJhIhKZB5DYSoTiSCQEn4PQOC' + 
	'OXJcCeIJjliaIQk0aRyF4O5llmAhfhgZhJg4ZoYiaAxYn4PZOhOZJaCUZYTiYQw1mcOZUm+HQnHmWh4h6Z4pnYeYfk0eYsmqG4nAgNJ2DqD5DkCWoiGiOgqgyI5omoRo' + 
	'NiSaQKFKEojCaM4ugSFhOjkAJcieKgDkaH4oioGoOiaKRqgqEoqDddwyhuAxPgOMJ8DyDZqk6NYtCsapmjiLprHqdo6i+K5K1oPhOlqPgKD4DpjnII4yiOewuk6MxtAs' + 
	'MpSjObQ7EaT4wk6ewYn0PgPAiCJkjeLgDk6X44i4G4OmaORuguEpqDkLAzkaWg+E8GIUmaPIvEOVpzj2Lxbl6eo+G+S5in4OYPmOaJyjuTwjnYWpBg6DAjAqQZwkwJwN' + 
	'kKcJsEcEJCDBEpaD6Dw8BiapGjGSgfB2RpxmyBwgkicZ8haBw/g+M5TBcPQPlOXJskscp8jsMJMnMLJXDGTZzEyYw2kwMoDlcFw9i2M4/EGUJPg0CxFlENBtCcSJSnQf' + 
	'Q0m+SgPHsaJ7lALZLG6XZVHWDRfFqVY1k0ZxdladYTnifJUGaeAWAeMnSGcGWgBObJ3lWbwdjKW5cHcTZPHaLkN4GxXDlFqFsA4uRbBOGAFAEIzAsDEFOBkfYqR4D6AO' + 
	'BEYo8QuBvAmMceInBDgcD0JwOIqQyJ1DMAwG4IANDnHSMoK4QhOgMBGNEIQvQWAdGenETIswGiddsAAQAgCAgA==');
		Add(2,'gBFLBCJwBAEHhEJAAEhABeEGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADDFIBQSLAYROGSDJBGODJDjWGIeQLOEhQHI' + 
	'MRxPE6UYLhWYpBDKPYcUbGc7yBBMVwGf59XzACoKSheQIVSDQkw6Fo6NYhAxHALyNRkBy8f60KjtGpodDUJYvW5JYyjBZ8EznOqbJBkeJ7BgOe5NQjaD72VgdWQJFSWJ' + 
	'ajWYYJDOJY2ZAAE5TVINEwxJbDaylChIdxaF6WAzZEBhBYoATPNLBMrhWqKDw2XaQWBCOgwHYeR5LU7BdRwbIrRq2eAAXbcVyXfDddZlBK+QA0SK9lRVTKvJZmKgBWw1' + 
	'COSxmAAGw4kcNx1iKFBiCAfQsG8lJemucg7nsXpUHOOxrm+DI3jOH4XAOBx2nscw0j2HhPG4L5uGEVIECQCBCEUAYkGMHQHFGSBlGaAxkEgQgTGCVBsDYQhCgQJZrHKU' + 
	'ggGEShkFGNgIlsNpPnMHJHD+TADAIJIJiIWIeCqChikiIgmgiD5zHyXxgiACJKCuC4jHiZgtg6I4IlkCQwkwOIonMPJjEkFhGhGZBpA4KoMBCGJuEiE5lAkGg7hMY4JE' + 
	'YVoUCUNAOE6FZl0KWQACWOR2GKF5mBmChchkJRZhoXYaCKKYqGuDglEmNhuhWZpIiYc4dCcCRqGmHZlgm2YxAwSQKESHwkFkKgpiAIAIH4PIimOOg2DiChoiQJRRD+TZ' + 
	'DHCfwyAyCgyg+JpiioYJ/DgDgIlECQ6lwRAEICA=');
		Add(3,'CP:2 -2 0 2 0');
	end;
	(GetOcx() as EXGRIDLib.Grid).SelBackColor := $1000000;
	SelForeColor := Color.FromArgb(0,0,0);
	set_Background(EXGRIDLib.BackgroundPartEnum.exShowFocusRect,$3ff0000);
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('P1') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with Items do
	begin
		h := AddItem('Root');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1011:
I have a column right-aligned. How can I display its check box aligned to the right, as it appears to the left of the cell's caption

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exVLines;
	with Columns do
	begin
		with (Add('Left') as EXGRIDLib.Column) do
		begin
			AllowSizing := False;
			Width := 96;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			FormatColumn := '0 pos `A-Z`';
		end;
		with (Add('Center') as EXGRIDLib.Column) do
		begin
			HeaderAlignment := EXGRIDLib.AlignmentEnum.CenterAlignment;
			Alignment := HeaderAlignment;
			AllowSizing := False;
			Width := 96;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			FormatColumn := '0 pos `A-Z`';
		end;
		with (Add('Right') as EXGRIDLib.Column) do
		begin
			HeaderAlignment := EXGRIDLib.AlignmentEnum.RightAlignment;
			Alignment := HeaderAlignment;
			AllowSizing := False;
			Width := 96;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			FormatColumn := '0 pos `A-Z`';
			Def[EXGRIDLib.DefColumnEnum.exCellDrawPartsOrder] := 'caption,check,icon,icons,picture';
		end;
		Add('');
	end;
	with Items do
	begin
		CellState[TObject(AddItem('Item 1')),TObject(3)] := 1;
		CellState[TObject(AddItem('Item 2')),TObject(2)] := 1;
		CellState[TObject(AddItem('Item 3')),TObject(1)] := 1;
	end;
	EndUpdate();
end
1010:
Can I display the column's multiple-lines caption vertically oriented (method 2)

with AxGrid1 do
begin
	BeginUpdate();
	HeaderHeight := 48;
	ColumnAutoResize := True;
	with Columns do
	begin
		Add('And others ...');
		with (Add('') as EXGRIDLib.Column) do
		begin
			HTMLCaption := 'First Column';
			HeaderVertical := True;
			Width := 36;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Def[EXGRIDLib.DefColumnEnum.exCellPaddingLeft] := TObject(8);
			Position := 0;
		end;
		with (Add('') as EXGRIDLib.Column) do
		begin
			HTMLCaption := '<c><b>Second Column';
			HeaderVertical := True;
			Width := 36;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Def[EXGRIDLib.DefColumnEnum.exCellPaddingLeft] := TObject(8);
			Position := 1;
		end;
		with (Add('') as EXGRIDLib.Column) do
		begin
			HTMLCaption := '<r>Third Column';
			HeaderVertical := True;
			Width := 36;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Def[EXGRIDLib.DefColumnEnum.exCellPaddingLeft] := TObject(8);
			Position := 2;
		end;
	end;
	with Items do
	begin
		CellState[TObject(AddItem('Item 1')),TObject(3)] := 1;
		CellState[TObject(AddItem('Item 2')),TObject(2)] := 1;
		CellState[TObject(AddItem('Item 3')),TObject(1)] := 1;
	end;
	EndUpdate();
end
1009:
Can I display the column's multiple-lines caption vertically oriented (method 1)

with AxGrid1 do
begin
	BeginUpdate();
	HeaderHeight := 48;
	HeaderSingleLine := False;
	ColumnAutoResize := True;
	with Columns do
	begin
		Add('And others ...');
		with (Add('First Column') as EXGRIDLib.Column) do
		begin
			HeaderVertical := True;
			Width := 36;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Def[EXGRIDLib.DefColumnEnum.exCellPaddingLeft] := TObject(8);
			Position := 0;
		end;
		with (Add('Second Column') as EXGRIDLib.Column) do
		begin
			HeaderBold := True;
			HeaderVertical := True;
			Width := 36;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Def[EXGRIDLib.DefColumnEnum.exCellPaddingLeft] := TObject(8);
			Position := 1;
		end;
		with (Add('Third Column') as EXGRIDLib.Column) do
		begin
			HeaderVertical := True;
			Width := 36;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Def[EXGRIDLib.DefColumnEnum.exCellPaddingLeft] := TObject(8);
			Position := 2;
		end;
	end;
	with Items do
	begin
		CellState[TObject(AddItem('Item 1')),TObject(3)] := 1;
		CellState[TObject(AddItem('Item 2')),TObject(2)] := 1;
		CellState[TObject(AddItem('Item 3')),TObject(1)] := 1;
	end;
	EndUpdate();
end
1008:
Can I display the column's caption vertically oriented (method 2)

with AxGrid1 do
begin
	BeginUpdate();
	HeaderHeight := 48;
	ColumnAutoResize := True;
	with Columns do
	begin
		Add('And others ...');
		with (Add('') as EXGRIDLib.Column) do
		begin
			HTMLCaption := 'First';
			HeaderVertical := True;
			Width := 20;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Position := 0;
		end;
		with (Add('') as EXGRIDLib.Column) do
		begin
			HTMLCaption := '<c><b>Second';
			HeaderVertical := True;
			Width := 20;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Position := 1;
		end;
		with (Add('') as EXGRIDLib.Column) do
		begin
			HTMLCaption := '<r>Third';
			HeaderVertical := True;
			Width := 20;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Position := 2;
		end;
	end;
	with Items do
	begin
		CellState[TObject(AddItem('Item 1')),TObject(3)] := 1;
		CellState[TObject(AddItem('Item 2')),TObject(2)] := 1;
		CellState[TObject(AddItem('Item 3')),TObject(1)] := 1;
	end;
	EndUpdate();
end
1007:
Can I display the column's caption vertically oriented (method 1)

with AxGrid1 do
begin
	BeginUpdate();
	HeaderHeight := 48;
	ColumnAutoResize := True;
	with Columns do
	begin
		Add('And others ...');
		with (Add('First') as EXGRIDLib.Column) do
		begin
			HeaderVertical := True;
			Width := 20;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Position := 0;
		end;
		with (Add('Second') as EXGRIDLib.Column) do
		begin
			HeaderBold := True;
			HeaderVertical := True;
			Width := 20;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Position := 1;
		end;
		with (Add('Third') as EXGRIDLib.Column) do
		begin
			HeaderVertical := True;
			Width := 20;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Position := 2;
		end;
	end;
	with Items do
	begin
		CellState[TObject(AddItem('Item 1')),TObject(3)] := 1;
		CellState[TObject(AddItem('Item 2')),TObject(2)] := 1;
		CellState[TObject(AddItem('Item 3')),TObject(1)] := 1;
	end;
	EndUpdate();
end
1006:
How do I automatically bold items being checked

// CellStateChanged event - Fired after cell's state has been changed.
procedure TWinForm1.AxGrid1_CellStateChanged(sender: System.Object; e: AxEXGRIDLib._IGridEvents_CellStateChangedEvent);
begin
end;

with AxGrid1 do
begin
	BeginUpdate();
	SelBackMode := EXGRIDLib.BackModeEnum.exTransparent;
	with ConditionalFormats.Add('%CS0','check') do
	begin
		Bold := True;
	end;
	(Columns.Add('Items') as EXGRIDLib.Column).Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
	(Columns.Add(AxGrid1.ConditionalFormats.Item['check'].Expression) as EXGRIDLib.Column).FormatColumn := AxGrid1.ConditionalFormats.Item['check'].Expression;
	with Items do
	begin
		AddItem('Item 1');
		CellState[TObject(AddItem('Item 2')),TObject(0)] := 1;
		AddItem('Item 3');
	end;
	EndUpdate();
end
1005:
How can I use the CellState with ConditionalFormat/ComputedField/FormatColumn

// CellStateChanged event - Fired after cell's state has been changed.
procedure TWinForm1.AxGrid1_CellStateChanged(sender: System.Object; e: AxEXGRIDLib._IGridEvents_CellStateChangedEvent);
begin
end;

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exGroupLinesInsideLeaf;
	SelBackMode := EXGRIDLib.BackModeEnum.exTransparent;
	with (Columns.Add('Items') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with (Columns.Add('Format') as EXGRIDLib.Column) do
	begin
		FormatColumn := '%CS0';
		Caption := FormatColumn;
		Def[EXGRIDLib.DefColumnEnum.exCellForeColor] := TObject(8421504);
		Def[EXGRIDLib.DefColumnEnum.exHeaderForeColor] := Def[EXGRIDLib.DefColumnEnum.exCellForeColor];
	end;
	with Items do
	begin
		h := AddItem('Root');
		InsertItem(h,Nil,'Item 1');
		CellState[TObject(InsertItem(h,Nil,'Item 2')),TObject(0)] := 1;
		CellState[TObject(InsertItem(h,Nil,'Item 3')),TObject(0)] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1004:
How can I use the CellData with ConditionalFormat/ComputedField/FormatColumn

with AxGrid1 do
begin
	BeginUpdate();
	Columns.Add('Items');
	with (Columns.Add('Format') as EXGRIDLib.Column) do
	begin
		FormatColumn := '%CD0';
		Caption := FormatColumn;
		Def[EXGRIDLib.DefColumnEnum.exCellForeColor] := TObject(8421504);
		Def[EXGRIDLib.DefColumnEnum.exHeaderForeColor] := Def[EXGRIDLib.DefColumnEnum.exCellForeColor];
	end;
	with Items do
	begin
		CellData[TObject(AddItem('Item 1')),TObject(0)] := TObject(1234);
		CellData[TObject(AddItem('Item 2')),TObject(0)] := 'this is just an user data';
		CellData[TObject(AddItem('Item 3')),TObject(0)] := '1/1/2001';
	end;
	EndUpdate();
end
1003:
How can I use the CellValue/CellCaption with ConditionalFormat/ComputedField/FormatColumn

with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Items') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			EditType := EXGRIDLib.EditTypeEnum.DropDownListType;
			AddItem(1,'Item 1',Nil);
			AddItem(2,'Item 2',Nil);
			AddItem(3,'Item 3',Nil);
		end;
	end;
	with (Columns.Add('Format') as EXGRIDLib.Column) do
	begin
		FormatColumn := '%0';
		Caption := FormatColumn;
		Def[EXGRIDLib.DefColumnEnum.exCellForeColor] := TObject(8421504);
		Def[EXGRIDLib.DefColumnEnum.exHeaderForeColor] := Def[EXGRIDLib.DefColumnEnum.exCellForeColor];
		AllowSizing := False;
	end;
	with (Columns.Add('Format') as EXGRIDLib.Column) do
	begin
		FormatColumn := '%C0';
		Caption := FormatColumn;
		Def[EXGRIDLib.DefColumnEnum.exCellForeColor] := TObject(8421504);
		Def[EXGRIDLib.DefColumnEnum.exHeaderForeColor] := Def[EXGRIDLib.DefColumnEnum.exCellForeColor];
		AllowSizing := False;
	end;
	with Items do
	begin
		AddItem(TObject(1));
		CellValue[TObject(AddItem(TObject(0))),TObject(0)] := TObject(2);
		AddItem(TObject(2));
	end;
	EndUpdate();
end
1002:
Can I display the radio-button with a solid color

with AxGrid1 do
begin
	BeginUpdate();
	set_RadioImage(False,32699122);
	set_RadioImage(True,16777216);
	(Columns.Add('Check') as EXGRIDLib.Column).Def[EXGRIDLib.DefColumnEnum.exCellHasRadioButton] := TObject(True);
	with Items do
	begin
		AddItem('Radio 1');
		CellState[TObject(AddItem('Radio 2')),TObject(0)] := 1;
		AddItem('Radio 1');
	end;
	EndUpdate();
end
1001:
Can I display the check-box with a solid color

with AxGrid1 do
begin
	BeginUpdate();
	set_CheckImage(EXGRIDLib.CheckStateEnum.Unchecked,32699122);
	set_CheckImage(EXGRIDLib.CheckStateEnum.Checked,16777216);
	(Columns.Add('Check') as EXGRIDLib.Column).Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
	with Items do
	begin
		AddItem('Check 1');
		CellState[TObject(AddItem('Check 2')),TObject(0)] := 1;
		AddItem('Check 3');
	end;
	EndUpdate();
end