1196
Disable temporarily the column's sort, resize and drag and drop

with Grid1 do
begin
	BeginUpdate();
	SortBarVisible := True;
	SortBarCaption := '<fgcolor 808080><c>the header and the sort-bar are disabled (no drag and drop is allowed)';
	AllowGroupBy := True;
	HeaderEnabled := False;
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	(IUnknown(Columns.Add('Index')) as EXGRIDLib_TLB.Column).FormatColumn := '1 index ``';
	(IUnknown(Columns.Add('Pos')) as EXGRIDLib_TLB.Column).FormatColumn := '1 apos ``';
	(IUnknown(Columns.Add('Edit')) as EXGRIDLib_TLB.Column).Editor.EditType := EXGRIDLib_TLB.EditType;
	GridLineStyle := EXGRIDLib_TLB.exGridLinesGeometric;
	DrawGridLines := EXGRIDLib_TLB.exVLines;
	GridLineColor := RGB(224,224,224);
	EndUpdate();
end
1195
I wonder if it’s possible to highlight/select a column like Excel
// ColumnClick event - Fired after the user clicks on column's header.
procedure TForm1.Grid1ColumnClick(ASender: TObject; Column : IColumn);
begin
	// Column.Selected = True
	// FocusColumnIndex = Column.Index
	with Grid1 do
	begin
		Columns.Item[OleVariant(0)].Selected := False;
		Columns.Item[OleVariant(1)].Selected := False;
		Columns.Item[OleVariant(2)].Selected := False;
		Items.SelectAll();
	end
end;

with Grid1 do
begin
	BeginUpdate();
	Background[EXGRIDLib_TLB.exCursorHoverColumn] := $ffffffff;
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	MarkSearchColumn := False;
	SingleSel := False;
	FullRowSelect := EXGRIDLib_TLB.exRectSel;
	SortOnClick := EXGRIDLib_TLB.exNoSort;
	Columns.Add('Column1');
	Columns.Add('Column2');
	Columns.Add('Column3');
	with Items do
	begin
		DefaultItem := AddItem(OleVariant(0));
		CellValue[OleVariant(0),OleVariant(1)] := OleVariant(1);
		CellValue[OleVariant(0),OleVariant(2)] := OleVariant(2);
		DefaultItem := AddItem(OleVariant(3));
		CellValue[OleVariant(0),OleVariant(1)] := OleVariant(4);
		CellValue[OleVariant(0),OleVariant(2)] := OleVariant(5);
		DefaultItem := AddItem(OleVariant(6));
		CellValue[OleVariant(0),OleVariant(1)] := OleVariant(7);
		CellValue[OleVariant(0),OleVariant(2)] := OleVariant(8);
	end;
	EndUpdate();
end
1194
Is it possible to change the color of the border

with Grid1 do
begin
	BeginUpdate();
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABc8IQAAYAQGKIcBiAKBQAGaAoDDMMwyQwAAxDMK8EwsACEIrjKCRShyCYZRhGcTALBIBQSHAZZKgOJIRDENg2SANACRfIUaw1DqBZwkGZoWh' + 
	'GKgAShIEDwSKkQBlECeJpnKaqIomJYnDLQUw0NL9HQ3JaaKqnWLBVCWEQyVzEIyjBT0EzHMqtKrjaA6NpaP4oT7LEIydKFCRJNi0bSnGqaOj6UJSURRVq3TTFcTyAC3a' + 
	'huOo4cpXB4SWrOd41fYNOTQACzbCsSIcPxCe6GXjiNwjPKMWhnIq+M5wXIrJyKCYUaTcejzfgdU5XWqeMoyewMXxmZqbXw/fBYRrEL5vTqNXTzSA4BEB');
	Appearance := EXGRIDLib_TLB.AppearanceEnum($100ff00);
	ColumnAutoResize := True;
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	TreeColumnIndex := -1;
	DrawGridLines := EXGRIDLib_TLB.exAllLines;
	GridLineStyle := EXGRIDLib_TLB.exGridLinesGeometric;
	Columns.Add('Default');
	with Items do
	begin
		AddItem('before item');
		AddItem('item');
		AddItem('after item');
	end;
	EndUpdate();
end
1193
Expandable-caption

// AnchorClick event - Occurs when an anchor element is clicked.
procedure TForm1.Grid1AnchorClick(ASender: TObject; AnchorID : WideString;Options : WideString);
begin
	with Grid1 do
	begin
		OutputDebugString( AnchorID );
	end
end;

with Grid1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	TreeColumnIndex := -1;
	DrawGridLines := EXGRIDLib_TLB.exAllLines;
	GridLineStyle := EXGRIDLib_TLB.exGridLinesGeometric;
	BackColorAlternate := RGB(240,240,240);
	ShowFocusRect := False;
	Columns.Add('Default');
	with Items do
	begin
		AddItem('before item');
		h := AddItem('<solidline> <c><b>Bank Account</b></solidline><br>+ owner: String <r><a 1;e64=gA8ABzABvABsABpABkg8JABuABlAA+AAgAECMcTi4AMwAM4AjM' + 
	'GhEGOUVAA4AAwk8plcqihwAElg0wiUlOkOiUEgQvgcFhsKhkIhUQiUUnccj0gn0jmMagUlowAMNOpEfkMNkkmlEqrctjQmAAjAA5AA2sssHcbnkdq1Ln1QtVSjQAAEBA' + 
	'==>▲</a><br><solidline>+ balance: Currency = 0</solidline><br>+ deposit(amount: Currency)<r><a 2;e64=gA8ABjAA+AECMwAM8DABv' + 
	'ABshoAOQAEAAHAAGEWjEajMGNoAMoAOgANERMgAOcHAAvAEJhcEh0Qh0Tg0CmkqMMFlUuhkxiMTisXjNCjk6EwAEYAHIAG1MjY7lUsnkwh8/nUClk5gwAAEBA==>`' + 
	'50;</a><br>+ withdraw(amount: Currency)');
		CellValueFormat[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.exHTML;
		CellSingleLine[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.exCaptionWordWrap;
		AddItem('after item');
	end;
	EndUpdate();
end
1192
Expandable-caption

with Grid1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	TreeColumnIndex := -1;
	DrawGridLines := EXGRIDLib_TLB.exAllLines;
	GridLineStyle := EXGRIDLib_TLB.exGridLinesGeometric;
	BackColorAlternate := RGB(240,240,240);
	ShowFocusRect := False;
	Columns.Add('Default');
	with Items do
	begin
		AddItem('before item');
		h := AddItem('<solidline><b>Header</b></solidline><br>Line1<r><a ;exp=show lines>+</a><br>Line2<br>Line3');
		CellValueFormat[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.exHTML;
		CellSingleLine[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.exCaptionWordWrap;
		AddItem('after item');
	end;
	EndUpdate();
end
1191
Force hover-all feature
with Grid1 do
begin
	Background[EXGRIDLib_TLB.exScrollHoverAll] := $ffffffff;
end
1190
Disable hover-all feature (Windows 11 or greater)
with Grid1 do
begin
	Background[EXGRIDLib_TLB.exScrollHoverAll] := $1;
end
1189
Display a custom tooltip
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.Grid1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with Grid1 do
	begin
		ShowToolTip('new content','',Null,'+8','+8');
	end
end;


1188
Shows the tooltip of the object moved relative to its default position
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.Grid1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with Grid1 do
	begin
		ShowToolTip('<null>','<null>',Null,'+8','+8');
	end
end;

with Grid1 do
begin
	ColumnAutoResize := False;
	(IUnknown(Columns.Add('tootip')) as EXGRIDLib_TLB.Column).ToolTip := 'this is a tooltip assigned to a column';
end
1187
Delete all records
// ButtonClick event - Occurs when user clicks on the cell's button.
procedure TForm1.Grid1ButtonClick(ASender: TObject; Item : HITEM;ColIndex : Integer;Key : OleVariant);
begin
	with Grid1 do
	begin
		cmd := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Command'))) as ADODB_TLB.Command);
		with cmd do
		begin
			ActiveConnection := (IUnknown((IUnknown(Grid1.DataSource) as ADODB_TLB.Recordset).ActiveConnection) as ADODB_TLB.Connection);
			CommandText := 'Delete * from ORDERS';
			CommandType := 1;
			Execute(Null,Null,Null);
		end;
		(IUnknown(DataSource) as ADODB_TLB.Recordset).Requery(Null);
	end
end;

// Error event - Fired when an internal error occurs.
procedure TForm1.Grid1Error(ASender: TObject; Error : Integer;Description : WideString);
begin
	with Grid1 do
	begin
		OutputDebugString( Description );
	end
end;

with Grid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	ColumnAutoResize := False;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Select * From Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',1,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	ConditionalFormats.Add('%1=12345',Null).BackColor := $f0f0f0;
	with Items do
	begin
		LockedItemCount[EXGRIDLib_TLB.exTop] := 1;
		h := LockedItem[EXGRIDLib_TLB.exTop,0];
		ItemDivider[h] := 0;
		CellHasButton[OleVariant(h),OleVariant(0)] := True;
		CellValue[OleVariant(h),OleVariant(0)] := 'Requery (delete all records, using ADODB.Command)';
		CellHAlignment[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.CenterAlignment;
	end;
	EndUpdate();
end
1186
How can I get a cell that shows the sum of a column of minutes in hours + minutes format

with Grid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	with (IUnknown(Columns.Add('Minutes')) as EXGRIDLib_TLB.Column) do
	begin
		SortType := EXGRIDLib_TLB.SortNumeric;
		with Editor do
		begin
			EditType := EXGRIDLib_TLB.EditType;
			Numeric := EXGRIDLib_TLB.exInteger;
		end;
	end;
	with Items do
	begin
		AddItem(OleVariant(10));
		AddItem(OleVariant(20));
		AddItem(OleVariant(30));
		AddItem(OleVariant(40));
		AddItem(OleVariant(50));
		h := AddItem('sum(all,dir,dbl(%0))');
		SelectableItem[h] := False;
		SortableItem[h] := False;
		CellValueFormat[OleVariant(h),OleVariant(0)] := Integer(EXGRIDLib_TLB.exTotalField) Or Integer(EXGRIDLib_TLB.exHTML);
		CellHAlignment[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.RightAlignment;
		FormatCell[OleVariant(h),OleVariant(0)] := '''<b>HH:NN</b>: ''+ (int(value/60) lpad ''00'') + '':'' + ((value mod 60) lpad ''00'')';
	end;
	EndUpdate();
end
1185
Highlight the match once the filter is applied

// FilterChange event - Occurs when filter was changed.
procedure TForm1.Grid1FilterChange(ASender: TObject; );
begin
	with Grid1 do
	begin
		format := FormatABC('`lower(value) replace lower(''` + value + `'') with ''<bgcolor 000000><fgcolor FFFFFF>` + value  + `</fgcolor></bgcolor>''`',OleVariant(FilterBarPromptPattern),Null,Null);
		Columns.Item[OleVariant(0)].FormatColumn := format;
		Columns.Item[OleVariant(1)].FormatColumn := format;
		Columns.Item[OleVariant(2)].FormatColumn := format;
	end
end;

with Grid1 do
begin
	BeginUpdate();
	SelBackColor := BackColor;
	SelForeColor := ForeColor;
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	HeaderHeight := 23;
	BackColorLevelHeader := BackColor;
	FilterBarCaption := '`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)';
	FilterBarPromptVisible := Integer(EXGRIDLib_TLB.exFilterBarCompact) Or Integer(EXGRIDLib_TLB.exFilterBarCaptionVisible) Or Integer(EXGRIDLib_TLB.exFilterBarVisible) Or Integer(EXGRIDLib_TLB.exFilterBarPromptVisible);
	FilterBarBackColor := BackColor;
	FilterBarPromptPattern := 'and';
	with Columns do
	begin
		with (IUnknown(Add('Name')) as EXGRIDLib_TLB.Column) do
		begin
			Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
			FormatColumn := 'lower(value)';
		end;
		with (IUnknown(Add('Title')) as EXGRIDLib_TLB.Column) do
		begin
			Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
			FormatColumn := 'lower(value)';
		end;
		with (IUnknown(Add('City')) as EXGRIDLib_TLB.Column) do
		begin
			Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
			FormatColumn := 'lower(value)';
		end;
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Andrew Fuller');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := AddItem('Janet Leverling');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := AddItem('Margaret Peacock');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond';
		h0 := AddItem('Steven Buchanan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Michael Suyama');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Robert King');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Laura Callahan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Anne Dodsworth');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
	end;
	EndUpdate();
end
1184
The count of filtered items includes the group-parents. How can I exclude them from count

with Grid1 do
begin
	BeginUpdate();
	DrawGridLines := EXGRIDLib_TLB.exVLines;
	HeaderAppearance := EXGRIDLib_TLB.Flat;
	HeaderHeight := 24;
	SortBarHeight := 28;
	SortBarVisible := True;
	AllowGroupBy := True;
	Columns.Add('Col 1');
	Columns.Add('Col 2');
	with Items do
	begin
		CellValue[OleVariant(AddItem('219 Smith')),OleVariant(1)] := 'Ignacio 1234';
		CellValue[OleVariant(AddItem('1666 County Road 309A')),OleVariant(1)] := '897 Manassa';
		CellValue[OleVariant(AddItem('38 Lone Pine')),OleVariant(1)] := 'Durango 11';
		CellValue[OleVariant(AddItem('612 Jachim Street')),OleVariant(1)] := 'Lamar 222';
	end;
	Layout := 'MultipleSort="C1:1"';
	FilterBarCaption := '`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? leafitemcount + ` result(s)` : ``)';
	FilterBarPromptVisible := Integer(EXGRIDLib_TLB.exFilterBarCompact) Or Integer(EXGRIDLib_TLB.exFilterBarCaptionVisible) Or Integer(EXGRIDLib_TLB.exFilterBarVisible) Or Integer(EXGRIDLib_TLB.exFilterBarPromptVisible);
	FilterBarPromptType := Integer(EXGRIDLib_TLB.exFilterPromptCaseSensitive) Or Integer(EXGRIDLib_TLB.exFilterPromptContainsAll);
	FilterBarPromptPattern := '12';
	FilterBarBackColor := BackColor;
	EndUpdate();
end
1183
Is it possible to display the count of filtered items

with Grid1 do
begin
	BeginUpdate();
	DrawGridLines := EXGRIDLib_TLB.exVLines;
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	HeaderHeight := 24;
	Columns.Add('Col 1');
	Columns.Add('Col 2');
	with Items do
	begin
		CellValue[OleVariant(AddItem('219 Smith')),OleVariant(1)] := 'Ignacio 1234';
		CellValue[OleVariant(AddItem('1666 County Road 309A')),OleVariant(1)] := '897 Manassa';
		CellValue[OleVariant(AddItem('38 Lone Pine')),OleVariant(1)] := 'Durango 11';
		CellValue[OleVariant(AddItem('612 Jachim Street')),OleVariant(1)] := 'Lamar 222';
	end;
	FilterBarCaption := '`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)';
	FilterBarPromptVisible := Integer(EXGRIDLib_TLB.exFilterBarCompact) Or Integer(EXGRIDLib_TLB.exFilterBarCaptionVisible) Or Integer(EXGRIDLib_TLB.exFilterBarVisible) Or Integer(EXGRIDLib_TLB.exFilterBarPromptVisible);
	FilterBarPromptType := Integer(EXGRIDLib_TLB.exFilterPromptCaseSensitive) Or Integer(EXGRIDLib_TLB.exFilterPromptContainsAll);
	FilterBarPromptPattern := '12';
	FilterBarBackColor := BackColor;
	EndUpdate();
end
1182
GroupBy code

with Grid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	ContinueColumnScroll := False;
	CountLockedColumns := 1;
	BackColorLock := RGB(248,248,248);
	HasLines := EXGRIDLib_TLB.exSolidLine;
	LinesAtRoot := EXGRIDLib_TLB.exGroupLinesOutside;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	SortBarVisible := True;
	SingleSort := False;
	AllowGroupBy := True;
	Columns.Item[OleVariant(0)].Width := 128;
	Layout := 'MultipleSort = "C12:1 C1:2"';
	EndUpdate();
end
1181
ADOR, MDB (JET)
with Grid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.mdb',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	EndUpdate();
end
1180
Editors (ImageSize = 32)

with Grid1 do
begin
	BeginUpdate();
	ImageSize := 32;
	DefaultItemHeight := 36;
	HeaderHeight := DefaultItemHeight;
	SortBarHeight := DefaultItemHeight;
	Font.Size := 16;
	FilterBarFont.Size := Grid1.Font.Size;
	ToolTipFont.Size := Grid1.Font.Size;
	Indent := 26;
	Images('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');
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABfICg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6' + 
	'CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EM' + 
	'RwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsOatVqjG5sYjcGC3La9cz3Pq/bpuDCbMxuaK1TrYXr1TTrcofBDldAxXRKDxR' + 
	'DWVhLnYOw9i6XxzjuXprCaOoKB6EwbiCZZCGOdZYlcT4xHmbhMnwNxtn+G5bmqdZ7n4Pw/i+X5zm+dQ9g4CAFjsfAJheOI8HsDoWDWTB/lwSAQkmA5PEgRYoDyDwYFYF' + 
	'oFmGCBmBqBphDgRJ0gOTIYBGRB/lyRh0iSCZbjYWJzgWDwIjYLoLmMCJGDKDJjBgWgqG6YhyhGHRzA2aJ1mCABOAiOJvhCZBJBYRoRmSCQmEqEQimkAZgg8TZnDCV4Uk' + 
	'mCUmBKZYJGYWoWCUUhiFMNZckNUh2GENoaGaGZmgmJhqhqZpGGIEx2GYIxSGGGJdggWJth2Z4JmYeoemeSZ2H6H4hGmQhihyTRHGYLg7CiCgmgqIpokoNoOiOaJ4jqAo' + 
	'chqaZGgaCxpAoZoaiaaJqEmWIcGgShcnCJwqEqFoR3YOoFlgchflqNouiuawHmWSYqGkWZQhcatzmaOoumuSp2j6L5bBaKo0GQKRnGGCxqiyCwmkqMpsksNpOGUGI7A0' + 
	'ew1G0Rxlg0PptgsZuDG2Sx2l6N5tnYNZZjUDRXDCVo5l2FoymqOpukuNpujubwLjmWY5k0ZwxkaFxYlWdp6j6b5Lnafo/nABQdg2FxcUsY5BkmXAkmeQpckwNRrkKTh8' + 
	'CSHZBk4NwyC4KxxgMDwakOMZDn8GgwnGAo2C4cwthMcwmCcMoHBMHRehwTIghySYNksZwcH4HBMEsHx5hyPItiweYxnwSZEH4Mozn0fR+DMAo7EYJ50gkdZelKdNql2U' + 
	'gJn0GIukwH4HicQRai2GI4mSVpNl0dZGledgNgcYpYDWUx3FsOQi5YV5anaTY3G6W53A2RxylydxFjiaxEFCCgBBAQ==');
		Add(2,'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' + 
	'RBCCQAgQEA==');
		Add(3,'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');
		Add(4,'gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL' + 
	'UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBU' + 
	'rGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3' + 
	'NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDsY' + 
	'YDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVm' + 
	'WCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVo' + 
	'WiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiS' + 
	'e41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbhF' + 
	'CcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==');
	end;
	BackColorHeader := $4c6c6c6;
	SelBackColor := $4000000;
	SelForeColor := RGB(0,0,1);
	ShowFocusRect := False;
	CheckImage[EXGRIDLib_TLB.Unchecked] := 16777216;
	CheckImage[EXGRIDLib_TLB.Checked] := 33554432;
	CheckImage[EXGRIDLib_TLB.PartialChecked] := 50331648;
	(IUnknown(Columns.Add('Editors')) as EXGRIDLib_TLB.Column).Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
	with Items do
	begin
		CellEditor[OleVariant(AddItem('(ReadOnly)')),OleVariant(0)].EditType := EXGRIDLib_TLB.ReadOnly;
		CellEditor[OleVariant(AddItem('(EditType)')),OleVariant(0)].EditType := EXGRIDLib_TLB.EditType;
		h := AddItem('Value 1');
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.DropDownType;
			AddItem(1,'Value 1',OleVariant(1));
			AddItem(2,'Value 2',OleVariant(2));
			AddItem(3,'Value 3',OleVariant(3));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownType)''';
		h := AddItem(OleVariant(1));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.DropDownListType;
			DropDownAutoWidth := EXGRIDLib_TLB.exDropDownEditorWidth;
			AddItem(1,'Nancy Davolio',OleVariant(1));
			AddItem(2,'Andrew Fuller',OleVariant(2));
			AddItem(3,'Janet Leverling',OleVariant(3));
			AddItem(4,'Peacock Margaret',OleVariant(3));
			AddItem(5,'Steven Buchanan',OleVariant(2));
			AddItem(6,'Michael Suyama',OleVariant(1));
			AddItem(7,'Robert King',OleVariant(2));
			AddItem(8,'Laura Callahan',OleVariant(3));
			AddItem(9,'Anne Dodsworth',OleVariant(2));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownList - single column list)''';
		h := AddItem(OleVariant(1));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.DropDownListType;
			DropDownAutoWidth := EXGRIDLib_TLB.exDropDownEditorWidth;
			AddItem(1,'Nancy Davolio',OleVariant(1));
			AddItem(2,'Andrew Fuller',OleVariant(2));
			InsertItem(3,'Janet Leverling',OleVariant(3),OleVariant(2));
			InsertItem(4,'Peacock Margaret',OleVariant(3),OleVariant(2));
			InsertItem(5,'Steven Buchanan',OleVariant(2),OleVariant(2));
			InsertItem(6,'Michael Suyama',OleVariant(1),OleVariant(5));
			InsertItem(7,'Robert King',OleVariant(2),OleVariant(2));
			InsertItem(8,'Laura Callahan',OleVariant(3),OleVariant(2));
			InsertItem(9,'Anne Dodsworth',OleVariant(2),OleVariant(5));
			ExpandAll();
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownList - single column tree)''';
		h := AddItem(OleVariant(1));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.DropDownListType;
			DropDownAutoWidth := EXGRIDLib_TLB.exDropDownEditorWidth;
			Option[EXGRIDLib_TLB.exDropDownColumnCaption] := 'Name¦Title¦City¦Phone';
			Option[EXGRIDLib_TLB.exDropDownColumnWidth] := '312¦¦¦96';
			AddItem(1,'Nancy Davolio¦Sales Representative¦Seattle¦(206) 555-9857',OleVariant(1));
			AddItem(2,'Andrew Fuller¦<b>Vice President</b>, Sales¦Tacoma¦(206) 555-9482',OleVariant(2));
			AddItem(3,'Janet Leverling¦Sales Representative¦Kirkland¦(206) 555-3412',OleVariant(3));
			AddItem(4,'Peacock Margaret¦Sales Representative¦Redmond¦(206) 555-8122',OleVariant(3));
			AddItem(5,'Steven Buchanan¦Sales Manager¦London¦(71) 555-4848',OleVariant(2));
			AddItem(6,'Michael Suyama¦Sales Representative¦London¦(71) 555-7773',OleVariant(1));
			AddItem(7,'Robert King¦Sales Representative¦Kirkland¦(71) 555-5598',OleVariant(2));
			AddItem(8,'Laura Callahan¦Inside Sales Coordinator¦Seattle¦(206) 555-1189',OleVariant(3));
			AddItem(9,'Anne Dodsworth¦Sales Representative¦London¦(71) 555-4444',OleVariant(2));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownList - multiple columns list)''';
		h := AddItem(OleVariant(1));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.DropDownListType;
			DropDownAutoWidth := EXGRIDLib_TLB.exDropDownEditorWidth;
			Option[EXGRIDLib_TLB.exDropDownColumnCaption] := 'Name¦Title¦City¦Phone';
			Option[EXGRIDLib_TLB.exDropDownColumnWidth] := '312¦¦¦96';
			AddItem(1,'Nancy Davolio¦Sales Representative¦Seattle¦(206) 555-9857',OleVariant(1));
			AddItem(2,'Andrew Fuller¦<b>Vice President</b>, Sales¦Tacoma¦(206) 555-9482',OleVariant(2));
			InsertItem(3,'Janet Leverling¦Sales Representative¦Kirkland¦(206) 555-3412',OleVariant(3),OleVariant(2));
			InsertItem(4,'Peacock Margaret¦Sales Representative¦Redmond¦(206) 555-8122',OleVariant(3),OleVariant(2));
			InsertItem(5,'Steven Buchanan¦Sales Manager¦London¦(71) 555-4848',OleVariant(2),OleVariant(2));
			InsertItem(6,'Michael Suyama¦Sales Representative¦London¦(71) 555-7773',OleVariant(1),OleVariant(5));
			InsertItem(7,'Robert King¦Sales Representative¦Kirkland¦(71) 555-5598',OleVariant(2),OleVariant(2));
			InsertItem(8,'Laura Callahan¦Inside Sales Coordinator¦Seattle¦(206) 555-1189',OleVariant(3),OleVariant(2));
			InsertItem(9,'Anne Dodsworth¦Sales Representative¦London¦(71) 555-4444',OleVariant(2),OleVariant(5));
			ExpandAll();
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownList - multiple columns tree)''';
		h := AddItem(OleVariant(100));
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXGRIDLib_TLB.SpinType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (SpinType)''';
		CellEditor[OleVariant(AddItem('(MemoType)')),OleVariant(0)].EditType := EXGRIDLib_TLB.MemoType;
		h := AddItem(OleVariant(3));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.CheckListType;
			AddItem(1,'Border',OleVariant(1));
			AddItem(2,'Single',OleVariant(2));
			AddItem(4,'Frame',OleVariant(3));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (CheckListType)''';
		h := AddItem('193.226.40.161');
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			Mask := '{0,255}.{0,255}.{0,255}.{0,255}';
			EditType := EXGRIDLib_TLB.MaskType;
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (MaskType)''';
		h := AddItem(OleVariant(65280));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.ColorType;
			Mask := '`RGB(`{0,255}\,{0,255}\,{0,255}`)`;;0';
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (ColorType)''';
		h := AddItem('Tahoma');
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXGRIDLib_TLB.FontType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (FontType)''';
		h := AddItem('gBHJJGHA5MIwAEIe4AAAFhwbiAliQwig7ixFjBQjRbjhljxwkB7kSFkiQkyblCllSwli7lzFmDQmTbmjlmzwnD7nQBnk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1YhgAEL5AgBhj/AAssMJthABFof4JDhIWCgYKDBATFT8M6hUIFAQAEQCCDwYF/QoWDZCRBgOKgIYHCQXMisKBAEQAAgOBZaSgQhjERANKQiZhIWamY' + 
	'yIBQ6FzcNKxQLJT4ADA4RjwObAAidBYdHwABQgUxMQYZEI0cD4OgnYKaKyzIRFNQx2YCKoFHScYD0ADXQwUAgwLoLQDqaCWBJoNQ9NBxFJTVQORgiarqSABbamGwtDAw' + 
	'BUWhQmqYALnOFQvGYPA4m6AwKhkZxKj2PBWC0SZCgmVY6CwIJgieBAniubRKHgaYgiwQwGiCfxGDWbBRmGZYIi2VwGnAexxGUSwUFiaR+hQPbBgOCoLCIHh4DAARCmQG' + 
	'4AlgNxuhwWgpFAEQUhuOxOk0NrhAaQoBmgPYdFSIZPjYGYbn+HhgEoAA7HMBIOjUM51AoPojHkEwVlET5slgWZtAEUBdjeSoeF6X5/rQRRSi+QB6GychsEAfZshKYABG' + 
	'QZorlAOgMBqEgAjYHB2jqSoigmYBLk+QZnBqGhggAEwImgbojgoIwSE+MxUHiS4REQCQWluD48B+JJoL+YQikuaI9AALgLmsJQfnSdAvDkCJEhIIIBgOegLEiPBqCyCA' + 
	'AjcCwgAAIJBhQBQkHGL4gDaNBokkZQMiwUAuioJQiCAQYsHMcwwEIeoigAYIogsGIwFKIYICIWguEoPgQhsawBASGgwCuJwLH8K4LigAIaDwbxMAOKxbisPwfASQATFA' + 
	'SoagIEYwgcSoKGiAA/mEdIuiGPxCmObIlhMIJNHONxFH8EpPCGeB+noEpBBSSRjCsPZEiyKhgjAH5whSdLEjwDxjC8TxVEMFRzFWJJZBUSI0gQEQLBOM4VHkIg1D0CAJ' + 
	'DQNg/p4AAdoC');
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXGRIDLib_TLB.PictureType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (PictureType)''';
		CellEditor[OleVariant(AddItem('(ButtonType)')),OleVariant(0)].EditType := EXGRIDLib_TLB.ButtonType;
		h := AddItem(OleVariant(25));
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXGRIDLib_TLB.ProgressBarType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (ProgressBarType)''';
		h := AddItem('Value 1');
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.PickEditType;
			AddItem(1,'Value 1',OleVariant(1));
			AddItem(2,'Value 2',OleVariant(2));
			AddItem(3,'Value 3',OleVariant(3));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (PickEditType)''';
		CellEditor[OleVariant(AddItem('(LinkEditType)')),OleVariant(0)].EditType := EXGRIDLib_TLB.LinkEditType;
		with CellEditor[OleVariant(AddItem('(UserEditorType)')),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.UserEditorType;
			UserEditor('Exontrol.ComboBox','');
			with UserEditorObject do
			begin
			end;
		end;
		h := AddItem(OleVariant(255));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.ColorListType;
			Option[EXGRIDLib_TLB.exColorListShowName] := OleVariant(True);
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (ColorListType)''';
		CellEditor[OleVariant(AddItem(OleVariant(65280))),OleVariant(0)].EditType := EXGRIDLib_TLB.ColorListType;
		CellEditor[OleVariant(AddItem('(MemoDropDownType)')),OleVariant(0)].EditType := EXGRIDLib_TLB.MemoDropDownType;
		with CellEditor[OleVariant(AddItem(OleVariant(-1))),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.CheckValueType;
			Option[EXGRIDLib_TLB.exCheckValue2] := OleVariant(1);
		end;
		h := AddItem(OleVariant(50));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.SliderType;
			Option[EXGRIDLib_TLB.exSliderWidth] := OleVariant(-60);
			Option[EXGRIDLib_TLB.exSliderTickFrequency] := OleVariant(10);
			Option[EXGRIDLib_TLB.exSliderTickStyle] := OleVariant(2);
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (SliderType)''';
		h := AddItem(OleVariant(100));
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXGRIDLib_TLB.CalculatorType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (CalculatorType)''';
		EnsureVisibleItem(h);
	end;
	EndUpdate();
end
1179
Editors (ImageSize = 16, default)

with Grid1 do
begin
	BeginUpdate();
	ImageSize := 16;
	Images('gBJJgBAIDAAEg4ACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjMLjABAAgjUYkUnlUrlktl0vmExmUzmk1m03nE5nU7nkrQCAntBoVDolFo1HoM/ADAplLptImdMYFOqd' + 
	'SqlXq1QrVbrlGpVWsFNrNdnNjsk7pQAtNroFnt0sh8Yr9iulTuNxs1Eu8OiT/vsnsNVutXlk/oGGtVKxGLxWNtsZtN8iUYuNvy0Zvd+xNYwdwvl4p870GCqc8vOeuVtt' + 
	'mp1knyOayWVy+WzN/ze1wOElenm+12WUz/Bv2/3UyyWrzeutux2GSyGP2dQ33C1ur3GD3M4zUNzHdlWjq/E3nGzVpjWv4HA7fRy/Tv2IrN8rPW6nZ3ve7mUlfu20Z8ac' + 
	'vQyb+vY9jasYoDwMm+LytVBDqKG3z8O3Cb8P+mkAuY9cCQ2uL4KaxDKvkp8RNLEjqugnrwQo/UWPzFyeQw5sNLZFENrI4kOqU66pw8uzmOKvTqNqjULJvGL1JO48GtTG' + 
	'sbLdEL3scxLlyiw8dQeoUVxdLTtyKmUjwGlslRPJsnK1HbAKbKCrsQo8uQk/CeP44iaR/ATnTNPLvyxPU+z9P9AUDQVBowiofJXQ6Oo+kKMpIkjztE4TKn4P6JowfgPn' + 
	'wD5/nAjB8AOeAPo0eAA1IAFH07UhAIMpYAVIYFHqBUhwVjV1S1EtQAHxW65V0AZwAeuQAnwB5gAPYViEDVhwAHTQBkCjB4gOhwDmCyhH0sACAg==');
	with VisualAppearance do
	begin
		Add(4,'gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL' + 
	'UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBU' + 
	'rGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3' + 
	'NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDsY' + 
	'YDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVm' + 
	'WCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVo' + 
	'WiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiS' + 
	'e41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbhF' + 
	'CcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==');
	end;
	(IUnknown(Columns.Add('Editors')) as EXGRIDLib_TLB.Column).Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
	BackColorHeader := $4c6c6c6;
	with Items do
	begin
		CellEditor[OleVariant(AddItem('(ReadOnly)')),OleVariant(0)].EditType := EXGRIDLib_TLB.ReadOnly;
		CellEditor[OleVariant(AddItem('(EditType)')),OleVariant(0)].EditType := EXGRIDLib_TLB.EditType;
		h := AddItem('Value 1');
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.DropDownType;
			AddItem(1,'Value 1',OleVariant(1));
			AddItem(2,'Value 2',OleVariant(2));
			AddItem(3,'Value 3',OleVariant(3));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownType)''';
		h := AddItem(OleVariant(1));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.DropDownListType;
			DropDownAutoWidth := EXGRIDLib_TLB.exDropDownEditorWidth;
			AddItem(1,'Nancy Davolio',OleVariant(1));
			AddItem(2,'Andrew Fuller',OleVariant(2));
			AddItem(3,'Janet Leverling',OleVariant(3));
			AddItem(4,'Peacock Margaret',OleVariant(3));
			AddItem(5,'Steven Buchanan',OleVariant(2));
			AddItem(6,'Michael Suyama',OleVariant(1));
			AddItem(7,'Robert King',OleVariant(2));
			AddItem(8,'Laura Callahan',OleVariant(3));
			AddItem(9,'Anne Dodsworth',OleVariant(2));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownList - single column list)''';
		h := AddItem(OleVariant(1));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.DropDownListType;
			DropDownAutoWidth := EXGRIDLib_TLB.exDropDownEditorWidth;
			AddItem(1,'Nancy Davolio',OleVariant(1));
			AddItem(2,'Andrew Fuller',OleVariant(2));
			InsertItem(3,'Janet Leverling',OleVariant(3),OleVariant(2));
			InsertItem(4,'Peacock Margaret',OleVariant(3),OleVariant(2));
			InsertItem(5,'Steven Buchanan',OleVariant(2),OleVariant(2));
			InsertItem(6,'Michael Suyama',OleVariant(1),OleVariant(5));
			InsertItem(7,'Robert King',OleVariant(2),OleVariant(2));
			InsertItem(8,'Laura Callahan',OleVariant(3),OleVariant(2));
			InsertItem(9,'Anne Dodsworth',OleVariant(2),OleVariant(5));
			ExpandAll();
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownList - single column tree)''';
		h := AddItem(OleVariant(1));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.DropDownListType;
			DropDownAutoWidth := EXGRIDLib_TLB.exDropDownEditorWidth;
			Option[EXGRIDLib_TLB.exDropDownColumnCaption] := 'Name¦Title¦City¦Phone';
			Option[EXGRIDLib_TLB.exDropDownColumnWidth] := '312¦¦¦96';
			AddItem(1,'Nancy Davolio¦Sales Representative¦Seattle¦(206) 555-9857',OleVariant(1));
			AddItem(2,'Andrew Fuller¦<b>Vice President</b>, Sales¦Tacoma¦(206) 555-9482',OleVariant(2));
			AddItem(3,'Janet Leverling¦Sales Representative¦Kirkland¦(206) 555-3412',OleVariant(3));
			AddItem(4,'Peacock Margaret¦Sales Representative¦Redmond¦(206) 555-8122',OleVariant(3));
			AddItem(5,'Steven Buchanan¦Sales Manager¦London¦(71) 555-4848',OleVariant(2));
			AddItem(6,'Michael Suyama¦Sales Representative¦London¦(71) 555-7773',OleVariant(1));
			AddItem(7,'Robert King¦Sales Representative¦Kirkland¦(71) 555-5598',OleVariant(2));
			AddItem(8,'Laura Callahan¦Inside Sales Coordinator¦Seattle¦(206) 555-1189',OleVariant(3));
			AddItem(9,'Anne Dodsworth¦Sales Representative¦London¦(71) 555-4444',OleVariant(2));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownList - multiple columns list)''';
		h := AddItem(OleVariant(1));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.DropDownListType;
			DropDownAutoWidth := EXGRIDLib_TLB.exDropDownEditorWidth;
			Option[EXGRIDLib_TLB.exDropDownColumnCaption] := 'Name¦Title¦City¦Phone';
			Option[EXGRIDLib_TLB.exDropDownColumnWidth] := '312¦¦¦96';
			AddItem(1,'Nancy Davolio¦Sales Representative¦Seattle¦(206) 555-9857',OleVariant(1));
			AddItem(2,'Andrew Fuller¦<b>Vice President</b>, Sales¦Tacoma¦(206) 555-9482',OleVariant(2));
			InsertItem(3,'Janet Leverling¦Sales Representative¦Kirkland¦(206) 555-3412',OleVariant(3),OleVariant(2));
			InsertItem(4,'Peacock Margaret¦Sales Representative¦Redmond¦(206) 555-8122',OleVariant(3),OleVariant(2));
			InsertItem(5,'Steven Buchanan¦Sales Manager¦London¦(71) 555-4848',OleVariant(2),OleVariant(2));
			InsertItem(6,'Michael Suyama¦Sales Representative¦London¦(71) 555-7773',OleVariant(1),OleVariant(5));
			InsertItem(7,'Robert King¦Sales Representative¦Kirkland¦(71) 555-5598',OleVariant(2),OleVariant(2));
			InsertItem(8,'Laura Callahan¦Inside Sales Coordinator¦Seattle¦(206) 555-1189',OleVariant(3),OleVariant(2));
			InsertItem(9,'Anne Dodsworth¦Sales Representative¦London¦(71) 555-4444',OleVariant(2),OleVariant(5));
			ExpandAll();
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownList - multiple columns tree)''';
		h := AddItem(OleVariant(100));
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXGRIDLib_TLB.SpinType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (SpinType)''';
		CellEditor[OleVariant(AddItem('(MemoType)')),OleVariant(0)].EditType := EXGRIDLib_TLB.MemoType;
		h := AddItem(OleVariant(3));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.CheckListType;
			AddItem(1,'Border',OleVariant(1));
			AddItem(2,'Single',OleVariant(2));
			AddItem(4,'Frame',OleVariant(3));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (CheckListType)''';
		h := AddItem('193.226.40.161');
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			Mask := '{0,255}.{0,255}.{0,255}.{0,255}';
			EditType := EXGRIDLib_TLB.MaskType;
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (MaskType)''';
		h := AddItem(OleVariant(65280));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.ColorType;
			Mask := '`RGB(`{0,255}\,{0,255}\,{0,255}`)`;;0';
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (ColorType)''';
		h := AddItem('Tahoma');
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXGRIDLib_TLB.FontType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (FontType)''';
		h := AddItem('gBHJJGHA5MIwAEIe4AAAFhwbiAliQwig7ixFjBQjRbjhljxwkB7kSFkiQkyblCllSwli7lzFmDQmTbmjlmzwnD7nQBnk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1YhgAEL5AgBhj/AAssMJthABFof4JDhIWCgYKDBATFT8M6hUIFAQAEQCCDwYF/QoWDZCRBgOKgIYHCQXMisKBAEQAAgOBZaSgQhjERANKQiZhIWamY' + 
	'yIBQ6FzcNKxQLJT4ADA4RjwObAAidBYdHwABQgUxMQYZEI0cD4OgnYKaKyzIRFNQx2YCKoFHScYD0ADXQwUAgwLoLQDqaCWBJoNQ9NBxFJTVQORgiarqSABbamGwtDAw' + 
	'BUWhQmqYALnOFQvGYPA4m6AwKhkZxKj2PBWC0SZCgmVY6CwIJgieBAniubRKHgaYgiwQwGiCfxGDWbBRmGZYIi2VwGnAexxGUSwUFiaR+hQPbBgOCoLCIHh4DAARCmQG' + 
	'4AlgNxuhwWgpFAEQUhuOxOk0NrhAaQoBmgPYdFSIZPjYGYbn+HhgEoAA7HMBIOjUM51AoPojHkEwVlET5slgWZtAEUBdjeSoeF6X5/rQRRSi+QB6GychsEAfZshKYABG' + 
	'QZorlAOgMBqEgAjYHB2jqSoigmYBLk+QZnBqGhggAEwImgbojgoIwSE+MxUHiS4REQCQWluD48B+JJoL+YQikuaI9AALgLmsJQfnSdAvDkCJEhIIIBgOegLEiPBqCyCA' + 
	'AjcCwgAAIJBhQBQkHGL4gDaNBokkZQMiwUAuioJQiCAQYsHMcwwEIeoigAYIogsGIwFKIYICIWguEoPgQhsawBASGgwCuJwLH8K4LigAIaDwbxMAOKxbisPwfASQATFA' + 
	'SoagIEYwgcSoKGiAA/mEdIuiGPxCmObIlhMIJNHONxFH8EpPCGeB+noEpBBSSRjCsPZEiyKhgjAH5whSdLEjwDxjC8TxVEMFRzFWJJZBUSI0gQEQLBOM4VHkIg1D0CAJ' + 
	'DQNg/p4AAdoC');
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXGRIDLib_TLB.PictureType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (PictureType)''';
		CellEditor[OleVariant(AddItem('(ButtonType)')),OleVariant(0)].EditType := EXGRIDLib_TLB.ButtonType;
		h := AddItem(OleVariant(25));
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXGRIDLib_TLB.ProgressBarType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (ProgressBarType)''';
		h := AddItem('Value 1');
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.PickEditType;
			AddItem(1,'Value 1',OleVariant(1));
			AddItem(2,'Value 2',OleVariant(2));
			AddItem(3,'Value 3',OleVariant(3));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (PickEditType)''';
		CellEditor[OleVariant(AddItem('(LinkEditType)')),OleVariant(0)].EditType := EXGRIDLib_TLB.LinkEditType;
		with CellEditor[OleVariant(AddItem('(UserEditorType)')),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.UserEditorType;
			UserEditor('Exontrol.ComboBox','');
			with UserEditorObject do
			begin
			end;
		end;
		h := AddItem(OleVariant(255));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.ColorListType;
			Option[EXGRIDLib_TLB.exColorListShowName] := OleVariant(True);
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (ColorListType)''';
		CellEditor[OleVariant(AddItem(OleVariant(65280))),OleVariant(0)].EditType := EXGRIDLib_TLB.ColorListType;
		CellEditor[OleVariant(AddItem('(MemoDropDownType)')),OleVariant(0)].EditType := EXGRIDLib_TLB.MemoDropDownType;
		with CellEditor[OleVariant(AddItem(OleVariant(-1))),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.CheckValueType;
			Option[EXGRIDLib_TLB.exCheckValue2] := OleVariant(1);
		end;
		h := AddItem(OleVariant(50));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXGRIDLib_TLB.SliderType;
			Option[EXGRIDLib_TLB.exSliderWidth] := OleVariant(-60);
			Option[EXGRIDLib_TLB.exSliderTickFrequency] := OleVariant(10);
			Option[EXGRIDLib_TLB.exSliderTickStyle] := OleVariant(2);
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (SliderType)''';
		h := AddItem(OleVariant(100));
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXGRIDLib_TLB.CalculatorType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (CalculatorType)''';
		EnsureVisibleItem(h);
	end;
	EndUpdate();
end
1178
Re-order the cell's caption, icons and images/pictures

with Grid1 do
begin
	BeginUpdate();
	Images('gBJJgBAICAADAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEahkZAIAEEbjMjlErlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrlTiFdib/sNjr9gs1nldlrlqtFtt0stlguNvulyh91ud1vVVvNuvt7wFHr9/vl3luEwOJouIq+Dw2KyGRyWTymVy2XzGZzUuiw+lmej0gkUaksljaAnmDc' + 
	'D/cEbf7w1+ufD/fEbeB028bYAO3enB6AB++4EoA4A4sb4vHjXJ4nG5vKAHA4ca6XBjTAD/Y2x/eB/jcB');
	with (IUnknown(Columns.Add('ToLeft')) as EXGRIDLib_TLB.Column) do
	begin
		Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
	end;
	with (IUnknown(Columns.Add('ToRight')) as EXGRIDLib_TLB.Column) do
	begin
		Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
		Def[EXGRIDLib_TLB.exCellDrawPartsOrder] := 'caption,picture,icons,icon,check';
	end;
	DefaultItemHeight := 32;
	DrawGridLines := EXGRIDLib_TLB.exVLines;
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	with Items do
	begin
		h := AddItem('Caption');
		CellImage[OleVariant(h),OleVariant(0)] := 2;
		CellImages[OleVariant(h),OleVariant(0)] := '1,2';
		CellPicture[OleVariant(h),OleVariant(0)] := (IUnknown(Grid1.ExecuteTemplate('loadpicture(`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' + 
	'Gw+wbHkkTpEw7gpFgIAA2sABJEUThEK4QhgIJAQ==`)')) as _TLB.Object);
		CellValue[OleVariant(h),OleVariant(1)] := CellValue[OleVariant(h),OleVariant(0)];
		CellHAlignment[OleVariant(h),OleVariant(1)] := EXGRIDLib_TLB.RightAlignment;
		CellImage[OleVariant(h),OleVariant(1)] := CellImage[OleVariant(h),OleVariant(0)];
		CellImages[OleVariant(h),OleVariant(1)] := '2,1';
		CellPicture[OleVariant(h),OleVariant(1)] := (IUnknown(CellPicture[OleVariant(h),OleVariant(0)]) as _TLB.Object);
		h := AddItem('<b>HTML</b> <off 4>Caption');
		CellValueFormat[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.exHTML;
		CellImage[OleVariant(h),OleVariant(0)] := 2;
		CellImages[OleVariant(h),OleVariant(0)] := '1,2';
		CellPicture[OleVariant(h),OleVariant(0)] := (IUnknown(Grid1.ExecuteTemplate('loadpicture(`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' + 
	'Gw+wbHkkTpEw7gpFgIAA2sABJEUThEK4QhgIJAQ==`)')) as _TLB.Object);
		CellValue[OleVariant(h),OleVariant(1)] := CellValue[OleVariant(h),OleVariant(0)];
		CellValueFormat[OleVariant(h),OleVariant(1)] := EXGRIDLib_TLB.exHTML;
		CellHAlignment[OleVariant(h),OleVariant(1)] := EXGRIDLib_TLB.RightAlignment;
		CellImage[OleVariant(h),OleVariant(1)] := CellImage[OleVariant(h),OleVariant(0)];
		CellImages[OleVariant(h),OleVariant(1)] := '2,1';
		CellPicture[OleVariant(h),OleVariant(1)] := (IUnknown(CellPicture[OleVariant(h),OleVariant(0)]) as _TLB.Object);
	end;
	EndUpdate();
end
1177
ImageSize property on 32 (specifies the size of control' icons/images/check-boxes/radio-buttons)

// AddColumn event - Fired after a new column has been added.
procedure TForm1.Grid1AddColumn(ASender: TObject; Column : IColumn);
begin
	// Column.Def(48) = 2
	// Column.Def(49) = 2
end;

with Grid1 do
begin
	BeginUpdate();
	ImageSize := 32;
	DefaultItemHeight := 36;
	HeaderHeight := DefaultItemHeight;
	SortBarHeight := DefaultItemHeight;
	Font.Size := 16;
	FilterBarFont.Size := Grid1.Font.Size;
	ToolTipFont.Size := Grid1.Font.Size;
	Indent := 26;
	Images('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');
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABfICg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6' + 
	'CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EM' + 
	'RwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsOatVqjG5sYjcGC3La9cz3Pq/bpuDCbMxuaK1TrYXr1TTrcofBDldAxXRKDxR' + 
	'DWVhLnYOw9i6XxzjuXprCaOoKB6EwbiCZZCGOdZYlcT4xHmbhMnwNxtn+G5bmqdZ7n4Pw/i+X5zm+dQ9g4CAFjsfAJheOI8HsDoWDWTB/lwSAQkmA5PEgRYoDyDwYFYF' + 
	'oFmGCBmBqBphDgRJ0gOTIYBGRB/lyRh0iSCZbjYWJzgWDwIjYLoLmMCJGDKDJjBgWgqG6YhyhGHRzA2aJ1mCABOAiOJvhCZBJBYRoRmSCQmEqEQimkAZgg8TZnDCV4Uk' + 
	'mCUmBKZYJGYWoWCUUhiFMNZckNUh2GENoaGaGZmgmJhqhqZpGGIEx2GYIxSGGGJdggWJth2Z4JmYeoemeSZ2H6H4hGmQhihyTRHGYLg7CiCgmgqIpokoNoOiOaJ4jqAo' + 
	'chqaZGgaCxpAoZoaiaaJqEmWIcGgShcnCJwqEqFoR3YOoFlgchflqNouiuawHmWSYqGkWZQhcatzmaOoumuSp2j6L5bBaKo0GQKRnGGCxqiyCwmkqMpsksNpOGUGI7A0' + 
	'ew1G0Rxlg0PptgsZuDG2Sx2l6N5tnYNZZjUDRXDCVo5l2FoymqOpukuNpujubwLjmWY5k0ZwxkaFxYlWdp6j6b5Lnafo/nABQdg2FxcUsY5BkmXAkmeQpckwNRrkKTh8' + 
	'CSHZBk4NwyC4KxxgMDwakOMZDn8GgwnGAo2C4cwthMcwmCcMoHBMHRehwTIghySYNksZwcH4HBMEsHx5hyPItiweYxnwSZEH4Mozn0fR+DMAo7EYJ50gkdZelKdNql2U' + 
	'gJn0GIukwH4HicQRai2GI4mSVpNl0dZGledgNgcYpYDWUx3FsOQi5YV5anaTY3G6W53A2RxylydxFjiaxEFCCgBBAQ==');
		Add(2,'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' + 
	'RBCCQAgQEA==');
		Add(3,'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');
		Add(4,'gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL' + 
	'UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBU' + 
	'rGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3' + 
	'NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDsY' + 
	'YDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVm' + 
	'WCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVo' + 
	'WiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiS' + 
	'e41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbhF' + 
	'CcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==');
	end;
	BackColorHeader := $4c6c6c6;
	SelBackColor := $4000000;
	SelForeColor := RGB(0,0,1);
	CheckImage[EXGRIDLib_TLB.Unchecked] := 16777216;
	CheckImage[EXGRIDLib_TLB.Checked] := 33554432;
	CheckImage[EXGRIDLib_TLB.PartialChecked] := 50331648;
	Background[EXGRIDLib_TLB.exSelBackColorFilter] := SelBackColor;
	Background[EXGRIDLib_TLB.exSelForeColorFilter] := SelForeColor;
	Background[EXGRIDLib_TLB.exBackColorFilter] := BackColor;
	Background[EXGRIDLib_TLB.exForeColorFilter] := ForeColor;
	Background[EXGRIDLib_TLB.exCursorHoverColumn] := $ffffffff;
	Background[EXGRIDLib_TLB.exHeaderFilterBarButton] := $4000000;
	Background[EXGRIDLib_TLB.exHeaderFilterBarActive] := $4010101;
	Background[EXGRIDLib_TLB.exFooterFilterBarButton] := $40000ff;
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	ShowFocusRect := False;
	SortBarVisible := True;
	AllowGroupBy := True;
	BackColorSortBar := BackColor;
	BackColorLevelHeader := BackColor;
	FilterBarDropDownHeight := 1;
	with (IUnknown(Columns.Add('Check')) as EXGRIDLib_TLB.Column) do
	begin
		Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
		PartialCheck := True;
		Width := 128;
		DisplayFilterButton := True;
		FilterList := EXGRIDLib_TLB.exShowCheckBox;
	end;
	with (IUnknown(Columns.Add('Pos')) as EXGRIDLib_TLB.Column) do
	begin
		FormatColumn := '1 pos ``';
		AllowSort := False;
		Width := 48;
		AllowSizing := False;
		Alignment := EXGRIDLib_TLB.CenterAlignment;
		HeaderAlignment := EXGRIDLib_TLB.CenterAlignment;
	end;
	with (IUnknown(Columns.Add('Image')) as EXGRIDLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib_TLB.exShowExclude) Or Integer(EXGRIDLib_TLB.exShowCheckBox) Or Integer(EXGRIDLib_TLB.exSortItemsAsc);
		FilterType := EXGRIDLib_TLB.exImage;
		DisplayExpandButton := True;
		ExpandColumns := '1,2,3';
		Width := 128;
		HeaderImage := 1;
	end;
	with (IUnknown(Columns.Add('Images')) as EXGRIDLib_TLB.Column) do
	begin
		Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
		Width := 196;
		HTMLCaption := '<img>1</img><img>2</img><img>3</img> Images';
	end;
	Columns.Item['Pos'].Position := 3;
	with Items do
	begin
		hR := AddItem('Root');
		ItemDivider[hR] := 0;
		ItemDividerLine[hR] := EXGRIDLib_TLB.EmptyLine;
		h := InsertItem(hR,Null,'Child A');
		CellImage[OleVariant(h),OleVariant(2)] := 1;
		CellImages[OleVariant(h),OleVariant(3)] := '1,2,3';
		CellValue[OleVariant(h),OleVariant(3)] := '123';
		h := InsertItem(hR,Null,'Child B');
		CellState[OleVariant(h),OleVariant(0)] := 1;
		CellImage[OleVariant(h),OleVariant(2)] := 3;
		CellImages[OleVariant(h),OleVariant(3)] := '2,3,1';
		CellValue[OleVariant(h),OleVariant(3)] := '231';
		SelectItem[h] := True;
		h := InsertItem(hR,Null,'Child C');
		CellImage[OleVariant(h),OleVariant(2)] := 2;
		CellState[OleVariant(h),OleVariant(3)] := 1;
		CellValue[OleVariant(h),OleVariant(3)] := '312';
		CellImages[OleVariant(h),OleVariant(3)] := '3,1,2';
		ExpandItem[hR] := True;
	end;
	EndUpdate();
end
1176
ImageSize property on 16 (default) (specifies the size of control' icons/images/check-boxes/radio-buttons)

// AddColumn event - Fired after a new column has been added.
procedure TForm1.Grid1AddColumn(ASender: TObject; Column : IColumn);
begin
	// Column.Def(48) = 2
	// Column.Def(49) = 2
end;

with Grid1 do
begin
	BeginUpdate();
	ImageSize := 16;
	Images('gBJJgBAIDAAEg4ACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjMLjABAAgjUYkUnlUrlktl0vmExmUzmk1m03nE5nU7nkrQCAntBoVDolFo1HoM/ADAplLptImdMYFOqd' + 
	'SqlXq1QrVbrlGpVWsFNrNdnNjsk7pQAtNroFnt0sh8Yr9iulTuNxs1Eu8OiT/vsnsNVutXlk/oGGtVKxGLxWNtsZtN8iUYuNvy0Zvd+xNYwdwvl4p870GCqc8vOeuVtt' + 
	'mp1knyOayWVy+WzN/ze1wOElenm+12WUz/Bv2/3UyyWrzeutux2GSyGP2dQ33C1ur3GD3M4zUNzHdlWjq/E3nGzVpjWv4HA7fRy/Tv2IrN8rPW6nZ3ve7mUlfu20Z8ac' + 
	'vQyb+vY9jasYoDwMm+LytVBDqKG3z8O3Cb8P+mkAuY9cCQ2uL4KaxDKvkp8RNLEjqugnrwQo/UWPzFyeQw5sNLZFENrI4kOqU66pw8uzmOKvTqNqjULJvGL1JO48GtTG' + 
	'sbLdEL3scxLlyiw8dQeoUVxdLTtyKmUjwGlslRPJsnK1HbAKbKCrsQo8uQk/CeP44iaR/ATnTNPLvyxPU+z9P9AUDQVBowiofJXQ6Oo+kKMpIkjztE4TKn4P6JowfgPn' + 
	'wD5/nAjB8AOeAPo0eAA1IAFH07UhAIMpYAVIYFHqBUhwVjV1S1EtQAHxW65V0AZwAeuQAnwB5gAPYViEDVhwAHTQBkCjB4gOhwDmCyhH0sACAg==');
	with VisualAppearance do
	begin
		Add(4,'gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL' + 
	'UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBU' + 
	'rGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3' + 
	'NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDsY' + 
	'YDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVm' + 
	'WCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVo' + 
	'WiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiS' + 
	'e41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbhF' + 
	'CcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==');
	end;
	BackColorHeader := $4c6c6c6;
	SelBackColor := $4000000;
	SelForeColor := RGB(0,0,1);
	Background[EXGRIDLib_TLB.exSelBackColorFilter] := SelBackColor;
	Background[EXGRIDLib_TLB.exSelForeColorFilter] := SelForeColor;
	Background[EXGRIDLib_TLB.exBackColorFilter] := BackColor;
	Background[EXGRIDLib_TLB.exForeColorFilter] := ForeColor;
	Background[EXGRIDLib_TLB.exCursorHoverColumn] := $ffffffff;
	Background[EXGRIDLib_TLB.exHeaderFilterBarButton] := $4000000;
	Background[EXGRIDLib_TLB.exHeaderFilterBarActive] := $4010101;
	Background[EXGRIDLib_TLB.exFooterFilterBarButton] := $40000ff;
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	ShowFocusRect := False;
	SortBarVisible := True;
	AllowGroupBy := True;
	BackColorSortBar := BackColor;
	BackColorLevelHeader := BackColor;
	FilterBarDropDownHeight := 1;
	with (IUnknown(Columns.Add('Check')) as EXGRIDLib_TLB.Column) do
	begin
		Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
		PartialCheck := True;
		Width := 128;
		DisplayFilterButton := True;
		FilterList := EXGRIDLib_TLB.exShowCheckBox;
	end;
	with (IUnknown(Columns.Add('Pos')) as EXGRIDLib_TLB.Column) do
	begin
		FormatColumn := '1 pos ``';
		AllowSort := False;
		Width := 48;
		AllowSizing := False;
		Alignment := EXGRIDLib_TLB.CenterAlignment;
		HeaderAlignment := EXGRIDLib_TLB.CenterAlignment;
	end;
	with (IUnknown(Columns.Add('Image')) as EXGRIDLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib_TLB.exShowExclude) Or Integer(EXGRIDLib_TLB.exShowCheckBox) Or Integer(EXGRIDLib_TLB.exSortItemsAsc);
		FilterType := EXGRIDLib_TLB.exImage;
		DisplayExpandButton := True;
		ExpandColumns := '1,2,3';
		Width := 128;
		HeaderImage := 1;
	end;
	with (IUnknown(Columns.Add('Images')) as EXGRIDLib_TLB.Column) do
	begin
		Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
		Width := 196;
		HTMLCaption := '<img>1</img><img>2</img><img>3</img> Images';
	end;
	Columns.Item['Pos'].Position := 3;
	with Items do
	begin
		hR := AddItem('Root');
		ItemDivider[hR] := 0;
		ItemDividerLine[hR] := EXGRIDLib_TLB.EmptyLine;
		h := InsertItem(hR,Null,'Child A');
		CellImage[OleVariant(h),OleVariant(2)] := 1;
		CellImages[OleVariant(h),OleVariant(3)] := '1,2,3';
		CellValue[OleVariant(h),OleVariant(3)] := '123';
		h := InsertItem(hR,Null,'Child B');
		CellState[OleVariant(h),OleVariant(0)] := 1;
		CellImage[OleVariant(h),OleVariant(2)] := 3;
		CellImages[OleVariant(h),OleVariant(3)] := '2,3,1';
		CellValue[OleVariant(h),OleVariant(3)] := '231';
		SelectItem[h] := True;
		h := InsertItem(hR,Null,'Child C');
		CellImage[OleVariant(h),OleVariant(2)] := 2;
		CellState[OleVariant(h),OleVariant(3)] := 1;
		CellValue[OleVariant(h),OleVariant(3)] := '312';
		CellImages[OleVariant(h),OleVariant(3)] := '3,1,2';
		ExpandItem[hR] := True;
	end;
	EndUpdate();
end
1175
The user clicks the drop-down filter, select a value and the control's list filters for the selected item(s). Is there a way for when the user then goes to the next column to add another filter and the drop down arrow is clicked for the list of values they can filter by to be limited to what is being displayed in the list due to the first filter they set

// AddColumn event - Fired after a new column has been added.
procedure TForm1.Grid1AddColumn(ASender: TObject; Column : IColumn);
begin
	with Grid1 do
	begin
		with Column do
		begin
		end;
	end
end;

with Grid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	Columns.Item['ShipVia'].Position := 2;
	EndUpdate();
end
1174
Does the control display images from database (ADO)

with Grid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	DrawGridLines := EXGRIDLib_TLB.exAllLines;
	GridLineStyle := EXGRIDLib_TLB.exGridLinesGeometric;
	DefaultItemHeight := 48;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Employees','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.mdb',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	with Columns.Item['Photo'] do
	begin
		Position := 1;
		Width := 128;
	end;
	EndUpdate();
end
1173
Does the control display images from database (DAO)

with Grid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	DrawGridLines := EXGRIDLib_TLB.exAllLines;
	GridLineStyle := EXGRIDLib_TLB.exGridLinesGeometric;
	DefaultItemHeight := 48;
	with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.36'))) as DAO_TLB.PrivDBEngine) do
	begin
		rs := OpenDatabase('C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.mdb',Null,Null,Null).OpenRecordset('Employees',Null,Null,Null);
	end;
	DataSource := (IUnknown(rs) as DAO_TLB.Recordset);
	with Columns.Item['Photo'] do
	begin
		Position := 1;
		Width := 128;
	end;
	EndUpdate();
end
1172
Is it possible to set from code, a column sort without being inserted in the sortbar

with Grid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	SortBarVisible := True;
	Layout := 'singlesort="C1:1"';
	EndUpdate();
end
1171
Is it possible to view all events the control fires
// Event event - Notifies the application once the control fires an event.
procedure TForm1.Grid1Event(ASender: TObject; EventID : Integer);
begin
	with Grid1 do
	begin
		OutputDebugString( EventParam[-2] );
	end
end;

with Grid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
	with (IUnknown(Columns.Add('Tasks')) as EXGRIDLib_TLB.Column) do
	begin
		Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
		PartialCheck := True;
		Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
		FormatColumn := 'value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)';
		Editor.EditType := EXGRIDLib_TLB.EditType;
	end;
	HeaderVisible := True;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Null,'Task 1');
		SelectItem[hChild] := True;
		hChild := InsertItem(h,Null,'Task 2');
		CellState[OleVariant(hChild),OleVariant(0)] := 1;
		hChild := InsertItem(h,Null,'Task 3');
		CellState[OleVariant(hChild),OleVariant(0)] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1170
How can I find all occurences of the giving value, within a column
with Grid1 do
begin
	BeginUpdate();
	Columns.Add('Default');
	with (IUnknown(Columns.Add('Pos')) as EXGRIDLib_TLB.Column) do
	begin
		FormatColumn := '1 pos ''A-Z''';
		Position := 0;
		AllowSizing := False;
		Width := 32;
		Enabled := False;
	end;
	with (IUnknown(Columns.Add('Index')) as EXGRIDLib_TLB.Column) do
	begin
		FormatColumn := '0 index ''''';
		AllowSizing := False;
		Width := 32;
		Enabled := False;
	end;
	with Items do
	begin
		AddItem('A');
		AddItem('A');
		AddItem('A');
		OutputDebugString( CellCaption[OleVariant(FindItem['A',OleVariant(0),OleVariant(0)]),OleVariant(1)] );
		OutputDebugString( CellCaption[OleVariant(FindItem['A',OleVariant(0),OleVariant(1)]),OleVariant(1)] );
		OutputDebugString( CellCaption[OleVariant(FindItem['A',OleVariant(0),OleVariant(2)]),OleVariant(1)] );
	end;
	EndUpdate();
end
1169
How can I prevent expanding/collapsing the child items

// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
procedure TForm1.Grid1BeforeExpandItem(ASender: TObject; Item : HITEM;var Cancel : OleVariant);
begin
	with Grid1 do
	begin
		Cancel := Grid1.Items.ItemParent[Item];
	end
end;

with Grid1 do
begin
	BeginUpdate();
	SingleSel := False;
	Columns.Add('Default');
	LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(InsertItem(h,Null,'Child 1.1'),Null,'Child');
		InsertItem(h,Null,'Child 1.2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(InsertItem(h,Null,'Child 2.1'),Null,'Child');
		InsertItem(h,Null,'Child 2.2');
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1168
How can I display the EBN bigger or smaller (thumb)

with Grid1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'c:\exontrol\images\normal.ebn');
		Add(10,'CP:1 0 3 0 -3');
		Add(17,'CP:1 3 0 -3 0');
	end;
	Background[EXGRIDLib_TLB.exHSThumb] := $a000000;
	Background[EXGRIDLib_TLB.exVSThumb] := $11000000;
	ScrollBars := Integer(EXGRIDLib_TLB.exVScrollEmptySpace) Or Integer(EXGRIDLib_TLB.exHScrollEmptySpace) Or Integer(EXGRIDLib_TLB.exVScrollOnThumbRelease) Or Integer(EXGRIDLib_TLB.exHScrollOnThumbRelease) Or Integer(EXGRIDLib_TLB.exDisableBoth);
	ScrollBySingleLine := True;
	Columns.Add('Def');
	with Items do
	begin
		AddItem(OleVariant(1));
		AddItem(OleVariant(2));
		AddItem(OleVariant(3));
	end;
	EndUpdate();
end
1167
I am using GroupBy feature to create a tree, but the top rows are aligned with the children, not indented. What could be wrong

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
procedure TForm1.Grid1AddGroupItem(ASender: TObject; Item : HITEM);
begin
	// AddBar(Item,"Progress", #12/2/2017#,#12/2/2017#)
	// DefineSummaryBars(Item,"", -3, "")
	// Chart.ItemBackColor(Item) = color
	with Grid1 do
	begin
		color := 14474460;
		with Items do
		begin
			ItemDivider[Item] := -1;
			CellValue[OleVariant(Item),OleVariant(1)] := OleVariant(CellCaption[OleVariant(Item),OleVariant(GroupItem[Item])]);
			ItemBold[Item] := True;
			ItemBackColor[Item] := color;
		end;
	end
end;

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.Grid1AddItem(ASender: TObject; Item : HITEM);
begin
	// AddBar(Item,"Task",#12/4/2017#,#12/10/2017#)
	// ItemBar(Item,"", 514)  = ItemToIndex(Item)
	with Grid1 do
	begin
		with Items do
		begin
		end;
	end
end;

with Grid1 do
begin
	BeginUpdate();
	with Columns do
	begin
		Add('C1');
		Add('C2');
	end;
	LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
	SortBarVisible := True;
	SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
	AllowGroupBy := True;
	with Items do
	begin
		h := AddItem('Item A');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem A.1';
		h := AddItem('Item A');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem A.1';
		h := AddItem('Item A');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem A.1';
		h := AddItem('Item A');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem A.1';
		h := AddItem('Item B');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem B.1';
		h := AddItem('Item B');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem B.1';
	end;
	Columns.Item[OleVariant(0)].SortOrder := EXGRIDLib_TLB.SortAscending;
	EndUpdate();
end
1166
How can I display an item of picture type

with Grid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
	ScrollBySingleLine := False;
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	HeaderHeight := 24;
	(IUnknown(Columns.Add('Artikel')) as EXGRIDLib_TLB.Column).HTMLCaption := '<u>Artikel';
	(IUnknown(Columns.Add('Waarde')) as EXGRIDLib_TLB.Column).HTMLCaption := '<u>Waarde';
	HTMLPicture['T22128'] := 'c:\exontrol\images\zipdisk.gif';
	with Items do
	begin
		h := AddItem('T22128-28)2D');
		h1 := InsertItem(h,Null,'<img>T22128:128</img>');
		CellValueFormat[OleVariant(h1),OleVariant(0)] := EXGRIDLib_TLB.exHTML;
		ItemHeight[h1] := 128;
		h1 := InsertItem(h,Null,'werkvoorbereiding');
		CellValue[OleVariant(h1),OleVariant(1)] := '5.80';
		CellBold[OleVariant(h1),OleVariant(1)] := True;
		CellValue[OleVariant(InsertItem(h1,Null,'Type')),OleVariant(1)] := 'Eenvoudig';
		CellValue[OleVariant(InsertItem(h1,Null,'Prijs p/uur')),OleVariant(1)] := '60,00';
		CellValue[OleVariant(InsertItem(h1,Null,'Marhe')),OleVariant(1)] := '15,00%';
		CellValue[OleVariant(InsertItem(h1,Null,'Insteltijd min.')),OleVariant(1)] := '5,00';
		CellValue[OleVariant(InsertItem(h1,Null,'Aantal')),OleVariant(1)] := OleVariant(1);
		CellValue[OleVariant(InsertItem(h1,Null,'Kostprije')),OleVariant(1)] := '5,00';
		ExpandItem[h1] := True;
		h1 := InsertItem(h,Null,'materiall');
		CellValue[OleVariant(h1),OleVariant(1)] := '14.82';
		CellBold[OleVariant(h1),OleVariant(1)] := True;
		ItemHasChildren[h1] := True;
		h1 := InsertItem(h,Null,'snijden');
		CellValue[OleVariant(h1),OleVariant(1)] := '3.13';
		CellBold[OleVariant(h1),OleVariant(1)] := True;
		ItemHasChildren[h1] := True;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1165
Dark mode

with Grid1 do
begin
	BeginUpdate();
	back := 65536;
	fore := 16777215;
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQg' + 
	'mPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThd' + 
	'r4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA');
	VisualAppearance.Add(2,'gBFLBCJwBAEHhEJAAEhABPMIQAAYAQGKIcBiAKBQAGaAoDDcMgwQwAAxjIKUEwsACEIrjKCYVgOHYYQjGMZwHCMIhiGwcAChEZYHgkMYmDAMUhSE78axHG6PY7kKZ4bi' + 
	'aKIqQLLEhSfJ0YyBECBZpfebIbjmIZMSLEIxDKItJSpCIaRgqWS6ahGO4JUbUFLQHT9IR4daIYRgEEBA');
	VisualAppearance.Add(3,'gBFLBCJwBAEHhEJAAEhABUUIQAAYAQGKIcBiAKBQAGaAoDDcMgwQwAAxjIKUEwsACEIrjKCYVgOHYYQjGMZwGAsEwjAoYAChEaILgkMw2DBIQwgJIMEr/G6RZxjeL5Cj' + 
	'mG4nDhKMpybAcXxjBIYZJgOQpXb+PobTrNNLzfRFAxVAaWJikcZ4HpIAJNVLFdQ0XYMNSBISsBqrKiKcpeIIDWBZMbRZT1ZABCIZBpEW6LahENQwXrCN74DYkNTdKaxb' + 
	'buaaXLhGCYBgIA==');
	HeaderAppearance := EXGRIDLib_TLB.Bump;
	BackColor := back;
	BackColorHeader := back;
	BackColorLevelHeader := back;
	BackColorSortBar := back;
	BackColorSortBarCaption := back;
	FilterBarBackColor := back;
	FilterBarForeColor := fore;
	ForeColor := fore;
	ForeColorHeader := fore;
	ForeColorSortBar := fore;
	SelBackColor := fore;
	SelForeColor := back;
	Background[EXGRIDLib_TLB.exHeaderFilterBarButton] := $1000000;
	Background[EXGRIDLib_TLB.exCursorHoverColumn] := $ffffffff;
	Background[EXGRIDLib_TLB.exToolTipAppearance] := $3000000;
	Background[EXGRIDLib_TLB.exToolTipBackColor] := back;
	Background[EXGRIDLib_TLB.exToolTipForeColor] := fore;
	Background[EXGRIDLib_TLB.exSelBackColorFilter] := fore;
	Background[EXGRIDLib_TLB.exSelForeColorFilter] := back;
	Background[EXGRIDLib_TLB.exBackColorFilter] := back;
	Background[EXGRIDLib_TLB.exForeColorFilter] := fore;
	Background[EXGRIDLib_TLB.exSortBarLinkColor] := back;
	Background[EXGRIDLib_TLB.exScrollSizeGrip] := back;
	Description[EXGRIDLib_TLB.exFilterBarExclude] := '<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>';
	EndUpdate();
end
1164
I have changed the font, but the item's height remains the same. What I am doing wrong

with Grid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	LoadXML('http://www.exontrol.net/testing.xml');
	Font.Size := 22;
	HeaderHeight := 42;
	DefaultItemHeight := 36;
	Items.ItemHeight[0] := Grid1.DefaultItemHeight;
	EndUpdate();
end
1163
How can I specify the cell's outline, border or lines around, when the cell gets selected

with Grid1 do
begin
	BeginUpdate();
	AttachTemplate('handle AddColumn(Column){Column{Def(48)=4;Def(49)=4;}}');
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYYLhEZAEiONoaDJCM4wHI' + 
	'MQxHCKTZRkGcfaRCGSfIzpGKpVgOTYiTbPcIyQKtBxDIydJTmeQQQhsFIJU7SdVUPDUJZlWbLAwWTAYazXCKRZBpeJqdo6Y5RUDKUqSdLUYyvEq7ZqnOIpw5vICpaCqO' + 
	'p6HqKFpiXSAFL1fLmAwvPKrJjoeqpWpyCaRZQAGg4dbEdTNNCIbatQANKrCSpgZ7sMB6Di2L4TPS2awoWgRYyTFZMbBAeQ7LC1c45Fqrd4zS4dSxKCahcLxFiaNpYZYn' + 
	'jUap1jGPJlkuAgAkidB3nceZsCQEQJCgGhMGcQ4pkiSxEAAOYpiQIhvkYNA2gSCg5n+LIoGILowFyXQoAYAoAmASAWAaAZgggJgKF2T54DYDoDmECBGBKBJgGgTgWgWY' + 
	'RoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChixULILGGGAWDCCgjCiTgrg0YxojoC4OmOSJ2D6D5kAgJLFgABAEICA=');
		Add(2,'CP:1 -4 0 0 0');
	end;
	SelBackColor := $2000000;
	SelForeColor := RGB(0,0,1);
	FullRowSelect := EXGRIDLib_TLB.exColumnSel;
	ShowFocusRect := False;
	DefaultItemHeight := 24;
	HeaderHeight := 24;
	DrawGridLines := EXGRIDLib_TLB.exVLines;
	Columns.Add('C1');
	Columns.Add('C2');
	with Items do
	begin
		CellValue[OleVariant(AddItem('Cell 1')),OleVariant(1)] := 'Cell 2';
		CellValue[OleVariant(AddItem('Cell 3')),OleVariant(1)] := 'Cell 4';
	end;
	Items.SelectPos := OleVariant(1);
	SelectColumnIndex := 1;
	EndUpdate();
end
1162
How can I specify the cell's outline, border or lines around, when the item gets selected

with Grid1 do
begin
	BeginUpdate();
	AttachTemplate('handle AddColumn(Column){Column{Def(48)=4;Def(49)=4;}}');
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYYLhEZAEiONoaDJCM4wHI' + 
	'MQxHCKTZRkGcfaRCGSfIzpGKpVgOTYiTbPcIyQKtBxDIydJTmeQQQhsFIJU7SdVUPDUJZlWbLAwWTAYazXCKRZBpeJqdo6Y5RUDKUqSdLUYyvEq7ZqnOIpw5vICpaCqO' + 
	'p6HqKFpiXSAFL1fLmAwvPKrJjoeqpWpyCaRZQAGg4dbEdTNNCIbatQANKrCSpgZ7sMB6Di2L4TPS2awoWgRYyTFZMbBAeQ7LC1c45Fqrd4zS4dSxKCahcLxFiaNpYZYn' + 
	'jUap1jGPJlkuAgAkidB3nceZsCQEQJCgGhMGcQ4pkiSxEAAOYpiQIhvkYNA2gSCg5n+LIoGILowFyXQoAYAoAmASAWAaAZgggJgKF2T54DYDoDmECBGBKBJgGgTgWgWY' + 
	'RoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChixULILGGGAWDCCgjCiTgrg0YxojoC4OmOSJ2D6D5kAgJLFgABAEICA=');
	SelBackColor := $1000000;
	SelForeColor := RGB(0,0,1);
	ShowFocusRect := False;
	DefaultItemHeight := 24;
	HeaderHeight := 24;
	DrawGridLines := EXGRIDLib_TLB.exVLines;
	Columns.Add('C1');
	Columns.Add('C2');
	with Items do
	begin
		CellValue[OleVariant(AddItem('Cell 1')),OleVariant(1)] := 'Cell 2';
		CellValue[OleVariant(AddItem('Cell 3')),OleVariant(1)] := 'Cell 4';
		SelectPos := OleVariant(1);
	end;
	EndUpdate();
end
1161
How can I specify the cell's outline, border or lines around

with Grid1 do
begin
	BeginUpdate();
	AttachTemplate('handle AddColumn(Column){Column{Def(48)=4;Def(49)=4;}}');
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYYLhEZAEiONoaDJCM4wHI' + 
	'MQxHCKTZRkGcfaRCGSfIzpGKpVgOTYiTbPcIyQKtBxDIydJTmeQQQhsFIJU7SdVUPDUJZlWbLAwWTAYazXCKRZBpeJqdo6Y5RUDKUqSdLUYyvEq7ZqnOIpw5vICpaCqO' + 
	'p6HqKFpiXSAFL1fLmAwvPKrJjoeqpWpyCaRZQAGg4dbEdTNNCIbatQANKrCSpgZ7sMB6Di2L4TPS2awoWgRYyTFZMbBAeQ7LC1c45Fqrd4zS4dSxKCahcLxFiaNpYZYn' + 
	'jUap1jGPJlkuAgAkidB3nceZsCQEQJCgGhMGcQ4pkiSxEAAOYpiQIhvkYNA2gSCg5n+LIoGILowFyXQoAYAoAmASAWAaAZgggJgKF2T54DYDoDmECBGBKBJgGgTgWgWY' + 
	'RoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChixULILGGGAWDCCgjCiTgrg0YxojoC4OmOSJ2D6D5kAgJLFgABAEICA=');
	SelBackMode := EXGRIDLib_TLB.exTransparent;
	ShowFocusRect := False;
	DefaultItemHeight := 24;
	HeaderHeight := 24;
	DrawGridLines := EXGRIDLib_TLB.exVLines;
	Columns.Add('C1');
	Columns.Add('C2');
	with Items do
	begin
		CellValue[OleVariant(AddItem('Cell 1')),OleVariant(1)] := 'Cell 2';
		h := AddItem('Cell 2');
		CellValue[OleVariant(h),OleVariant(1)] := 'Cell 3';
		CellBackColor[OleVariant(h),OleVariant(1)] := $1000000;
	end;
	EndUpdate();
end
1160
Is it possible to highligth the match while a filter is applied

// AddColumn event - Fired after a new column has been added.
procedure TForm1.Grid1AddColumn(ASender: TObject; Column : IColumn);
begin
	// Column.Def(17) = 1
end;

// FilterChange event - Occurs when filter was changed.
procedure TForm1.Grid1FilterChange(ASender: TObject; );
begin
	with Grid1 do
	begin
		format := FormatABC('`value replace ''` + value + `'' with ''<bgcolor 000000><fgcolor FFFFFF>` + value  + `</fgcolor></bgcolor>''`',OleVariant(FilterBarPromptPattern),Null,Null);
		Columns.Item[OleVariant(0)].FormatColumn := format;
		Columns.Item[OleVariant(1)].FormatColumn := format;
	end
end;

with Grid1 do
begin
	BeginUpdate();
	DrawGridLines := EXGRIDLib_TLB.exVLines;
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	Columns.Add('Col 1');
	Columns.Add('Col 2');
	with Items do
	begin
		CellValue[OleVariant(AddItem('219 Smith')),OleVariant(1)] := 'Ignacio 1234';
		CellValue[OleVariant(AddItem('1666 County Road 309A')),OleVariant(1)] := '897 Manassa';
		CellValue[OleVariant(AddItem('38 Lone Pine')),OleVariant(1)] := 'Durango 11';
		CellValue[OleVariant(AddItem('612 Jachim Street')),OleVariant(1)] := 'Lamar 222';
	end;
	FilterBarPromptPattern := '1';
	FilterBarPromptVisible := Integer(EXGRIDLib_TLB.exFilterBarCompact) Or Integer(EXGRIDLib_TLB.exFilterBarSingleLine) Or Integer(EXGRIDLib_TLB.exFilterBarVisible) Or Integer(EXGRIDLib_TLB.exFilterBarPromptVisible);
	FilterBarPromptType := Integer(EXGRIDLib_TLB.exFilterPromptCaseSensitive) Or Integer(EXGRIDLib_TLB.exFilterPromptContainsAll);
	EndUpdate();
end
1159
How can I replace the cell's context menu ( while edit mode is running )

// RClick event - Fired when right mouse button is clicked
procedure TForm1.Grid1RClick(ASender: TObject; );
begin
	with Grid1 do
	begin
		OutputDebugString( 'Edit Mode: ' );
		OutputDebugString( Editing );
		with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ContextMenu'))) as EXCONTEXTMENULib_TLB.ExContextMenu) do
		begin
			Items.ToString := 'Check[chk],[sep],Item 1,Item 2,Item 3,Popup(A,B,C)';
			OutputDebugString( Select(Null,Null,Null) );
		end;
	end
end;

with Grid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib_TLB.Flat;
	with (IUnknown(Columns.Add('Column')) as EXGRIDLib_TLB.Column).Editor do
	begin
		EditType := EXGRIDLib_TLB.EditType;
		Option[EXGRIDLib_TLB.exEditAllowContextMenu] := OleVariant(False);
	end;
	with Items do
	begin
		AddItem('Item 1');
		AddItem('Item 2');
	end;
	EndUpdate();
end
1158
Is it possible to highlight the column's header once a filter is applied (sample 2)

with Grid1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABO8GACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwQgmNYDSBMcbwSA' + 
	'sXRYFocJ5gOT6AjKBA2UclEZpajiTY3ABUEgUS5oOBIACqariaQJAAiCRQGiYZyHKaRSwPBKFYDIIjbJheTIDChNVxUcDENQjJqLBIDRzbarye59YBfeBXdgmA4LQbDM' + 
	'RwNgMMQTDqKYbkOQZHbeGKAWTMEZzJj8cxTEqIaBhGTLfojSZMS7UGK1LLtMyHI6kP7sOiLfi2W4/W7XV72F79TzXIa2ZBuO57bhnAZ/VzGNj4PRNezfRqicjsGxcZwX' + 
	'g+TpQj0ew6gSOw7wSbozjsfYXi8PwMnSc52leHotl+MxjmoXh2nybxOH+SQtnYXx+D2P4vGMB56hQf5PCgBYeDwYBCEo1xggebgKH6IIDBYBgkiAQ5FgYPAhEIRgWGqD' + 
	'BoC4GoCiGCBYhGBQPAWdIQp0eIUiWCZigiJgqgqYpIioJQhmIMhBH0NxjEMag2g2Y4ImYOoOmOSJeDQNxXlOLR3ECUAQICA=');
		Add(2,'gBFLBCJwBAEHhEJAAEhABgsHQAAYAQGKIcBiAKBQAGaAoDDYNwwQwAAxDAKcEwsACEIrjKCRShyCYZRrGUgRCKQahLEiTIhGUYJHgmK4tRoAUgxWCEExrAaQJjjeCQFi' + 
	'6LAtDhPMByfQEZQIGyjkgjNLUcSbG4AKgkCiXfpUAJVP7FcgSABEEigNIxToOU4jFgeCYLQKQRK2RC9GQGFCbLhpYKIahGTYWVheN5XXblez9P7ABQwKCcAwXBp7YIKA' + 
	'T4XBIdYdQ7IL4xGA0AJPFoJC7mOQ5XiYAIBAZ/RL0LCcbxHHafVboQj6JouD5PUDVNY1XBdPynI6CbLhWy6Dq4UZzPwzeBifSHfDjRoJcCZe71KY3GwSEboNA6Kp+QBH' + 
	'AmZoZjSPYIEiF47lOLJVnuYofBwJJHmaQoYj0MIRHeM4/m6cJ8B+fpBHQJ5SGKPYYH8OYMk+P5Bn4fxaAYZAvEIX4RgUWBGgCCAmAqApgkgNgOgMEYlGASoEkQeBWBaB' + 
	'ZhggZgagaYRoEwShWA6NZZAMQBAICA==');
	end;
	Background[EXGRIDLib_TLB.exHeaderFilterBarButton] := $1000000;
	Background[EXGRIDLib_TLB.exHeaderFilterBarActive] := $2000000;
	Background[EXGRIDLib_TLB.exCursorHoverColumn] := $ffffffff;
	HeaderHeight := 28;
	BackColorHeader := RGB(255,255,255);
	DrawGridLines := EXGRIDLib_TLB.exRowLines;
	HeaderVisible := True;
	with Columns do
	begin
		(IUnknown(Add('C1')) as EXGRIDLib_TLB.Column).DisplayFilterButton := True;
		with (IUnknown(Add('C2')) as EXGRIDLib_TLB.Column) do
		begin
			DisplayFilterButton := True;
			Filter := 'Item 2';
			FilterType := EXGRIDLib_TLB.exFilter;
		end;
		(IUnknown(Add('C3')) as EXGRIDLib_TLB.Column).DisplayFilterButton := True;
	end;
	with Items do
	begin
		h := AddItem('Item 1');
		CellValue[OleVariant(h),OleVariant(1)] := 'Item 2';
		CellValue[OleVariant(h),OleVariant(2)] := 'Item 3';
		h := AddItem('Item 4');
		CellValue[OleVariant(h),OleVariant(1)] := 'Item 5';
		CellValue[OleVariant(h),OleVariant(2)] := 'Item 6';
	end;
	ApplyFilter();
	EndUpdate();
end
1157
How can I make the expand/collapse glyphs DPI aware

with Grid1 do
begin
	size := 2;
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(3,'gBFLBCJwBAEHhEJAAEhEGAUHQAAYAQGKIcBiAKBQAGaAoDDYOA4QwAAxDAKcEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBRfIUEghGyNZjgNzQcC' + 
	'QAI8T5IUgARBJIDSMY6DpOIxYHgmC4DEITNLxOK0EhRHCBZrgOCAYhqEY1Ro+dhPFYjVTMdK0LRtKy7Mq2aJmOpZDxWE7dZKpO5fbxXS67cr2fp/YBed4rfa7KTlOBKc' + 
	'RQRBEFQPDqPZBkORZHh2FoLRJKbgtHJmHYNQWhVyYBbNCyTI6lahpeuHBx1QaWWxjbCMEr6bpoWLbFi3Ha1UzrPa8b5vSw7Gr+HzYQTHGPXGqaYJdZrnea6B7+U5XUJr' + 
	'nSOZciYHwhAeR5HDK+JVGqKRRmScx5HyfRei+H5bmmcp4Fi8o/CGGJKGQKZUGoFQigUPIiCeSZXnyHB6l0SAJn8JxfkIeZ5CgXxjCCAhyB8QgIlAM4MlKAIcCaIBIGYG' + 
	'oGGEYhqBMMxgnICgRDUDQjESGwmAkWBuCqBoiHIVgkDQYgYESWg2E0YhohcJQigITg3CQSRyEyEYGGOWJwhQJD4FiFIMk0aJFGsIBkkOBJeDc+AchYJwJgIWhSgYZQpF' + 
	'IVoVGOGQ4l2EwIBWMhgDmDhThCEwkAiaJchKDhjhgZhsCUY4iFCEoZkiaYQmSGAWhWQhgDuDpTjCDQiEgchAg0IpJBoDoFiEKBqCaCAimgIguH8IZnkPUhcBcJg+hGJZ' + 
	'nloYJsiaKZKGa24YnWSR0CkKhCA2CxlCqColhAYpqEKER0DqVZ0A0ASAgA==');
		Add(4,'gBFLBCJwBAEHhEJAAEhABAQCg6AADACAxRDgMQBQKAAzQFAYbBwHCGAAGIYBTgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACjeQYJBCNYbTJAbqhYI' + 
	'gAR3HqQZABCCSQKkYx0HScRiwPBMFwGIQmaaicZoJCiN4DTZAcIBRDUIxpDR9bBeKw3KqVaZnWhaNpWXZlTzKdSxXisF67RZSdi/XgvF5XXblez9P69LwXe5mUrGbyVY' + 
	'ghCCIKgeG4dR7IMhyLDcKQXCCVW7aGSsOwbAqAXpdGAXTQdDyLJKnaZqOi6BjjA4rNbHGIYJb1XTRMa1LJuG5LJrOeZ3Xre4BLfh1VoFRpjWIYNY1QS7TLOczzfRdDxT' + 
	'iGVpkjCeJoD4Ng1hSRxiisVRKg8D4PkWZJznmPQ+F8Xx5guWpjHGWYMiYQodEaIRSCgU5KCSeh3naHB/iAAh9n8fwfgIeZ1CgXwjCCAhxl8AgIlAM4MlKAIcCaD54FYF' + 
	'oFmGCBmBaBIJigPJNgKSAoDSVC+BIbIYCUYYoiYKoJgkWIMlGCAglMaJZDWCYiFyFIJkkOJYhEJc7G4PYPCOaJshQJBjgiVIUgyDRokEaggGSQ4El4N1CBiFgnAmAhaF' + 
	'KFZlFkShUhWJRYmITg3GSQgFGuGBOGOFJkCSSQCDoNgkiOCY0hUJJmmmQhvhqZtYmUOQmBWIRvhgTpjjSbAjEiEgchBZgyEaBIhigWgegqIhIjoDILiACB5nTL5WnWRY' + 
	'OiSKYJnqGQ7CmOh2hqJ5OkYORxFyShKhSAxihkOomioY5YiqFIkFyTo1HkAxAEAgIA==');
		Add(1,Grid1.FormatABC('`CP:3 -` + int(value*dpi) + ` -` + int(value*dpi) + ` ` +  int(value*dpi) + ` ` + int(value*dpi)',OleVariant(size),Null,Null));
		Add(2,Grid1.FormatABC('`CP:4 -` + int(value*dpi) + ` -` + int(value*dpi) + ` ` +  int(value*dpi) + ` ` + int(value*dpi)',OleVariant(size),Null,Null));
	end;
	LinesAtRoot := EXGRIDLib_TLB.exGroupLinesAtRoot;
	HasButtons := EXGRIDLib_TLB.exCustom;
	HasButtonsCustom[False] := 16777216;
	HasButtonsCustom[True] := 33554432;
	Columns.Add('Column');
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Null,'Child 1');
		InsertItem(h,Null,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Null,'Child');
	end;
	EndUpdate();
end
1156
Is it possible to highlight the column's header once a filter is applied (sample 1)

with Grid1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(2,'gBFLBCJwBAEHhEJAAEhABX8GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwYgmNYiTLAcgANJ' + 
	'0WBaGIZJ4gOT5fDKMoEDRRYADFCscwxJybQAqGQKKb+VgAVY/cTyBIAEQSKA0TDOQ5TSKWB4JPZQRBEbZMNBtBIUJquKaqShdQJCU5FdY3Xblez9P7AMBwLFEC4NQ8YN' + 
	'YuPhjR4dRTIMhvVAsUArFh8Zg9GZZFjmDIDT4ydBLTQwcyVIKnP5qOa6XbmPoCQDYKxZHYxPzVDa3axuL76dqCAT7XrXNy1TbNRrzQKfcJqfCbdw2YaDZLOOT3fjuI4h' + 
	'hKaRzFAHJ+jYQ4xHuY4gHuGIXGeExqC8Tp6C+PoEm+G5ImycRgh0XwvDGa5rgOeoejyXwnFeQp2mkf5ClgBB9gCWIYAwfYAEKV58mkdwOggNArgOXY2EWLoDkKOA0mgb' + 
	'hOGgZApgaSBIHWSYHSmbApgYThmESZYJkIeIkgeCpfliLIHgpMIcmUYYYmODAlg2SI4mWfRfGOEguDcCRjFYAJihCQhJBSDoRmONgKEcI4kFCEJhhOVYTmYnAlEAQhWB' + 
	'MJYJGYWoWmWSR2F6F5lnkWAQhUAgpEieRWEuSYkjWGpmkmNhuhuZwJkYcocmaaYkjyEhngnUA6lEFAlAEgI=');
		Add(1,'CP:2 -8 -4 2 4');
	end;
	Background[EXGRIDLib_TLB.exHeaderFilterBarButton] := $1fefefe;
	Background[EXGRIDLib_TLB.exHeaderFilterBarActive] := $1010101;
	Background[EXGRIDLib_TLB.exCursorHoverColumn] := $ffffffff;
	HeaderHeight := 28;
	BackColorHeader := RGB(255,255,255);
	DrawGridLines := EXGRIDLib_TLB.exRowLines;
	HeaderVisible := True;
	with Columns do
	begin
		(IUnknown(Add('C1')) as EXGRIDLib_TLB.Column).DisplayFilterButton := True;
		with (IUnknown(Add('C2')) as EXGRIDLib_TLB.Column) do
		begin
			DisplayFilterButton := True;
			Filter := 'Item 2';
			FilterType := EXGRIDLib_TLB.exFilter;
		end;
		(IUnknown(Add('C3')) as EXGRIDLib_TLB.Column).DisplayFilterButton := True;
	end;
	with Items do
	begin
		h := AddItem('Item 1');
		CellValue[OleVariant(h),OleVariant(1)] := 'Item 2';
		CellValue[OleVariant(h),OleVariant(2)] := 'Item 3';
		h := AddItem('Item 4');
		CellValue[OleVariant(h),OleVariant(1)] := 'Item 5';
		CellValue[OleVariant(h),OleVariant(2)] := 'Item 6';
	end;
	ApplyFilter();
	EndUpdate();
end
1155
How do I update itemcount and matchitemcount of the FilterBarCaption after I added the item using the AddItem method
// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
procedure TForm1.Grid1Click(ASender: TObject; );
begin
	with Grid1 do
	begin
		Items.AddItem('new');
		Refresh();
	end
end;

with Grid1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Item')) as EXGRIDLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib_TLB.exShowExclude) Or Integer(EXGRIDLib_TLB.exShowFocusItem) Or Integer(EXGRIDLib_TLB.exShowCheckBox) Or Integer(EXGRIDLib_TLB.exSortItemsAsc);
	end;
	with (IUnknown(Columns.Add('Pos')) as EXGRIDLib_TLB.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 + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount + 1)' + 
	' + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )';
	FilterBarPromptVisible := Integer(EXGRIDLib_TLB.exFilterBarCompact) Or Integer(EXGRIDLib_TLB.exFilterBarShowCloseOnRight) Or Integer(EXGRIDLib_TLB.exFilterBarShowCloseIfRequired) Or Integer(EXGRIDLib_TLB.exFilterBarCaptionVisible) Or Integer(EXGRIDLib_TLB.exFilterBarVisible) Or Integer(EXGRIDLib_TLB.exFilterBarPromptVisible);
	EndUpdate();
end
1154
I can't get values in the column properly centered. What can be the problem

with Grid1 do
begin
	BeginUpdate();
	TreeColumnIndex := -1;
	DrawGridLines := EXGRIDLib_TLB.exRowLines;
	with (IUnknown(Columns.Add('Default')) as EXGRIDLib_TLB.Column) do
	begin
		Alignment := EXGRIDLib_TLB.CenterAlignment;
		FormatColumn := 'ltrim(rtrim(value))';
	end;
	Items.AddItem('item 1            ');
	Items.AddItem('             item 2');
	Items.AddItem('   item 3                ');
	EndUpdate();
end
1153
The Edit method does not work while ReadOnly property is exLocked and the first column is hidden. Is there any fix

// DblClick event - Occurs when the user dblclk the left mouse button over an object.
procedure TForm1.Grid1DblClick(ASender: TObject; Shift : Smallint;X : Integer;Y : Integer);
begin
	with Grid1 do
	begin
		var_ItemFromPoint := ItemFromPoint[-1,-1,c,hit];
		FocusColumnIndex := c;
		Edit(Null);
	end
end;

with Grid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	AutoEdit := False;
	ReadOnly := EXGRIDLib_TLB.exLocked;
	AutoSearch := True;
	(IUnknown(Columns.Add('')) as EXGRIDLib_TLB.Column).Visible := False;
	with (IUnknown(Columns.Add('Contains')) as EXGRIDLib_TLB.Column) do
	begin
		AutoSearch := EXGRIDLib_TLB.exContains;
		Editor.EditType := EXGRIDLib_TLB.EditType;
	end;
	with Items do
	begin
		CellValue[OleVariant(AddItem(Null)),OleVariant(1)] := 'Tom Hanks';
		CellValue[OleVariant(AddItem(Null)),OleVariant(1)] := 'Leonardo DiCaprio';
		CellValue[OleVariant(AddItem(Null)),OleVariant(1)] := 'Will Smith';
		CellValue[OleVariant(AddItem(Null)),OleVariant(1)] := 'Tom Cruise';
	end;
	EndUpdate();
end
1152
How can I enable the Undo/Redo feature

with Grid1 do
begin
	BeginUpdate();
	AllowUndoRedo := True;
	LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	with (IUnknown(Columns.Add('P1')) as EXGRIDLib_TLB.Column) do
	begin
		Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
		PartialCheck := True;
	end;
	with (IUnknown(Columns.Add('P2')) as EXGRIDLib_TLB.Column) do
	begin
		Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
		PartialCheck := True;
	end;
	with Items do
	begin
		h := AddItem('Root');
		InsertItem(h,Null,'Child 1');
		InsertItem(h,Null,'Child 2');
		ExpandItem[h] := True;
		AddItem('Press CTRL + Z for Undo, and CTRL + Y for Redo');
	end;
	EndUpdate();
end
1151
The incremental search feature is no working for columns with editor assigned. What can be done

// DblClick event - Occurs when the user dblclk the left mouse button over an object.
procedure TForm1.Grid1DblClick(ASender: TObject; Shift : Smallint;X : Integer;Y : Integer);
begin
	with Grid1 do
	begin
		Edit(Null);
	end
end;

with Grid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	AutoEdit := False;
	AutoSearch := True;
	with (IUnknown(Columns.Add('Contains')) as EXGRIDLib_TLB.Column) do
	begin
		AutoSearch := EXGRIDLib_TLB.exContains;
		Editor.EditType := EXGRIDLib_TLB.EditType;
	end;
	with Items do
	begin
		AddItem('Tom Hanks');
		AddItem('Leonardo DiCaprio');
		AddItem('Will Smith');
		AddItem('Tom Cruise');
	end;
	EndUpdate();
end
1150
Each item is representated by a key as string. Is it possible to have a drop down editor to display more information when using the item's key

with Grid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	with (IUnknown(Columns.Add('Multiple-Columns Tree DropDownListType')) as EXGRIDLib_TLB.Column).Editor do
	begin
		EditType := EXGRIDLib_TLB.DropDownListType;
		AddItem(0,'KR|Korea, Republic of',Null);
		AddItem(1,'MO|Macao',Null);
		AddItem(2,'SA|Saudi Arabia',Null);
		AddItem(3,'EG|Egypt',Null);
		AddItem(4,'GB|United Kingdom',Null);
		AddItem(5,'GT|Guatemala',Null);
		AddItem(6,'SR|Suriname',Null);
		AddItem(7,'BM|Bermuda',Null);
	end;
	with Items do
	begin
		AddItem('EG');
		AddItem('GB');
		AddItem('BM');
	end;
	EndUpdate();
end
1149
My table includes codes/keys for items, can I display a drop down editor to include more information

with Grid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	with (IUnknown(Columns.Add('Multiple-Columns DropDownListType')) as EXGRIDLib_TLB.Column).Editor do
	begin
		EditType := EXGRIDLib_TLB.DropDownListType;
		DropDownAutoWidth := EXGRIDLib_TLB.exDropDownEditorWidth;
		Option[EXGRIDLib_TLB.exDropDownColumnCaption] := 'City¦Coordinates¦State';
		AddItem(0,'JV3|Jollyville¦3026N 09746W¦Texas',Null);
		AddItem(1,'TMO|Altamont¦4021N 11017W¦Utah',Null);
		AddItem(2,'IIM|Williamston¦4241N 08417W¦Michigan',Null);
		AddItem(3,'IWN|Merrittstown¦3958N 07952W¦Pennsylvania',Null);
		AddItem(4,'HOU|Houston¦2945N 09521W¦Texas',Null);
		AddItem(5,'GSF|Gales Ferry¦4125N 07205W¦Connecticut',Null);
	end;
	with Items do
	begin
		AddItem('HOU');
		AddItem('IIM');
		AddItem('TMO');
	end;
	EndUpdate();
end
1148
How can I display and select from a multiple-columns tree editor

with Grid1 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=');
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	with (IUnknown(Columns.Add('Multiple-Columns Tree DropDownListType')) as EXGRIDLib_TLB.Column).Editor do
	begin
		EditType := EXGRIDLib_TLB.DropDownListType;
		DropDownAutoWidth := EXGRIDLib_TLB.exDropDownEditorWidth;
		Option[EXGRIDLib_TLB.exDropDownColumnCaption] := 'Name¦Title¦City¦Phone';
		Option[EXGRIDLib_TLB.exDropDownColumnWidth] := '224¦¦¦96';
		AddItem(1,'Nancy Davolio¦Sales Representative¦Seattle¦(206) 555-9857',OleVariant(1));
		AddItem(2,'Andrew Fuller¦<b>Vice President</b>, Sales¦Tacoma¦(206) 555-9482',OleVariant(2));
		InsertItem(3,'Janet Leverling¦Sales Representative¦Kirkland¦(206) 555-3412',OleVariant(3),OleVariant(2));
		InsertItem(4,'Peacock Margaret¦Sales Representative¦Redmond¦(206) 555-8122',OleVariant(3),OleVariant(2));
		InsertItem(5,'Steven Buchanan¦Sales Manager¦London¦(71) 555-4848',OleVariant(2),OleVariant(2));
		InsertItem(6,'Michael Suyama¦Sales Representative¦London¦(71) 555-7773',OleVariant(1),OleVariant(5));
		InsertItem(7,'Robert King¦Sales Representative¦Kirkland¦(71) 555-5598',OleVariant(2),OleVariant(2));
		InsertItem(8,'Laura Callahan¦Inside Sales Coordinator¦Seattle¦(206) 555-1189',OleVariant(3),OleVariant(2));
		InsertItem(9,'Anne Dodsworth¦Sales Representative¦London¦(71) 555-4444',OleVariant(2),OleVariant(5));
		ExpandAll();
	end;
	with Items do
	begin
		AddItem(OleVariant(1));
		AddItem(OleVariant(2));
		AddItem(OleVariant(4));
	end;
	EndUpdate();
end
1147
Does you control support multiple-columns for a drop down editor

with Grid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	with (IUnknown(Columns.Add('Multiple-Columns DropDownListType')) as EXGRIDLib_TLB.Column).Editor do
	begin
		EditType := EXGRIDLib_TLB.DropDownListType;
		DropDownAutoWidth := EXGRIDLib_TLB.exDropDownEditorWidth;
		AddItem(0,'Jollyville¦JV3¦3026N 09746W¦TX',Null);
		AddItem(1,'Altamont¦TMO¦4021N 11017W¦UT',Null);
		AddItem(2,'Williamston¦IIM¦4241N 08417W¦MI',Null);
		AddItem(3,'Merrittstown¦IWN¦3958N 07952W¦PA',Null);
		AddItem(4,'Houston¦HOU¦2945N 09521W¦TX',Null);
		AddItem(5,'Gales Ferry¦GSF¦4125N 07205W¦CT',Null);
	end;
	with Items do
	begin
		InsertItem(0,'',OleVariant(1));
		InsertItem(0,'',OleVariant(2));
		InsertItem(0,'',OleVariant(4));
	end;
	EndUpdate();
end
1146
Is it possible to show the filterbar on top of the rows

with Grid1 do
begin
	BeginUpdate();
	FilterBarPromptVisible := EXGRIDLib_TLB.exFilterBarTop;
	HeaderHeight := 24;
	FilterBarHeight := HeaderHeight;
	HeaderAppearance := EXGRIDLib_TLB.Flat;
	DrawGridLines := EXGRIDLib_TLB.exAllLines;
	GridLineStyle := EXGRIDLib_TLB.exGridLinesGeometric;
	with (IUnknown(Columns.Add('Column')) as EXGRIDLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXGRIDLib_TLB.exPattern;
		Filter := 'B*';
	end;
	with (IUnknown(Columns.Add('Index')) as EXGRIDLib_TLB.Column) do
	begin
		FormatColumn := '1 index ``';
		Position := 0;
		Width := 48;
		AllowSizing := False;
		SortType := EXGRIDLib_TLB.SortNumeric;
		Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
	end;
	with Items do
	begin
		AddItem('A.1');
		AddItem('A.2');
		AddItem('B.1');
		AddItem('B.2');
		AddItem('B.3');
		AddItem('C');
	end;
	ApplyFilter();
	EndUpdate();
end
1145
DragDrop (with visual effect)

// OLEDragDrop event - Occurs when a source component is dropped onto a target component when the source component determines that a drop can occur.
procedure TForm1.Grid1OLEDragDrop(ASender: TObject; Data : IExDataObject;var Effect : Integer;Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	// SelectItem(InsertItem(i,, Data.GetData(1))) = True
	with Grid1 do
	begin
		i := ItemFromPoint[-1,-1,c,hit];
		with Items do
		begin
			ExpandItem[i] := True;
		end;
	end
end;

// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TForm1.Grid1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
	// Data.SetData(Me.Items.CellCaption(FocusItem, 0), 1)
	with Grid1 do
	begin
		AllowedEffects := 1;
	end
end;

with Grid1 do
begin
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABPUIQAAYAQGKIcBiAKBQAGaAoDgYN4MAANAwjJBMKgBBCLIxhEYobgmGIaRjEEQDCKYcxHCaIBiGcaIfDEBIeSBHcgRbAcOQHGSZZBhGRJGj' + 
	'uKIbSrLICzBDUcRnGwAKQoaaaEomHwyAZOYwDAIoWhpKKCKjqWJKNb+XgAAJTES0RRVRTNAZ1YghGAQgIA==');
	Background[EXGRIDLib_TLB.exListOLEDropPosition] := $1000000;
	Background[EXGRIDLib_TLB.exDragDropBefore] := $0;
	Background[EXGRIDLib_TLB.exDragDropAfter] := $ffffff;
	OLEDropMode := EXGRIDLib_TLB.exOLEDropManual;
	AutoDrag := EXGRIDLib_TLB.exAutoDragPositionAnyOnRight;
	LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
	Indent := 16;
	SelBackMode := EXGRIDLib_TLB.exTransparent;
	Columns.Add('Default');
	with Items do
	begin
		h := AddItem('Root');
		InsertItem(h,Null,'Child 1');
		InsertItem(h,Null,'Child 2');
		ExpandItem[h] := True;
	end;
	OutputDebugString( 'You can:' );
	OutputDebugString( 'A) left-click to drag and drop items between controls (open a new exhelper and run the same sample)' );
	OutputDebugString( 'B) right-click to re-arrange the item position inside the same control' );
	OutputDebugString( 'This sample shows how you can insert the data being dropped as a child of the item being hovered.' );
end
1144
DragDrop (with no visual effect, hide item while drag and drop)

// OLEDragDrop event - Occurs when a source component is dropped onto a target component when the source component determines that a drop can occur.
procedure TForm1.Grid1OLEDragDrop(ASender: TObject; Data : IExDataObject;var Effect : Integer;Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	// SelectItem(InsertItem(i,, Data.GetData(1))) = True
	with Grid1 do
	begin
		i := ItemFromPoint[-1,-1,c,hit];
		with Items do
		begin
			ExpandItem[i] := True;
		end;
	end
end;

// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TForm1.Grid1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
	// Data.SetData(Me.Items.CellCaption(FocusItem, 0), 1)
	with Grid1 do
	begin
		AllowedEffects := 1;
	end
end;

with Grid1 do
begin
	Background[EXGRIDLib_TLB.exDragDropBefore] := $0;
	Background[EXGRIDLib_TLB.exDragDropAfter] := $ffffff;
	OLEDropMode := EXGRIDLib_TLB.exOLEDropManual;
	AutoDrag := EXGRIDLib_TLB.exAutoDragPositionAnyOnRight;
	LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
	Indent := 16;
	SelBackMode := EXGRIDLib_TLB.exTransparent;
	Columns.Add('Default');
	with Items do
	begin
		h := AddItem('Root');
		InsertItem(h,Null,'Child 1');
		InsertItem(h,Null,'Child 2');
		ExpandItem[h] := True;
	end;
	OutputDebugString( 'You can:' );
	OutputDebugString( 'A) left-click to drag and drop items between controls (open a new exhelper and run the same sample)' );
	OutputDebugString( 'B) right-click to re-arrange the item position inside the same control' );
	OutputDebugString( 'This sample shows how you can insert the data being dropped as a child of the item being hovered.' );
end
1143
DragDrop

// OLEDragDrop event - Occurs when a source component is dropped onto a target component when the source component determines that a drop can occur.
procedure TForm1.Grid1OLEDragDrop(ASender: TObject; Data : IExDataObject;var Effect : Integer;Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	// SelectItem(InsertItem(i,, Data.GetData(1))) = True
	with Grid1 do
	begin
		i := ItemFromPoint[-1,-1,c,hit];
		with Items do
		begin
			ExpandItem[i] := True;
		end;
	end
end;

// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TForm1.Grid1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
	// Data.SetData(Me.Items.CellCaption(FocusItem, 0), 1)
	with Grid1 do
	begin
		AllowedEffects := 1;
	end
end;

with Grid1 do
begin
	OLEDropMode := EXGRIDLib_TLB.exOLEDropManual;
	AutoDrag := EXGRIDLib_TLB.exAutoDragPositionAnyOnRight;
	LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
	Indent := 16;
	SelBackMode := EXGRIDLib_TLB.exTransparent;
	Columns.Add('Default');
	with Items do
	begin
		h := AddItem('Root');
		InsertItem(h,Null,'Child 1');
		InsertItem(h,Null,'Child 2');
		ExpandItem[h] := True;
	end;
	OutputDebugString( 'You can:' );
	OutputDebugString( 'A) left-click to drag and drop items between controls (open a new exhelper and run the same sample)' );
	OutputDebugString( 'B) right-click to re-arrange the item position inside the same control' );
	OutputDebugString( 'This sample shows how you can insert the data being dropped as a child of the item being hovered.' );
end
1142
Is there anyway to stop the header changing colour when the mouse hovers/moves across the column header (non-clickable)

with Grid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	with Columns do
	begin
		Add('Item');
		with (IUnknown(Add('Pos')) as EXGRIDLib_TLB.Column) do
		begin
			Position := 0;
			Width := 32;
			AllowSizing := False;
			FormatColumn := '1 index ``';
			AllowSort := False;
			AllowDragging := False;
		end;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	EndUpdate();
end
1141
Is there anyway to stop the header changing colour when the mouse hovers/moves across the column header

with Grid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	Background[EXGRIDLib_TLB.exCursorHoverColumn] := $ffffffff;
	with Columns do
	begin
		Add('Item');
		with (IUnknown(Add('Pos')) as EXGRIDLib_TLB.Column) do
		begin
			Position := 0;
			Width := 32;
			AllowSizing := False;
			FormatColumn := '1 index ``';
			AllowSort := False;
			AllowDragging := False;
		end;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	EndUpdate();
end
1140
Is it possible to exclude the parent/child items when do the filtering, so to include only items that match the filter without any indentation

// FilterChange event - Occurs when filter was changed.
procedure TForm1.Grid1FilterChange(ASender: TObject; );
begin
	with Grid1 do
	begin
		Indent := Grid1.FormatABC('value > 0 ? 18 : 0',Items.MatchItemCount,Null,Null);
	end
end;

with Grid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
	Indent := 18;
	FilterInclude := EXGRIDLib_TLB.exMatchingItemsOnly;
	DrawGridLines := EXGRIDLib_TLB.exVLines;
	HeaderAppearance := EXGRIDLib_TLB.Flat;
	with Columns do
	begin
		with (IUnknown(Add('Column')) as EXGRIDLib_TLB.Column) do
		begin
			DisplayFilterButton := True;
			FilterType := EXGRIDLib_TLB.exFilter;
			FilterList := EXGRIDLib_TLB.exShowCheckBox;
			Filter := 'C1';
		end;
		with (IUnknown(Add('Pos')) as EXGRIDLib_TLB.Column) do
		begin
			FormatColumn := '1 rindex ``';
			Position := 0;
			AllowSizing := False;
			AllowDragging := False;
		end;
	end;
	with Items do
	begin
		h := AddItem('R1');
		h2 := InsertItem(h,Null,'S');
		InsertItem(h2,Null,'C1');
		InsertItem(h2,Null,'C2');
		InsertItem(h,Null,'C1');
		InsertItem(h,Null,'C2');
		ExpandItem[h] := True;
		h := AddItem('R2');
		InsertItem(h,Null,'C1');
		InsertItem(h,Null,'C2');
	end;
	ApplyFilter();
	EndUpdate();
end
1139
How can I display the total/sum/aggregate in the same column, when the user groups by a column

// AddColumn event - Fired after a new column has been added.
procedure TForm1.Grid1AddColumn(ASender: TObject; Column : IColumn);
begin
	with Grid1 do
	begin
		with Column do
		begin
		end;
	end
end;

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
procedure TForm1.Grid1AddGroupItem(ASender: TObject; Item : HITEM);
begin
	with Grid1 do
	begin
		with Items do
		begin
			ItemDivider[Item] := -1;
			ItemBackColor[Item] := Grid1.BackColorSortBar;
			ItemHeight[Item] := Grid1.HeaderHeight;
			CellMerge[OleVariant(Item),OleVariant(0)] := '1,2,3,4,5,7,8,9,10,11,12';
			CellValue[OleVariant(Item),OleVariant(13)] := 'count(current,rec,1)';
			CellValueFormat[OleVariant(Item),OleVariant(13)] := Integer(EXGRIDLib_TLB.exTotalField) Or Integer(EXGRIDLib_TLB.exHTML);
			CellValue[OleVariant(Item),OleVariant(0)] := OleVariant(CellCaption[OleVariant(Item),OleVariant(GroupItem[Item])]);
			FormatCell[OleVariant(Item),OleVariant(0)] := '`<b>` + value + `</b> <font ;7><off 3><fgcolor=808080>(` + %13 +  `)`';
			CellValue[OleVariant(Item),OleVariant(6)] := 'sum(current,all,dbl(%6))';
			CellValueFormat[OleVariant(Item),OleVariant(6)] := Integer(EXGRIDLib_TLB.exTotalField) Or Integer(EXGRIDLib_TLB.exHTML);
			CellForeColor[OleVariant(Item),OleVariant(6)] := $666666;
		end;
	end
end;

// Change event - Occurs when the user changes the cell's content.
procedure TForm1.Grid1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
	with Grid1 do
	begin
		Refresh();
	end
end;

with Grid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib_TLB.exGroupLinesOutside;
	Indent := 12;
	ColumnAutoResize := False;
	ScrollBySingleLine := True;
	BackColorSortBar := RGB(240,240,240);
	AutoDrag := EXGRIDLib_TLB.exAutoDragScroll;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	SingleSort := False;
	SortBarVisible := True;
	AllowGroupBy := True;
	HeaderHeight := 24;
	with Columns do
	begin
		(IUnknown(Add('Count')) as EXGRIDLib_TLB.Column).Visible := False;
		with Item['Freight'] do
		begin
			Def[EXGRIDLib_TLB.exCellBackColor] := OleVariant(Grid1.BackColorSortBar);
			Def[EXGRIDLib_TLB.exHeaderBackColor] := Def[EXGRIDLib_TLB.exCellBackColor];
			Def[EXGRIDLib_TLB.exCellPaddingRight] := OleVariant(4);
			Def[EXGRIDLib_TLB.exCellPaddingLeft] := OleVariant(4);
			HeaderBold := True;
			AllowGroupBy := False;
			FormatColumn := 'value format ``';
			Alignment := EXGRIDLib_TLB.RightAlignment;
		end;
		with Item[OleVariant(0)] do
		begin
			AllowGroupBy := False;
			Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
		end;
		Item['ShipCountry'].SortOrder := EXGRIDLib_TLB.SortAscending;
	end;
	ScrollBySingleLine := False;
	with Items do
	begin
		LockedItemCount[EXGRIDLib_TLB.exBottom] := 1;
		hL := LockedItem[EXGRIDLib_TLB.exBottom,0];
		ItemHeight[hL] := 24;
		ItemBold[hL] := True;
		ItemBackColor[hL] := Grid1.BackColorSortBar;
		CellValue[OleVariant(hL),OleVariant(6)] := 'sum(all,rec,dbl(%6))';
		CellValueFormat[OleVariant(hL),OleVariant(6)] := Integer(EXGRIDLib_TLB.exTotalField) Or Integer(EXGRIDLib_TLB.exHTML);
		CellHAlignment[OleVariant(hL),OleVariant(6)] := EXGRIDLib_TLB.RightAlignment;
		FormatCell[OleVariant(hL),OleVariant(6)] := 'value format ``';
	end;
	EndUpdate();
end
1138
I would like to display a solid line between "root" items, and dotted lines (default) between child items. How can I do that

with Grid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
	DrawGridLines := EXGRIDLib_TLB.exHLines;
	GridLineStyle := EXGRIDLib_TLB.exGridLinesGeometric;
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABMsIQAAYAQGKIcBiAKBQAGaAoDgYN4MAANAwjJBMKgBBCLIxhEYobgmGIXRpFMbxAKQahLEiTIgGUYJHgmK4tQLHb7zGAABRDDSOIDnGQJXh' + 
	'aI4JQSMMQDGLAZxVFiPRhAWLpBh+PQATrOdLUfSjVwhBKAQEBA==');
	with (IUnknown(Columns.Add('Default')) as EXGRIDLib_TLB.Column) do
	begin
		Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
		PartialCheck := True;
	end;
	with (IUnknown(Columns.Add('Position')) as EXGRIDLib_TLB.Column) do
	begin
		FormatColumn := '((1 rindex ``) contains `.`) = 0';
		Visible := False;
	end;
	with ConditionalFormats.Add('%C1',Null) do
	begin
		BackColor := $1e0e0e0;
	end;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Null,'Child 1');
		InsertItem(h,Null,'Child 2');
		InsertItem(h,Null,'Child 3');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Null,'Child 1');
		InsertItem(h,Null,'Child 2');
		h := AddItem('Root 3');
		InsertItem(h,Null,'Child 1');
		InsertItem(h,Null,'Child 2');
	end;
	EndUpdate();
end
1137
I can not center or align the cell's caption and icon, when it displays the hierarchy

with Grid1 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 (IUnknown(Columns.Add('Tasks')) as EXGRIDLib_TLB.Column) do
	begin
		Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
	end;
	HeaderVisible := True;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Null,'<img>1</img> Task (left)');
		hChild := InsertItem(h,Null,'<c><img>2</img> Task (center)');
		hChild := InsertItem(h,Null,'<r>Task (right) <img>3</img>');
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1136
How do I mask for float/integer number

with Grid1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	(IUnknown(Columns.Add('Type')) as EXGRIDLib_TLB.Column).Width := 32;
	Columns.Add('Editor');
	with Items do
	begin
		h := AddItem('Integer');
		CellValue[OleVariant(h),OleVariant(1)] := '12';
		with CellEditor[OleVariant(h),OleVariant(1)] do
		begin
			EditType := EXGRIDLib_TLB.EditType;
			Numeric := EXGRIDLib_TLB.exInteger;
		end;
		h := AddItem('Integer (mask, group)');
		CellValue[OleVariant(h),OleVariant(1)] := '10002';
		FormatCell[OleVariant(h),OleVariant(1)] := 'value format `0||`';
		with CellEditor[OleVariant(h),OleVariant(1)] do
		begin
			EditType := EXGRIDLib_TLB.MaskType;
			Mask := ';;;float,digits=0,invalid=empty,warning=invalid character';
		end;
		h := AddItem('Integer (mask, no group)');
		CellValue[OleVariant(h),OleVariant(1)] := '10002';
		FormatCell[OleVariant(h),OleVariant(1)] := 'value format `0|0|`';
		with CellEditor[OleVariant(h),OleVariant(1)] do
		begin
			EditType := EXGRIDLib_TLB.MaskType;
			Mask := ';;;float,digits=0,grouping=,invalid=empty,warning=invalid character';
		end;
		h := AddItem('Float');
		CellValue[OleVariant(h),OleVariant(1)] := '+12.34E+2';
		with CellEditor[OleVariant(h),OleVariant(1)] do
		begin
			EditType := EXGRIDLib_TLB.EditType;
			Numeric := EXGRIDLib_TLB.exFloat;
		end;
		h := AddItem('Float (no signs)');
		CellValue[OleVariant(h),OleVariant(1)] := '12.34E-2';
		with CellEditor[OleVariant(h),OleVariant(1)] do
		begin
			EditType := EXGRIDLib_TLB.EditType;
			Numeric := Integer(EXGRIDLib_TLB.exDisableSigns) Or Integer(EXGRIDLib_TLB.exFloat);
		end;
		h := AddItem('Float-Integer');
		CellValue[OleVariant(h),OleVariant(1)] := '+12.34';
		with CellEditor[OleVariant(h),OleVariant(1)] do
		begin
			EditType := EXGRIDLib_TLB.EditType;
			Numeric := EXGRIDLib_TLB.exFloatInteger;
		end;
		h := AddItem('Float-Integer (no signs)');
		CellValue[OleVariant(h),OleVariant(1)] := '12.34';
		with CellEditor[OleVariant(h),OleVariant(1)] do
		begin
			EditType := EXGRIDLib_TLB.EditType;
			Numeric := Integer(EXGRIDLib_TLB.exDisableSigns) Or Integer(EXGRIDLib_TLB.exFloatInteger);
		end;
		h := AddItem('Float (mask,group)');
		CellValue[OleVariant(h),OleVariant(1)] := '10002.34';
		FormatCell[OleVariant(h),OleVariant(1)] := 'value format `2`';
		with CellEditor[OleVariant(h),OleVariant(1)] do
		begin
			EditType := EXGRIDLib_TLB.MaskType;
			Mask := ';;;float,invalid=empty,warning=invalid character';
		end;
		h := AddItem('Float (mask, no group)');
		CellValue[OleVariant(h),OleVariant(1)] := '10002.34';
		FormatCell[OleVariant(h),OleVariant(1)] := 'value format `2|0|`';
		with CellEditor[OleVariant(h),OleVariant(1)] do
		begin
			EditType := EXGRIDLib_TLB.MaskType;
			Mask := ';;;float,grouping=,invalid=empty,warning=invalid character';
		end;
	end;
	EndUpdate();
end
1135
How do I set an extra data for each item
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.Grid1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with Grid1 do
	begin
		i := ItemFromPoint[-1,-1,c,hit];
		OutputDebugString( i );
		OutputDebugString( Items.ItemData[i] );
	end
end;

with Grid1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	Columns.Add('Default');
	with Items do
	begin
		ItemData[AddItem('method 1')] := 'your extra data of method 1';
		InsertItem(0,'your extra data of method 2','method 2');
	end;
	with Items do
	begin
		DefaultItem := AddItem('method 3');
		ItemData[0] := 'your extra data of method 3';
	end;
	EndUpdate();
end
1134
I do not like to specify the item padding for every column I add. The question is how can I do it automatically

with Grid1 do
begin
	BeginUpdate();
	AttachTemplate('handle AddColumn(Column){Column{Def(48)=8;Def(49)=8;AllowDragging=False;AllowSizing = True}}');
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	DrawGridLines := EXGRIDLib_TLB.exAllLines;
	GridLineStyle := EXGRIDLib_TLB.exGridLinesVSolid;
	with Columns do
	begin
		Add('Item');
		with (IUnknown(Add('Pos')) as EXGRIDLib_TLB.Column) do
		begin
			Position := 0;
			Width := 32;
			AllowSizing := False;
			FormatColumn := '1 index ``';
		end;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	EndUpdate();
end
1133
How can I change the Exclude field in the drop down filter window

with Grid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
	HTMLPicture['exclude'] := 'gCJKBOI4NBQaBQAhQNJJIIhShQACERCAEAcRdrdcUQhQDOZCJJUBEjbbhJ7giIJOBILJziJvl4BeKibhDiIZOhFLB0KZvMx0O5hORlAB3owuNJuNZzMZhOBlFxvORnTb' + 
	'uHgaiIeKBMKhFf9fDIcEoPCAVEAlGI4HhBBYMCARCQVGg4IhVMCAWC2XY1Q7WJ8RBB0KROKYAYDBbzicjndD6fA/VsRHRJIhBkRbMYIGwGAQjA2fRYOEBoYjBFBx1ATC' + 
	'gCGQ8M7OTjSaJMDRDKIwYu5DrIMBgSAADKJTqhBhyRApAA3FAucZPPilokRJJFJxEVxCMCCgIA==';
	Description[EXGRIDLib_TLB.exFilterBarExclude] := '<img>exclude</img>';
	with (IUnknown(Columns.Add('Items')) as EXGRIDLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXGRIDLib_TLB.exShowExclude) Or Integer(EXGRIDLib_TLB.exShowFocusItem) Or Integer(EXGRIDLib_TLB.exShowCheckBox);
	end;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Null,'Child 1');
		InsertItem(h,Null,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Null,'Child 1');
	end;
	EndUpdate();
end
1132
How can I change the Exclude field in the drop down filter window

with Grid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
	Description[EXGRIDLib_TLB.exFilterBarExclude] := '<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>';
	with (IUnknown(Columns.Add('Items')) as EXGRIDLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXGRIDLib_TLB.exShowExclude) Or Integer(EXGRIDLib_TLB.exShowFocusItem) Or Integer(EXGRIDLib_TLB.exShowCheckBox);
	end;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Null,'Child 1');
		InsertItem(h,Null,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Null,'Child 1');
	end;
	EndUpdate();
end
1131
The grid lines looks different then before. What should I do

with Grid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
	DrawGridLines := EXGRIDLib_TLB.exAllLines;
	GridLineStyle := EXGRIDLib_TLB.exGridLinesGeometric;
	with (IUnknown(Columns.Add('Tasks')) as EXGRIDLib_TLB.Column) do
	begin
		Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
		PartialCheck := True;
	end;
	HeaderVisible := True;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Null,'Task 1');
		SelectItem[hChild] := True;
		hChild := InsertItem(h,Null,'Task 2');
		CellState[OleVariant(hChild),OleVariant(0)] := 1;
		hChild := InsertItem(h,Null,'Task 3');
		CellState[OleVariant(hChild),OleVariant(0)] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1130
Can I sort the column by check-state

with Grid1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Check')) as EXGRIDLib_TLB.Column) do
	begin
		Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
		SortType := EXGRIDLib_TLB.exSortByState;
	end;
	with Items do
	begin
		AddItem(Null);
		CellState[OleVariant(AddItem(Null)),OleVariant(0)] := 1;
		CellState[OleVariant(AddItem(Null)),OleVariant(0)] := 1;
		AddItem(Null);
	end;
	Columns.Item[OleVariant(0)].SortOrder := EXGRIDLib_TLB.SortAscending;
	EndUpdate();
end
1129
Can I sort the column by image

with Grid1 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 (IUnknown(Columns.Add('Image')) as EXGRIDLib_TLB.Column) do
	begin
		SortType := EXGRIDLib_TLB.exSortByImage;
	end;
	with Items do
	begin
		CellImage[OleVariant(AddItem(Null)),OleVariant(0)] := 3;
		AddItem(Null);
		CellImage[OleVariant(AddItem(Null)),OleVariant(0)] := 1;
		CellImage[OleVariant(AddItem(Null)),OleVariant(0)] := 2;
	end;
	Columns.Item[OleVariant(0)].SortOrder := EXGRIDLib_TLB.SortAscending;
	EndUpdate();
end
1128
Can I sort the column by value(numeric)

with Grid1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Value')) as EXGRIDLib_TLB.Column) do
	begin
		Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
		FormatColumn := '`<fgcolor=808080><off 4><font ;6> ` + (1 index ``)  + ` </font></off></fgcolor>` + value';
		SortType := Integer(EXGRIDLib_TLB.exSortByValue) Or Integer(EXGRIDLib_TLB.SortNumeric);
	end;
	with Items do
	begin
		AddItem('1');
		AddItem('10');
		AddItem('2');
		AddItem('20');
	end;
	Columns.Item[OleVariant(0)].SortOrder := EXGRIDLib_TLB.SortAscending;
	EndUpdate();
end
1127
Can I sort a column by cell's state (checked, unchecked) rather than caption

with Grid1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Check')) as EXGRIDLib_TLB.Column) do
	begin
		with Editor do
		begin
			EditType := EXGRIDLib_TLB.CheckValueType;
			Option[EXGRIDLib_TLB.exCheckValue2] := OleVariant(1);
		end;
		SortType := EXGRIDLib_TLB.SortNumeric;
	end;
	with Items do
	begin
		AddItem(OleVariant(True));
		AddItem(OleVariant(False));
		AddItem(OleVariant(False));
		AddItem(OleVariant(True));
	end;
	Columns.Item[OleVariant(0)].SortOrder := EXGRIDLib_TLB.SortAscending;
	EndUpdate();
end
1126
How do I get the item's auto-number, when using FormatColumn property, as CellValue gets empty

// SelectionChanged event - Fired after a new item has been selected.
procedure TForm1.Grid1SelectionChanged(ASender: TObject; );
begin
	with Grid1 do
	begin
		with Items do
		begin
			OutputDebugString( 'pos: ' );
			OutputDebugString( CellCaption[OleVariant(FocusItem),OleVariant(1)] );
			OutputDebugString( 'rpos(1): ' );
			OutputDebugString( CellCaption[OleVariant(FocusItem),OleVariant(2)] );
			OutputDebugString( 'rpos(2): ' );
			OutputDebugString( CellCaption[OleVariant(FocusItem),OleVariant(3)] );
			OutputDebugString( 'apos: ' );
			OutputDebugString( CellCaption[OleVariant(FocusItem),OleVariant(4)] );
			OutputDebugString( 'index: ' );
			OutputDebugString( CellCaption[OleVariant(FocusItem),OleVariant(5)] );
		end;
	end
end;

with Grid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
	DrawGridLines := EXGRIDLib_TLB.exRowLines;
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	with Columns do
	begin
		Add('Items');
		with (IUnknown(Add('pos')) as EXGRIDLib_TLB.Column) do
		begin
			FormatColumn := '1 pos ``';
			Position := 0;
			Width := 48;
			AllowSizing := False;
		end;
		with (IUnknown(Add('rpos(1)')) as EXGRIDLib_TLB.Column) do
		begin
			FormatColumn := '1 rpos ``';
			Position := 1;
			Width := 48;
			AllowSizing := False;
		end;
		with (IUnknown(Add('rpos(2)')) as EXGRIDLib_TLB.Column) do
		begin
			FormatColumn := '1 rpos `.||A-Z`';
			Position := 2;
			Width := 48;
			AllowSizing := False;
		end;
		with (IUnknown(Add('apos')) as EXGRIDLib_TLB.Column) do
		begin
			FormatColumn := '1 apos ``';
			Position := 3;
			Width := 48;
			AllowSizing := False;
		end;
		with (IUnknown(Add('index')) as EXGRIDLib_TLB.Column) do
		begin
			FormatColumn := '1 index ``';
			Position := 4;
			Width := 48;
			AllowSizing := False;
		end;
	end;
	with Items do
	begin
		h := AddItem('Item 1');
		InsertItem(h,Null,'Child 1');
		hSel := InsertItem(h,Null,'Child 2');
		ExpandItem[h] := True;
		AddItem('Item 2');
		AddItem('Item 3');
	end;
	EndUpdate();
	Items.SelectItem[hSel] := True;
end
1125
How can I display UNICODE characters

with Grid1 do
begin
	BeginUpdate();
	with Font do
	begin
		Name := 'Arial Unicode';
		Size := 22;
	end;
	HeaderVisible := False;
	DefaultItemHeight := 48;
	(IUnknown(Columns.Add('')) as EXGRIDLib_TLB.Column).Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
	with Items do
	begin
		AddItem('Ӓӓ');
		AddItem('ᦜᦝ;ᦞ');
		AddItem('ɮɭ;ɯ');
		AddItem('勳勴勵勶');
		FormatCell[OleVariant(AddItem(OleVariant(Grid1.Version))),OleVariant(0)] := '(value lfind `UNICODE`) < 0 ? `<fgcolor=FF0000><b>!UNICODE!</b> version</fgcolor> required: ` + value : `` ';
	end;
	EndUpdate();
end
1124
How do I display the position of the item with 0-padding

with Grid1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Items')) as EXGRIDLib_TLB.Column).FormatColumn := '((1 apos ``) lpad `00`) + `. `  + value';
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
		AddItem('Item D');
	end;
	EndUpdate();
end
1123
Can't get the +/- to be displayed on a divider item. What else can I do

with Grid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
	DrawGridLines := EXGRIDLib_TLB.exAllLines;
	TreeColumnIndex := 0;
	MarkSearchColumn := False;
	FullRowSelect := EXGRIDLib_TLB.exColumnSel;
	HeaderAppearance := EXGRIDLib_TLB.AppearanceEnum($fffffff8 Or Integer(EXGRIDLib_TLB.Bump) Or Integer(EXGRIDLib_TLB.Sunken));
	with Columns do
	begin
		(IUnknown(Add('C1')) as EXGRIDLib_TLB.Column).Width := 32;
		(IUnknown(Add('C2')) as EXGRIDLib_TLB.Column).FormatColumn := '1 index ``';
	end;
	with Items do
	begin
		h := AddItem('Cell 1');
		CellSingleLine[OleVariant(h),OleVariant(1)] := EXGRIDLib_TLB.exCaptionWordWrap;
		h := AddItem('This is bit of text merges all cells in the item (divider shows no +/-)');
		ItemDivider[h] := 0;
		ItemBackColor[h] := $f0f0f0;
		ItemDividerLine[h] := EXGRIDLib_TLB.EmptyLine;
		CellHAlignment[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.CenterAlignment;
		InsertItem(h,Null,'Child 1');
		InsertItem(h,Null,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Cell 3');
		h := AddItem('This is bit of text merges all cells in the item (merge shows +/-)');
		ItemBackColor[h] := $f0f0f0;
		CellMerge[OleVariant(h),OleVariant(0)] := OleVariant(1);
		InsertItem(h,Null,'Child 3');
		InsertItem(h,Null,'Child 4');
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1122
How can I define a column of button type

// ButtonClick event - Occurs when user clicks on the cell's button.
procedure TForm1.Grid1ButtonClick(ASender: TObject; Item : HITEM;ColIndex : Integer;Key : OleVariant);
begin
	with Grid1 do
	begin
		with Items do
		begin
			OutputDebugString( CellValue[OleVariant(Item),OleVariant(ColIndex)] );
		end;
	end
end;

with Grid1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Button')) as EXGRIDLib_TLB.Column) do
	begin
		Def[EXGRIDLib_TLB.exCellHasButton] := OleVariant(True);
		Def[EXGRIDLib_TLB.exCellButtonAutoWidth] := OleVariant(False);
		FormatColumn := '``';
		AllowSizing := False;
		Width := 48;
	end;
	(IUnknown(Columns.Add('Second')) as EXGRIDLib_TLB.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 TForm1.Grid1FilterChange(ASender: TObject; );
begin
	with Grid1 do
	begin
		Background[EXGRIDLib_TLB.exHeaderFilterBarButton] := FormatABC('value = 0 ? 0x1000001 : 0x10000FF ',OleVariant(Columns.Item[OleVariant(0)].FilterType),Null,Null);
	end
end;

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

with Grid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	DrawGridLines := EXGRIDLib_TLB.exRowLines;
	with (IUnknown(Columns.Add('Values')) as EXGRIDLib_TLB.Column) do
	begin
		Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
		FormatColumn := 'value + ` <off 4><fgcolor=808080>type(` + type(%0) + `)`';
	end;
	with Items do
	begin
		AddItem(Null);
		AddItem(OleVariant(-1));
		AddItem('string');
		AddItem('1/1/2001');
		AddItem(OleVariant(2));
		AddItem(OleVariant(True));
		AddItem(OleVariant(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 Grid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	DrawGridLines := EXGRIDLib_TLB.exRowLines;
	Columns.Add('Values');
	with ConditionalFormats.Add('type(%0) in (2,3,4,5,18,19,20,21)',Null) do
	begin
		ForeColor := $ff;
		Bold := True;
	end;
	ConditionalFormats.Add('type(%0) = 11',Null).ForeColor := $ff00;
	ConditionalFormats.Add('type(%0) = 7',Null).ForeColor := $ff0000;
	ConditionalFormats.Add('type(%0) in (0,1)',Null).BackColor := $f0f0f0;
	with Items do
	begin
		AddItem(Null);
		AddItem(OleVariant(-1));
		AddItem('string');
		AddItem('1/1/2001');
		AddItem(OleVariant(2));
		AddItem(OleVariant(True));
		AddItem(OleVariant(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 TForm1.Grid1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
	with Grid1 do
	begin
		FreezeEvents(True);
		with Items do
		begin
			CellValue[OleVariant(Item),OleVariant(1)] := Grid1.FormatABC('int(255*sin(value/2))',OleVariant(NewValue),Null,Null);
			CellValue[OleVariant(Item),OleVariant(2)] := Grid1.FormatABC('int(255*cos(value/2))',OleVariant(NewValue),Null,Null);
		end;
		FreezeEvents(False);
	end
end;

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

with Grid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	DrawGridLines := EXGRIDLib_TLB.exRowLines;
	with (IUnknown(Columns.Add('Year')) as EXGRIDLib_TLB.Column) do
	begin
		Editor.EditType := EXGRIDLib_TLB.SpinType;
		Width := 64;
		AllowSizing := False;
	end;
	(IUnknown(Columns.Add('Easter')) as EXGRIDLib_TLB.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(OleVariant(1989));
		AddItem(OleVariant(2001));
		AddItem(OleVariant(2017));
		AddItem(OleVariant(2018));
		AddItem(OleVariant(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 TForm1.Grid1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
	with Grid1 do
	begin
		Refresh();
	end
end;

with Grid1 do
begin
	BeginUpdate();
	with ConditionalFormats.Add('(%0 >= 0)',Null) do
	begin
		Expression := '(0=type(%CD0)) and (%0 >= 0)';
		Bold := True;
		ForeColor := $ff;
		OutputDebugString( 'ConditionalFormat.Valid' );
		OutputDebugString( Valid );
	end;
	with (IUnknown(Columns.Add('Numbers')) as EXGRIDLib_TLB.Column) do
	begin
		with Editor do
		begin
			Numeric := EXGRIDLib_TLB.exInteger;
			EditType := EXGRIDLib_TLB.SpinType;
		end;
		SortType := EXGRIDLib_TLB.SortNumeric;
	end;
	with Items do
	begin
		AddItem(OleVariant(100));
		AddItem(OleVariant(-25));
		AddItem(OleVariant(31));
		AddItem(OleVariant(-48));
	end;
	with Items do
	begin
		h := AddItem('sum(all,dir,dbl(%0))');
		SelectableItem[h] := False;
		SortableItem[h] := False;
		ItemBackColor[h] := $f0f0f0;
		CellData[OleVariant(h),OleVariant(0)] := 'total';
		CellValueFormat[OleVariant(h),OleVariant(0)] := Integer(EXGRIDLib_TLB.exTotalField) Or Integer(EXGRIDLib_TLB.exHTML);
		FormatCell[OleVariant(h),OleVariant(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 TForm1.Grid1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
	with Grid1 do
	begin
		Refresh();
	end
end;

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

// ButtonClick event - Occurs when user clicks on the cell's button.
procedure TForm1.Grid1ButtonClick(ASender: TObject; Item : HITEM;ColIndex : Integer;Key : OleVariant);
begin
	with Grid1 do
	begin
		cmd := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Command'))) as ADODB_TLB.Command);
		with cmd do
		begin
			ActiveConnection := (IUnknown((IUnknown(Grid1.DataSource) as ADODB_TLB.Recordset).ActiveConnection) as ADODB_TLB.Connection);
			CommandText := 'INSERT INTO Orders (EmployeeID) VALUES(12345)';
			CommandType := 1;
			Execute(Null,Null,Null);
		end;
		(IUnknown(DataSource) as ADODB_TLB.Recordset).Requery(Null);
	end
end;

// Error event - Fired when an internal error occurs.
procedure TForm1.Grid1Error(ASender: TObject; Error : Integer;Description : WideString);
begin
	with Grid1 do
	begin
		OutputDebugString( Description );
	end
end;

with Grid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	ColumnAutoResize := False;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Select * From Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',1,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	ConditionalFormats.Add('%1=12345',Null).BackColor := $f0f0f0;
	with Items do
	begin
		LockedItemCount[EXGRIDLib_TLB.exTop] := 1;
		h := LockedItem[EXGRIDLib_TLB.exTop,0];
		ItemDivider[h] := 0;
		CellHasButton[OleVariant(h),OleVariant(0)] := True;
		CellValue[OleVariant(h),OleVariant(0)] := 'Requery (add a new record, using ADODB.Command)';
		CellHAlignment[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.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 TForm1.Grid1ButtonClick(ASender: TObject; Item : HITEM;ColIndex : Integer;Key : OleVariant);
begin
	with Grid1 do
	begin
		with (IUnknown(DataSource) as ADODB_TLB.Recordset) do
		begin
			AddNew('EmployeeID',OleVariant(123));
			Update(Null,Null);
		end;
	end
end;

// Error event - Fired when an internal error occurs.
procedure TForm1.Grid1Error(ASender: TObject; Error : Integer;Description : WideString);
begin
	with Grid1 do
	begin
		OutputDebugString( Description );
	end
end;

with Grid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	ColumnAutoResize := False;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',1,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	with Items do
	begin
		LockedItemCount[EXGRIDLib_TLB.exTop] := 1;
		h := LockedItem[EXGRIDLib_TLB.exTop,0];
		ItemDivider[h] := 0;
		CellHasButton[OleVariant(h),OleVariant(0)] := True;
		CellValue[OleVariant(h),OleVariant(0)] := 'AddNew';
		CellHAlignment[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.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 Grid1 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;
	BackColorHeader := $1000000;
	ForeColorHeader := RGB(128,128,128);
	Background[EXGRIDLib_TLB.exHeaderFilterBarButton] := $2000000;
	Background[EXGRIDLib_TLB.exBackColorFilter] := $ffffff;
	Background[EXGRIDLib_TLB.exForeColorFilter] := $10000;
	Background[EXGRIDLib_TLB.exSelBackColorFilter] := $1ff8000;
	Background[EXGRIDLib_TLB.exSelForeColorFilter] := $f0f0f0;
	Background[EXGRIDLib_TLB.exCursorHoverColumn] := $ffffffff;
	HeaderHeight := 24;
	BackColorLevelHeader := BackColor;
	with (IUnknown(Columns.Add('Filter')) as EXGRIDLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXGRIDLib_TLB.exShowExclude) Or Integer(EXGRIDLib_TLB.exShowFocusItem) Or Integer(EXGRIDLib_TLB.exShowCheckBox) Or Integer(EXGRIDLib_TLB.exSortItemsAsc);
		Def[EXGRIDLib_TLB.exHeaderPaddingLeft] := OleVariant(2);
		Def[EXGRIDLib_TLB.exHeaderPaddingRight] := OleVariant(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 TForm1.Grid1AddItem(ASender: TObject; Item : HITEM);
begin
	with Grid1 do
	begin
		with Items do
		begin
			CellFont[OleVariant(Item),OleVariant(1)] := (IUnknown(Grid1.Columns.Item[OleVariant(1)].Data) as stdole_TLB.StdFont);
			CellBold[OleVariant(Item),OleVariant(1)] := True;
			CellForeColor[OleVariant(Item),OleVariant(1)] := $ff;
		end;
	end
end;

with Grid1 do
begin
	BeginUpdate();
	HeaderHeight := 24;
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	Columns.Add('C1');
	with (IUnknown(Columns.Add('C2')) as EXGRIDLib_TLB.Column) do
	begin
		HTMLCaption := '<b><font Tahoma;14>C2';
		f := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('StdFont'))) as stdole_TLB.StdFont);
		with f do
		begin
			Name := 'Tahoma';
			Size := 11;
		end;
		Data := (IUnknown(f) as stdole_TLB.StdFont);
	end;
	with Items do
	begin
		CellValue[OleVariant(AddItem(OleVariant(10))),OleVariant(1)] := OleVariant(11);
		CellValue[OleVariant(AddItem(OleVariant(12))),OleVariant(1)] := OleVariant(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 TForm1.Grid1AddItem(ASender: TObject; Item : HITEM);
begin
	with Grid1 do
	begin
		with Items do
		begin
			f := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('StdFont'))) as stdole_TLB.StdFont);
			with f do
			begin
				Name := 'Tahoma';
				Size := 11;
			end;
			CellFont[OleVariant(Item),OleVariant(1)] := (IUnknown(f) as stdole_TLB.StdFont);
			CellBold[OleVariant(Item),OleVariant(1)] := True;
			CellForeColor[OleVariant(Item),OleVariant(1)] := $ff;
		end;
	end
end;

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

with Grid1 do
begin
	BeginUpdate();
	with ConditionalFormats.Add('1',Null) do
	begin
		Bold := True;
		ForeColor := $ff;
		f := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('StdFont'))) as stdole_TLB.StdFont);
		with f do
		begin
			Name := 'Tahoma';
			Size := 11;
		end;
		Font := (IUnknown(f) as stdole_TLB.StdFont);
		ApplyTo := EXGRIDLib_TLB.FormatApplyToEnum($1);
	end;
	HeaderHeight := 24;
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	Columns.Add('C1');
	(IUnknown(Columns.Add('C2')) as EXGRIDLib_TLB.Column).HTMLCaption := '<b><font Tahoma;14>C2';
	with Items do
	begin
		CellValue[OleVariant(AddItem(OleVariant(10))),OleVariant(1)] := OleVariant(11);
		CellValue[OleVariant(AddItem(OleVariant(12))),OleVariant(1)] := OleVariant(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 TForm1.Grid1UserEditorClose(ASender: TObject; Object : IDispatch;Item : HITEM;ColIndex : Integer);
begin
	// Items.CellValue(Item,ColIndex) = Object.Select("OrderID")
end;

// UserEditorOleEvent event - Occurs when an user editor fires an event.
procedure TForm1.Grid1UserEditorOleEvent(ASender: TObject; Object : IDispatch;Ev : IOleEvent;var CloseEditor : WordBool;Item : HITEM;ColIndex : Integer);
begin
	with Grid1 do
	begin
		OutputDebugString( Ev );
	end
end;

// UserEditorOpen event - Occurs when an user editor is about to be opened.
procedure TForm1.Grid1UserEditorOpen(ASender: TObject; Object : IDispatch;Item : HITEM;ColIndex : Integer);
begin
	// Object.Select("OrderID") = Me.Items.CellValue(Item,ColIndex)
end;

with Grid1 do
begin
	BeginUpdate();
	SortOnClick := EXGRIDLib_TLB.exNoSort;
	with (IUnknown(Columns.Add('Exontrol.ComboBox')) as EXGRIDLib_TLB.Column).Editor do
	begin
		EditType := EXGRIDLib_TLB.UserEditorType;
		UserEditor('Exontrol.ComboBox','');
		with UserEditorObject do
		begin
		end;
	end;
	DrawGridLines := EXGRIDLib_TLB.exRowLines;
	TreeColumnIndex := -1;
	DefaultItemHeight := 21;
	with Items do
	begin
		h := AddItem('shows always the drop-down editor');
		CellHAlignment[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.CenterAlignment;
		ItemDivider[h] := 0;
		ItemDividerLineAlignment[h] := EXGRIDLib_TLB.DividerCenter;
		SelectableItem[h] := False;
		EnableItem[h] := False;
		CellEditorVisible[OleVariant(AddItem(OleVariant(10248))),OleVariant(0)] := EXGRIDLib_TLB.exEditorVisible;
		CellEditorVisible[OleVariant(AddItem(OleVariant(10249))),OleVariant(0)] := EXGRIDLib_TLB.exEditorVisible;
		CellEditorVisible[OleVariant(AddItem(OleVariant(10250))),OleVariant(0)] := EXGRIDLib_TLB.exEditorVisible;
		h := AddItem('shows the drop-down editor when user clicks it');
		CellHAlignment[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.CenterAlignment;
		ItemDivider[h] := 0;
		ItemDividerLineAlignment[h] := EXGRIDLib_TLB.DividerCenter;
		SelectableItem[h] := False;
		EnableItem[h] := False;
		AddItem(OleVariant(10248));
		AddItem(OleVariant(10249));
		AddItem(OleVariant(10250));
	end;
	EndUpdate();
end
1107
The ItemHeight property is not working (method 2)

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

with Grid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	ScrollBySingleLine := True;
	with (IUnknown(Columns.Add('Column')) as EXGRIDLib_TLB.Column) do
	begin
		Width := 128;
		Def[EXGRIDLib_TLB.exCellSingleLine] := OleVariant(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_TLB.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 TForm1.Grid1AddGroupItem(ASender: TObject; Item : HITEM);
begin
	with Grid1 do
	begin
		with Items do
		begin
			ItemDividerLine[Item] := EXGRIDLib_TLB.EmptyLine;
			FormatCell[OleVariant(Item),OleVariant(GroupItem[Item])] := 'value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column`';
			CellValue[OleVariant(Item),'Min'] := 'min(current,all,dbl(%6))';
			CellValueFormat[OleVariant(Item),'Min'] := EXGRIDLib_TLB.exTotalField;
			CellValue[OleVariant(Item),'Max'] := 'max(current,all,dbl(%6))';
			CellValueFormat[OleVariant(Item),'Max'] := EXGRIDLib_TLB.exTotalField;
			CellValue[OleVariant(Item),'Sum'] := 'sum(current,all,dbl(%6))';
			CellValueFormat[OleVariant(Item),'Sum'] := EXGRIDLib_TLB.exTotalField;
			ItemBackColor[Item] := $f0f0f0;
		end;
	end
end;

// Change event - Occurs when the user changes the cell's content.
procedure TForm1.Grid1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
	with Grid1 do
	begin
		Refresh();
	end
end;

with Grid1 do
begin
	BeginUpdate();
	HasLines := EXGRIDLib_TLB.exNoLine;
	Description[EXGRIDLib_TLB.exColumnsFloatBar] := 'Show/Hide';
	ColumnsFloatBarSortOrder := EXGRIDLib_TLB.SortAscending;
	ColumnsFloatBarVisible := EXGRIDLib_TLB.exColumnsFloatBarVisibleIncludeCheckColumns;
	ColumnAutoResize := False;
	BackColorSortBar := RGB(240,240,240);
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.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 (IUnknown(Add('Min')) as EXGRIDLib_TLB.Column) do
		begin
			Visible := False;
			AllowDragging := False;
		end;
		var_Column := (IUnknown(Add('Max')) as EXGRIDLib_TLB.Column);
		with var_Column do
		begin
			Visible := False;
			Visible := False;
			AllowDragging := False;
		end;
		var_Column1 := (IUnknown(Add('Sum')) as EXGRIDLib_TLB.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_TLB.exCellBackColor] := OleVariant(12895487);
		Def[EXGRIDLib_TLB.exHeaderBackColor] := Def[EXGRIDLib_TLB.exCellBackColor];
		HeaderBold := True;
		AllowGroupBy := False;
		Alignment := EXGRIDLib_TLB.RightAlignment;
	end;
	ScrollBySingleLine := False;
	with Items do
	begin
		LockedItemCount[EXGRIDLib_TLB.exBottom] := 2;
		hL := LockedItem[EXGRIDLib_TLB.exBottom,0];
		ItemDivider[hL] := 0;
		ItemHeight[hL] := 3;
		ItemDividerLineAlignment[hL] := EXGRIDLib_TLB.DividerTop;
		ItemDividerLine[hL] := EXGRIDLib_TLB.DoubleLine;
		hL := LockedItem[EXGRIDLib_TLB.exBottom,1];
		CellValue[OleVariant(hL),OleVariant(6)] := 'sum(all,rec,dbl(%6))';
		CellValueFormat[OleVariant(hL),OleVariant(6)] := EXGRIDLib_TLB.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 TForm1.Grid1AddGroupItem(ASender: TObject; Item : HITEM);
begin
	with Grid1 do
	begin
		with Items do
		begin
			ItemDividerLine[Item] := EXGRIDLib_TLB.EmptyLine;
			FormatCell[OleVariant(Item),OleVariant(GroupItem[Item])] := 'value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column`';
			CellValue[OleVariant(Item),'Min'] := 'min(current,all,dbl(%6))';
			CellValueFormat[OleVariant(Item),'Min'] := EXGRIDLib_TLB.exTotalField;
			CellValue[OleVariant(Item),'Max'] := 'max(current,all,dbl(%6))';
			CellValueFormat[OleVariant(Item),'Max'] := EXGRIDLib_TLB.exTotalField;
			CellValue[OleVariant(Item),'Sum'] := 'sum(current,all,dbl(%6))';
			CellValueFormat[OleVariant(Item),'Sum'] := EXGRIDLib_TLB.exTotalField;
			ItemBackColor[Item] := $f0f0f0;
		end;
	end
end;

// Change event - Occurs when the user changes the cell's content.
procedure TForm1.Grid1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
	with Grid1 do
	begin
		Refresh();
	end
end;

with Grid1 do
begin
	BeginUpdate();
	HasLines := EXGRIDLib_TLB.exNoLine;
	ColumnAutoResize := False;
	BackColorSortBar := RGB(240,240,240);
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	SingleSort := False;
	SortBarVisible := True;
	AllowGroupBy := True;
	Columns.Item[OleVariant(1)].SortOrder := True;
	with Columns do
	begin
		(IUnknown(Add('Min')) as EXGRIDLib_TLB.Column).Visible := False;
		(IUnknown(Add('Max')) as EXGRIDLib_TLB.Column).Visible := False;
		(IUnknown(Add('Sum')) as EXGRIDLib_TLB.Column).Visible := False;
	end;
	with Columns.Item['Freight'] do
	begin
		Def[EXGRIDLib_TLB.exCellBackColor] := OleVariant(12895487);
		Def[EXGRIDLib_TLB.exHeaderBackColor] := Def[EXGRIDLib_TLB.exCellBackColor];
		HeaderBold := True;
		AllowGroupBy := False;
	end;
	ScrollBySingleLine := False;
	with Items do
	begin
		LockedItemCount[EXGRIDLib_TLB.exBottom] := 1;
		hL := LockedItem[EXGRIDLib_TLB.exBottom,0];
		ItemDivider[hL] := 0;
		ItemHeight[hL] := 24;
		ItemDividerLineAlignment[hL] := EXGRIDLib_TLB.DividerTop;
		ItemDividerLine[hL] := EXGRIDLib_TLB.DoubleLine;
		CellValue[OleVariant(hL),OleVariant(0)] := 'sum(all,rec,dbl(%6))';
		CellValueFormat[OleVariant(hL),OleVariant(0)] := Integer(EXGRIDLib_TLB.exTotalField) Or Integer(EXGRIDLib_TLB.exHTML);
		CellHAlignment[OleVariant(hL),OleVariant(0)] := EXGRIDLib_TLB.RightAlignment;
		FormatCell[OleVariant(hL),OleVariant(0)] := '''Freight: <bgcolor=FFC4C4> ''+(value format ``) + ` `';
	end;
	EndUpdate();
end
1103
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeCheckColumns

with Grid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	with Columns do
	begin
		Add('City');
		(IUnknown(Add('Start')) as EXGRIDLib_TLB.Column).Visible := False;
		(IUnknown(Add('End')) as EXGRIDLib_TLB.Column).Visible := False;
	end;
	Description[EXGRIDLib_TLB.exColumnsFloatBar] := 'Show/Hide';
	ColumnsFloatBarSortOrder := EXGRIDLib_TLB.SortAscending;
	ColumnsFloatBarVisible := EXGRIDLib_TLB.exColumnsFloatBarVisibleIncludeCheckColumns;
	EndUpdate();
end
1102
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeHiddenColumn

with Grid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	HeaderAppearance := EXGRIDLib_TLB.Etched;
	with Columns do
	begin
		Add('City');
		(IUnknown(Add('Start')) as EXGRIDLib_TLB.Column).Visible := False;
		(IUnknown(Add('End')) as EXGRIDLib_TLB.Column).Visible := False;
	end;
	Description[EXGRIDLib_TLB.exColumnsFloatBar] := 'Show';
	ColumnsFloatBarVisible := EXGRIDLib_TLB.exColumnsFloatBarVisibleIncludeHiddenColumns;
	ColumnsFloatBarSortOrder := EXGRIDLib_TLB.SortAscending;
	EndUpdate();
end
1101
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeGroupByColumns

with Grid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	HeaderAppearance := EXGRIDLib_TLB.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 := RGB(250,250,250);
	Description[EXGRIDLib_TLB.exColumnsFloatBar] := 'Group-By';
	ColumnsFloatBarVisible := EXGRIDLib_TLB.exColumnsFloatBarVisibleIncludeGroupByColumns;
	ColumnsFloatBarSortOrder := EXGRIDLib_TLB.SortAscending;
	Columns.Item['City'].SortOrder := EXGRIDLib_TLB.SortAscending;
	EndUpdate();
end