668:
Is it possible to change the caption from a column without to remove the column and add it with the new caption
with Tree1 do
begin
	(IUnknown(Columns.Add('ColumnName')) as EXTREELib_TLB.Column).Caption := 'NewName';
	(IUnknown(Columns.Add('ColumnName')) as EXTREELib_TLB.Column).HTMLCaption := '<b>New</b>Name';
end
667:
FilterBarCaption ALL Keyword ( sample 2, result )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.Tree1AddItem(ASender: TObject; Item : HITEM);
begin
	with Tree1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[Item],Null,Null);
		Items.CellImage[OleVariant(Item),OleVariant(3)] := i;
	end
end;

with Tree1 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('Col-1')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsAsc);
	end;
	with (IUnknown(Columns.Add('Col-2')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsAsc);
	end;
	with (IUnknown(Columns.Add('Check')) as EXTREELib_TLB.Column) do
	begin
		Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXTREELib_TLB.exCheck;
	end;
	with (IUnknown(Columns.Add('Image')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXTREELib_TLB.exImage;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox);
	end;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_TLB.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellCaption[OleVariant(AddItem('Item A')),OleVariant(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellCaption[OleVariant(h),OleVariant(1)] := 'Sub-Item B';
		CellState[OleVariant(h),OleVariant(2)] := 1;
		CellCaption[OleVariant(AddItem('Item C')),OleVariant(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (IUnknown(Font) as stdole_TLB.StdFont);
	Description[EXTREELib_TLB.exFilterBarAnd] := FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',OleVariant(Description[EXTREELib_TLB.exFilterBarAnd]),Null,Null);
	FilterBarCaption := '(( ( all replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<' + 
	's>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matchit' + 
	'emcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount ' + 
	'+ ` item(s)`) )))';
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarVisible) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
	with Columns.Item[OleVariant(0)] do
	begin
		FilterType := EXTREELib_TLB.exFilter;
		Filter := 'Item A|Item B';
	end;
	Columns.Item[OleVariant(2)].Filter := 1;
	ApplyFilter();
	EndUpdate();
end
666:
FilterBarCaption ALL Keyword ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.Tree1AddItem(ASender: TObject; Item : HITEM);
begin
	with Tree1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[Item],Null,Null);
		Items.CellImage[OleVariant(Item),OleVariant(3)] := i;
	end
end;

with Tree1 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('Col-1')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsAsc);
	end;
	with (IUnknown(Columns.Add('Col-2')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsAsc);
	end;
	with (IUnknown(Columns.Add('Check')) as EXTREELib_TLB.Column) do
	begin
		Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXTREELib_TLB.exCheck;
	end;
	with (IUnknown(Columns.Add('Image')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXTREELib_TLB.exImage;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox);
	end;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_TLB.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellCaption[OleVariant(AddItem('Item A')),OleVariant(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellCaption[OleVariant(h),OleVariant(1)] := 'Sub-Item B';
		CellState[OleVariant(h),OleVariant(2)] := 1;
		CellCaption[OleVariant(AddItem('Item C')),OleVariant(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (IUnknown(Font) as stdole_TLB.StdFont);
	Description[EXTREELib_TLB.exFilterBarAnd] := FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',OleVariant(Description[EXTREELib_TLB.exFilterBarAnd]),Null,Null);
	FilterBarCaption := 'all';
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarVisible) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
	with Columns.Item[OleVariant(0)] do
	begin
		FilterType := EXTREELib_TLB.exFilter;
		Filter := 'Item A|Item B';
	end;
	Columns.Item[OleVariant(2)].Filter := 1;
	ApplyFilter();
	EndUpdate();
end
665:
FilterBarCaption ALLUI Keyword ( sample 2, result )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.Tree1AddItem(ASender: TObject; Item : HITEM);
begin
	with Tree1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[Item],Null,Null);
		Items.CellImage[OleVariant(Item),OleVariant(3)] := i;
	end
end;

with Tree1 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('Col-1')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsAsc);
	end;
	with (IUnknown(Columns.Add('Col-2')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsAsc);
	end;
	with (IUnknown(Columns.Add('Check')) as EXTREELib_TLB.Column) do
	begin
		Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXTREELib_TLB.exCheck;
	end;
	with (IUnknown(Columns.Add('Image')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXTREELib_TLB.exImage;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox);
	end;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_TLB.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellCaption[OleVariant(AddItem('Item A')),OleVariant(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellCaption[OleVariant(h),OleVariant(1)] := 'Sub-Item B';
		CellState[OleVariant(h),OleVariant(2)] := 1;
		CellCaption[OleVariant(AddItem('Item C')),OleVariant(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (IUnknown(Font) as stdole_TLB.StdFont);
	Description[EXTREELib_TLB.exFilterBarAnd] := FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',OleVariant(Description[EXTREELib_TLB.exFilterBarAnd]),Null,Null);
	FilterBarCaption := '(( ( allui replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `' + 
	'[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( match' + 
	'itemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcoun' + 
	't + ` item(s)`) )))';
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarVisible) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
	with Columns.Item[OleVariant(0)] do
	begin
		FilterType := EXTREELib_TLB.exFilter;
		Filter := 'Item A|Item B';
	end;
	Columns.Item[OleVariant(2)].Filter := 1;
	ApplyFilter();
	EndUpdate();
end
664:
FilterBarCaption ALLUI Keyword ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.Tree1AddItem(ASender: TObject; Item : HITEM);
begin
	with Tree1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[Item],Null,Null);
		Items.CellImage[OleVariant(Item),OleVariant(3)] := i;
	end
end;

with Tree1 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('Col-1')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsAsc);
	end;
	with (IUnknown(Columns.Add('Col-2')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsAsc);
	end;
	with (IUnknown(Columns.Add('Check')) as EXTREELib_TLB.Column) do
	begin
		Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXTREELib_TLB.exCheck;
	end;
	with (IUnknown(Columns.Add('Image')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXTREELib_TLB.exImage;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox);
	end;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_TLB.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellCaption[OleVariant(AddItem('Item A')),OleVariant(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellCaption[OleVariant(h),OleVariant(1)] := 'Sub-Item B';
		CellState[OleVariant(h),OleVariant(2)] := 1;
		CellCaption[OleVariant(AddItem('Item C')),OleVariant(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (IUnknown(Font) as stdole_TLB.StdFont);
	Description[EXTREELib_TLB.exFilterBarAnd] := FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',OleVariant(Description[EXTREELib_TLB.exFilterBarAnd]),Null,Null);
	FilterBarCaption := 'allui';
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarVisible) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
	with Columns.Item[OleVariant(0)] do
	begin
		FilterType := EXTREELib_TLB.exFilter;
		Filter := 'Item A|Item B';
	end;
	Columns.Item[OleVariant(2)].Filter := 1;
	ApplyFilter();
	EndUpdate();
end
663:
FilterBarCaption AVAILABLE Keyword ( sample 2, result )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.Tree1AddItem(ASender: TObject; Item : HITEM);
begin
	with Tree1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[Item],Null,Null);
		Items.CellImage[OleVariant(Item),OleVariant(3)] := i;
	end
end;

with Tree1 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('Col-1')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsAsc);
	end;
	with (IUnknown(Columns.Add('Col-2')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsAsc);
	end;
	with (IUnknown(Columns.Add('Check')) as EXTREELib_TLB.Column) do
	begin
		Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXTREELib_TLB.exCheck;
	end;
	with (IUnknown(Columns.Add('Image')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXTREELib_TLB.exImage;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox);
	end;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_TLB.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellCaption[OleVariant(AddItem('Item A')),OleVariant(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellCaption[OleVariant(h),OleVariant(1)] := 'Sub-Item B';
		CellState[OleVariant(h),OleVariant(2)] := 1;
		CellCaption[OleVariant(AddItem('Item C')),OleVariant(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (IUnknown(Font) as stdole_TLB.StdFont);
	Description[EXTREELib_TLB.exFilterBarAnd] := FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',OleVariant(Description[EXTREELib_TLB.exFilterBarAnd]),Null,Null);
	FilterBarCaption := '(( ( value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` ) + ` ` + ( avai' + 
	'lable replace `[` with `<bgcolor=C0C0C0><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` replace `<s>` with ``' + 
	' replace `</s>` with `` ) + `<fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount ' + 
	'+ 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))';
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarVisible) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
	with Columns.Item[OleVariant(0)] do
	begin
		FilterType := EXTREELib_TLB.exFilter;
		Filter := 'Item A|Item B';
	end;
	Columns.Item[OleVariant(2)].Filter := 1;
	ApplyFilter();
	EndUpdate();
end
662:
FilterBarCaption AVAILABLE Keyword ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.Tree1AddItem(ASender: TObject; Item : HITEM);
begin
	with Tree1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[Item],Null,Null);
		Items.CellImage[OleVariant(Item),OleVariant(3)] := i;
	end
end;

with Tree1 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('Col-1')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsAsc);
	end;
	with (IUnknown(Columns.Add('Col-2')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsAsc);
	end;
	with (IUnknown(Columns.Add('Check')) as EXTREELib_TLB.Column) do
	begin
		Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXTREELib_TLB.exCheck;
	end;
	with (IUnknown(Columns.Add('Image')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXTREELib_TLB.exImage;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox);
	end;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_TLB.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellCaption[OleVariant(AddItem('Item A')),OleVariant(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellCaption[OleVariant(h),OleVariant(1)] := 'Sub-Item B';
		CellState[OleVariant(h),OleVariant(2)] := 1;
		CellCaption[OleVariant(AddItem('Item C')),OleVariant(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (IUnknown(Font) as stdole_TLB.StdFont);
	Description[EXTREELib_TLB.exFilterBarAnd] := FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',OleVariant(Description[EXTREELib_TLB.exFilterBarAnd]),Null,Null);
	FilterBarCaption := 'value + ` ` + available';
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarVisible) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
	with Columns.Item[OleVariant(0)] do
	begin
		FilterType := EXTREELib_TLB.exFilter;
		Filter := 'Item A|Item B';
	end;
	Columns.Item[OleVariant(2)].Filter := 1;
	ApplyFilter();
	EndUpdate();
end
661:
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 3, results )

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

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

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

with Tree1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsAsc);
	end;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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';
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarShowCloseOnRight) Or Integer(EXTREELib_TLB.exFilterBarToggle);
	with Columns.Item[OleVariant(0)] do
	begin
		FilterType := EXTREELib_TLB.exFilter;
		Filter := 'Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
657:
How can I get the number of results/items being shown in the control's filter bar (sample 4)

with Tree1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsAsc);
	end;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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;
	FilterBarFont := (IUnknown(Font) as stdole_TLB.StdFont);
	FilterBarPrompt := FormatABC('`<b>` + value',OleVariant(FilterBarPrompt),Null,Null);
	FilterBarCaption := '`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount +' + 
	' 1) + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )';
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarCompact) Or Integer(EXTREELib_TLB.exFilterBarShowCloseOnRight) Or Integer(EXTREELib_TLB.exFilterBarShowCloseIfRequired) Or Integer(EXTREELib_TLB.exFilterBarCaptionVisible) Or Integer(EXTREELib_TLB.exFilterBarVisible) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
	EndUpdate();
end
656:
How can I get the number of results being shown in the control's filter bar (sample 3)

with Tree1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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;
	FilterBarFont := (IUnknown(Font) as stdole_TLB.StdFont);
	FilterBarCaption := '`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount +' + 
	' 1) + ` result(s)` ) : ``)';
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarCompact) Or Integer(EXTREELib_TLB.exFilterBarCaptionVisible) Or Integer(EXTREELib_TLB.exFilterBarVisible) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
	with Columns.Item[OleVariant(0)] do
	begin
		FilterType := EXTREELib_TLB.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
655:
How can I get the number of results being shown in the control's filter bar (sample 2, compact)

with Tree1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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;
	FilterBarFont := (IUnknown(Font) as stdole_TLB.StdFont);
	FilterBarCaption := '`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? `<off -4> ` + abs(matchitemcount + 1) + ` result(s)` : ``)';
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarCompact) Or Integer(EXTREELib_TLB.exFilterBarSingleLine) Or Integer(EXTREELib_TLB.exFilterBarCaptionVisible) Or Integer(EXTREELib_TLB.exFilterBarVisible) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
	with Columns.Item[OleVariant(0)] do
	begin
		FilterType := EXTREELib_TLB.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
654:
How can I get the number of results being shown in the control's filter bar (sample 1)

with Tree1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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;
	FilterBarFont := (IUnknown(Font) as stdole_TLB.StdFont);
	FilterBarCaption := '`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)';
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarCaptionVisible) Or Integer(EXTREELib_TLB.exFilterBarVisible) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
	with Columns.Item[OleVariant(0)] do
	begin
		FilterType := EXTREELib_TLB.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
653:
FilterBarCaption Predefined Keywords

// AfterExpandItem event - Fired after an item is expanded (collapsed).
procedure TForm1.Tree1AfterExpandItem(ASender: TObject; Item : HITEM);
begin
	with Tree1 do
	begin
		Refresh();
	end
end;

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

with Tree1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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;
	FilterBarFont := (IUnknown(Font) as stdole_TLB.StdFont);
	FilterBarCaption := '`<r><i><fgcolor=808080><upline><solidline><sha ;;0>` + value';
	FilterBarPromptPattern := 'B';
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarCompact) Or Integer(EXTREELib_TLB.exFilterBarSingleLine) Or Integer(EXTREELib_TLB.exFilterBarVisible) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
	with Columns.Item[OleVariant(0)] do
	begin
		FilterType := EXTREELib_TLB.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
651:
Just wondering if it is possible to show the filter bar's close button on the right ( sample 2 )

with Tree1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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;
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarShowCloseOnRight) Or Integer(EXTREELib_TLB.exFilterBarToggle) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
	FilterBarPrompt := FormatABC('`<r>` + value',OleVariant(FilterBarPrompt),Null,Null);
	EndUpdate();
end
650:
Just wondering if it is possible to show the filter bar's close button on the right ( sample 1 )

with Tree1 do
begin
	BeginUpdate();
	RightToLeft := True;
	(IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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;
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarToggle) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
	EndUpdate();
end
649:
How can I change the visual appearance of the filter bar's close button (EBN)

with Tree1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABHQDg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLOg7IJj' + 
	'yI4/SJAYCydKAWhxIaZKJHCZoEDaTAADCNVAQp6MEIJVbVEI0e79OgBLp/Z7kECIJJAaRjHQdJxGLA8EhtCQhCZteK6SgMKJYXhWQYRXI1JwvMBrWrdQjiOYELQtMKmS' + 
	'ZNLYGG4dR5SVJbcYhSYsRRFMoyDIOXYDLKsdYqSpXIThObEGgaPqJYjsUjCMKnR7HVIURrBPC9TBPE69ZgmC6ucKPX51ShKFaBWDZcwFAS+UBuYCAILiEAQGZ1XT8ORO' + 
	'icbgJgSTJRlCaZeDsHY7QGR4xkSYp3CaExZAQMgalQYAwjCAAfBANxcA2TgKAUOpDCGFhKg0RpXCwCwDHQHQHEyAIkCkOhbFOGA8A8DohBgRg9AccZcn8EpEjMLI2C2D' + 
	'YxAgQgvAIUIVkoAAPBQDJlECTZ3CCYwDACQwUA8A5MCAWAWDiQi4l8aQOEgLJuBgBgDmYFAzEoIoIl0WALgKYJbBABADAAHgHg8VAMmqCQQDMXABAATYwTmNwBDATJXA' + 
	'iAgjHmNQ5lgQ5QEQEQMmcWg/GwD5ylyNw2gMcJcjsBgBgOQQDDhRpVAMMwnDBFw1B0Ax8D0DxOmmJJIGQTY5hGMAwkwM4CAYLZAmAOJnAqAojiIGg6iieYkmeAYOHaKJ' + 
	'DCyCwjH6AoggsQpQliAJLhgaJ0CESBTnyDwjk+cg4g4P5IHIHJ+BWRRzlYWAxiOUxihsY4KjKLJRGqC44FCegkkkM58iAKAPnIWIWD8SRSFSfQnkmewUhYP4GiGKJ7G0' + 
	'TIbCSUoggqUo0lAQ4LnEcBcD8Coiiif4nE+eAAn2HpOkcFJqi4T5SkyMw/kqQown8IBIBOdA+A+DJrBqVxXEqYo4lCApLhGHBnD8S4ymyfxmg+cwQkQP5egOUZIWoEAk' + 
	'jIeIPBMBJBD+TBjBifwvkuc58hQJQPmFrYykkchclSApKjGOBuD+TRDFCfw3mmIxNi8FxFlOXhVC4aYDFyPgvg2YBcBcLZGCGCJ0DSLRzGSWQ/lmY5+mEP5gmMDBZRSM' + 
	'RsFsOxMhMJJ/DsTpTnwaQaE+N5ojuNhdEYNI5C4TZJO1GRDmCaxnA2Yx4n8IpIjOTBQBQC5TgyYw7gUYRYikC0BYRwsDQBoB8eA6Q2hsE0BUXgywZtYCyHMKwnxSAhAQ' + 
	'HkIQhRrBaDsCwA4ERiB2EWAIYIXhhiVEgAEUYwwYjyASLge4FhHgRDkM8OQih0jWPkGgBBAQ');
	end;
	(IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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;
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarToggle) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
	Background[EXTREELib_TLB.exFooterFilterBarButton] := $1000000;
	EndUpdate();
end
648:
How can I change the visual appearance of the filter bar's close button (solid)

with Tree1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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;
	FilterBarPromptVisible := EXTREELib_TLB.exFilterBarPromptVisible;
	Background[EXTREELib_TLB.exFooterFilterBarButton] := $ff;
	EndUpdate();
end
647:
Is it possible to prevent definitely showing the filter bar's close button

with Tree1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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;
	FilterBarPromptVisible := EXTREELib_TLB.exFilterBarPromptVisible;
	Background[EXTREELib_TLB.exFooterFilterBarButton] := $ffffffff;
	EndUpdate();
end
646:
Is it possible to show the close button only if there is a filter applied

with Tree1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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;
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarShowCloseIfRequired) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
	EndUpdate();
end
645:
The control's filter bar is not closed once I click the close button (toggle)

with Tree1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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');
		LockedItemCount[EXTREELib_TLB.BottomAlignment] := 1;
		h := LockedItem[EXTREELib_TLB.BottomAlignment,0];
		ItemDivider[h] := 0;
		CellCaption[OleVariant(h),OleVariant(0)] := '<c><fgcolor=808080>Press the CTRL + F to turn on/off the control''s filter bar. ALT + Up/Down moves the focus.';
		CellCaptionFormat[OleVariant(h),OleVariant(0)] := EXTREELib_TLB.exHTML;
	end;
	FilterBarCaption := '`<r><fgcolor=808080>` + value';
	FilterBarPromptPattern := 'B';
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarCompact) Or Integer(EXTREELib_TLB.exFilterBarToggle) Or Integer(EXTREELib_TLB.exFilterBarSingleLine) Or Integer(EXTREELib_TLB.exFilterBarVisible) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
	with Columns.Item[OleVariant(0)] do
	begin
		FilterType := EXTREELib_TLB.exFilter;
		Filter := 'Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
644:
How can I display the control's filter on a single line

with Tree1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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 := 'len(value) ? `filter for: <fgcolor 808080>` + value  : `<fgcolor 808080>no filter`';
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarSingleLine) Or Integer(EXTREELib_TLB.exFilterBarVisible);
	with Columns.Item[OleVariant(0)] do
	begin
		FilterType := EXTREELib_TLB.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
643:
How can I display the control's filter on a single line (prompt-combined)

with Tree1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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';
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarCompact) Or Integer(EXTREELib_TLB.exFilterBarSingleLine) Or Integer(EXTREELib_TLB.exFilterBarVisible) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
	with Columns.Item[OleVariant(0)] do
	begin
		FilterType := EXTREELib_TLB.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
642:
How can I get the number of results after a filter is applied

// Click event - Occurs when the user presses and then releases the left mouse button over the tree control.
procedure TForm1.Tree1Click(ASender: TObject; );
begin
	with Tree1 do
	begin
		ClearFilter();
	end
end;

// FilterChange event - Notifies your application that the filter is changed.
procedure TForm1.Tree1FilterChange(ASender: TObject; );
begin
	with Tree1 do
	begin
		OutputDebugString( 'Items.MatchItemCount' );
		OutputDebugString( Items.MatchItemCount );
		OutputDebugString( FormatABC('value < 0 ? `filter applied: ` + abs(value + 1) + ` result(s)` : `no filter`',Items.MatchItemCount,Null,Null) );
	end
end;

with Tree1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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;
	FilterBarPromptVisible := EXTREELib_TLB.exFilterBarPromptVisible;
	FilterBarPromptPattern := 'Item';
	EndUpdate();
end
641:
How can I programmatically clear the control's filter

// Click event - Occurs when the user presses and then releases the left mouse button over the tree control.
procedure TForm1.Tree1Click(ASender: TObject; );
begin
	with Tree1 do
	begin
		ClearFilter();
	end
end;

with Tree1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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;
	FilterBarPromptVisible := EXTREELib_TLB.exFilterBarPromptVisible;
	FilterBarPromptPattern := 'B';
	EndUpdate();
end
640:
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt-combined)

with Tree1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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;
	FilterBarPromptPattern := 'B';
	FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarVisible) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
	with Columns.Item[OleVariant(0)] do
	begin
		FilterType := EXTREELib_TLB.exFilter;
		Filter := 'Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
639:
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt)

with Tree1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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;
	FilterBarPromptVisible := EXTREELib_TLB.exFilterBarPromptVisible;
	FilterBarPromptPattern := 'B';
	EndUpdate();
end
638:
Is it possible to prevent closing the control's filter bar, so it is always shown

with Tree1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXTREELib_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 := 'len(value) = 0 ? `<fgcolor=808080>no filter` : value';
	FilterBarPromptVisible := EXTREELib_TLB.exFilterBarVisible;
	with Columns.Item[OleVariant(0)] do
	begin
		FilterType := EXTREELib_TLB.exFilter;
		Filter := 'Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
637:
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 4)

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

with Tree1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(3,'gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB' + 
	'cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD' + 
	'xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l' + 
	'lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5JlgX' + 
	'IcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIRg' + 
	'wZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOMI' + 
	'NCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA=');
		Add(1,'CP:3 -2 -2 2 2');
		Add(4,'gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB' + 
	'cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD' + 
	'xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l' + 
	'lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCEe' + 
	'Bkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchOF' + 
	'SFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQOJ' + 
	'tDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI=');
		Add(2,'CP:4 -2 -2 2 2');
	end;
	LinesAtRoot := EXTREELib_TLB.exGroupLinesAtRoot;
	HasButtons := EXTREELib_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
635:
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 2)

with Tree1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'XP:TREEVIEW 2 1');
		Add(2,'XP:TREEVIEW 2 2');
	end;
	Background[EXTREELib_TLB.exTreeGlyphOpen] := $1000000;
	Background[EXTREELib_TLB.exTreeGlyphClose] := $2000000;
	LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
	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
634:
How can I find if the control is running in DPI mode
with Tree1 do
begin
	OutputDebugString( FormatABC('dpi = 1 ? `normal/stretch mode` : `dpi mode`',Null,Null,Null) );
end
633:
How can I change the visual appearance of the +/- buttons (method 1)

with Tree1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB' + 
	'cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD' + 
	'xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l' + 
	'lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5JlgX' + 
	'IcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIRg' + 
	'wZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOMI' + 
	'NCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA=');
		Add(2,'gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB' + 
	'cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD' + 
	'xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l' + 
	'lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCEe' + 
	'Bkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchOF' + 
	'SFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQOJ' + 
	'tDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI=');
	end;
	LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
	Background[EXTREELib_TLB.exTreeGlyphOpen] := $1000000;
	Background[EXTREELib_TLB.exTreeGlyphClose] := $2000000;
	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
632:
I am using single selection, the question is if possible to select an item only when the user releases the mouse, as currently it selects the item as soon as the user clicks it
// SelectionChanged event - Fired after a new item has been selected.
procedure TForm1.Tree1SelectionChanged(ASender: TObject; );
begin
	with Tree1 do
	begin
		OutputDebugString( 'SelectionChanged' );
	end
end;

with Tree1 do
begin
	BeginUpdate();
	FreezeEvents(True);
	SingleSel := True;
	SelectOnRelease := True;
	(IUnknown(Columns.Add('Column')) as EXTREELib_TLB.Column).FormatColumn := '1 apos `A-Z`';
	with Items do
	begin
		AddItem('');
		SelectItem[AddItem('')] := True;
		AddItem('');
	end;
	FreezeEvents(False);
	EndUpdate();
end
631:
Is it possible to select nothing
// SelectionChanged event - Fired after a new item has been selected.
procedure TForm1.Tree1SelectionChanged(ASender: TObject; );
begin
	with Tree1 do
	begin
		OutputDebugString( 'SelectionChanged' );
	end
end;

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

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

// CellStateChanged event - Fired after cell's state has been changed.
procedure TForm1.Tree1CellStateChanged(ASender: TObject; Item : HITEM;ColIndex : Integer);
begin
	with Tree1 do
	begin
		Refresh();
	end
end;

with Tree1 do
begin
	BeginUpdate();
	LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
	SelBackMode := EXTREELib_TLB.exTransparent;
	DefaultItemHeight := 22;
	with (IUnknown(Columns.Add('Tasks')) as EXTREELib_TLB.Column) do
	begin
		Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
		PartialCheck := True;
	end;
	with VisualAppearance do
	begin
		Add(2,'gBFLBCJwBAEHhEJAAEhABUkIQAAYAQGKIcBiAKBQAGYBIJDEMQ3DjAUBjMK4ZwTC4AIQjCK4JDKHYJRpHEZgLBMJAAGIZYhhUYRUiYMkiJBGGDIDiGGI2SJAcbTVIEcx' + 
	'9EyUJSgSTJOjCMokTTIU4TTLYASbJafJJhWSaAiyMouDIOMg1BDNIw/Hika6jOgKUisNJXRzWIBTbDlOQ3JqnbCjOQRSrQBoNDAMAiiaKlbwJPK9RoieQXfwUAJrXJcF' + 
	'qXFSLVxNBKAQEBA=');
		Add(1,'CP:2 1 1 -1 -1');
	end;
	with ConditionalFormats.Add('%CS0 = 1',Null) do
	begin
		BackColor := $1000000;
	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),Null] := 1;
		hChild := InsertItem(h,Null,'Task 3');
		CellState[OleVariant(hChild),Null] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
628:
How can I change the caption of the checked items (sample 2)

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

with Tree1 do
begin
	BeginUpdate();
	LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
	with (IUnknown(Columns.Add('Tasks')) as EXTREELib_TLB.Column) do
	begin
		Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
		PartialCheck := True;
		Def[EXTREELib_TLB.exCellCaptionFormat] := OleVariant(1);
		FormatColumn := 'value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)';
	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),Null] := 1;
		hChild := InsertItem(h,Null,'Task 3');
		CellState[OleVariant(hChild),Null] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
626:
How can I change the font for the checked items

// CellStateChanged event - Fired after cell's state has been changed.
procedure TForm1.Tree1CellStateChanged(ASender: TObject; Item : HITEM;ColIndex : Integer);
begin
	with Tree1 do
	begin
		Refresh();
	end
end;

with Tree1 do
begin
	BeginUpdate();
	LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
	DefaultItemHeight := 22;
	with (IUnknown(Columns.Add('Tasks')) as EXTREELib_TLB.Column) do
	begin
		Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
		PartialCheck := True;
	end;
	with ConditionalFormats.Add('%CS0 = 1',Null) do
	begin
		f := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('StdFont'))) as stdole_TLB.StdFont);
		with f do
		begin
			Name := Tree1.Font.Name;
			Size := 12;
		end;
		Font := (IUnknown(f) as stdole_TLB.StdFont);
	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),Null] := 1;
		hChild := InsertItem(h,Null,'Task 3');
		CellState[OleVariant(hChild),Null] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
625:
How can I bold the checked items

// CellStateChanged event - Fired after cell's state has been changed.
procedure TForm1.Tree1CellStateChanged(ASender: TObject; Item : HITEM;ColIndex : Integer);
begin
	with Tree1 do
	begin
		Refresh();
	end
end;

with Tree1 do
begin
	BeginUpdate();
	LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
	with (IUnknown(Columns.Add('Tasks')) as EXTREELib_TLB.Column) do
	begin
		Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
		PartialCheck := True;
	end;
	with ConditionalFormats.Add('%CS0 = 1',Null) do
	begin
		Bold := 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),Null] := 1;
		hChild := InsertItem(h,Null,'Task 3');
		CellState[OleVariant(hChild),Null] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
624:
How can I change the foreground color for checked items

// CellStateChanged event - Fired after cell's state has been changed.
procedure TForm1.Tree1CellStateChanged(ASender: TObject; Item : HITEM;ColIndex : Integer);
begin
	with Tree1 do
	begin
		Refresh();
	end
end;

with Tree1 do
begin
	BeginUpdate();
	LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
	SelBackMode := EXTREELib_TLB.exTransparent;
	with (IUnknown(Columns.Add('Tasks')) as EXTREELib_TLB.Column) do
	begin
		Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
		PartialCheck := True;
	end;
	with ConditionalFormats.Add('%CS0 = 1',Null) do
	begin
		ForeColor := $8080ff;
	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),Null] := 1;
		hChild := InsertItem(h,Null,'Task 3');
		CellState[OleVariant(hChild),Null] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
623:
How can I change the background color for checked items (solid color)

// CellStateChanged event - Fired after cell's state has been changed.
procedure TForm1.Tree1CellStateChanged(ASender: TObject; Item : HITEM;ColIndex : Integer);
begin
	with Tree1 do
	begin
		Refresh();
	end
end;

with Tree1 do
begin
	BeginUpdate();
	LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
	SelBackMode := EXTREELib_TLB.exTransparent;
	with (IUnknown(Columns.Add('Tasks')) as EXTREELib_TLB.Column) do
	begin
		Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
		PartialCheck := True;
	end;
	with ConditionalFormats.Add('%CS0 = 1',Null) do
	begin
		BackColor := $8080ff;
	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),Null] := 1;
		hChild := InsertItem(h,Null,'Task 3');
		CellState[OleVariant(hChild),Null] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
622:
How can I export the cell's state as well

with Tree1 do
begin
	BeginUpdate();
	with Columns do
	begin
		(IUnknown(Add('C1')) as EXTREELib_TLB.Column).Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
		(IUnknown(Add('C2')) as EXTREELib_TLB.Column).FormatColumn := '1 index `A-Z`';
		(IUnknown(Add('C3')) as EXTREELib_TLB.Column).FormatColumn := '100 index ``';
	end;
	with Items do
	begin
		AddItem('Item 1');
		CellState[OleVariant(AddItem('Item 2')),Null] := 1;
		CellState[OleVariant(AddItem('Item 3')),Null] := 1;
	end;
	EndUpdate();
	OutputDebugString( 'Export CSV Items including Check-State:' );
	BeginUpdate();
	with (IUnknown(Columns.Add('Check')) as EXTREELib_TLB.Column) do
	begin
		Position := 0;
		FormatColumn := '%CS0';
	end;
	OutputDebugString( Export('',Null) );
	Columns.Remove('Check');
	EndUpdate();
end
621:
The BeforeExpandItem event is fired when clicking the drop down filter button. What we can do to prevent that (method 2)
// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
procedure TForm1.Tree1BeforeExpandItem(ASender: TObject; Item : HITEM;var Cancel : OleVariant);
begin
	with Tree1 do
	begin
		OutputDebugString( 'BeforeExpandItem' );
		OutputDebugString( Item );
		OutputDebugString( 'ColumnFromPoint' );
		OutputDebugString( ColumnFromPoint[-1,-1] );
		OutputDebugString( 'ColumnFromPoint return -1, if the user clicks the +/- glitch, else it returns the index of the column where the click occurs.' );
		Items.InsertItem(Item,Null,'new child');
	end
end;

with Tree1 do
begin
	BeginUpdate();
	LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
	with Columns do
	begin
		(IUnknown(Add('Items')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
	end;
	with Items do
	begin
		ItemHasChildren[InsertItem(Null,Null,'Group 1')] := True;
		ItemHasChildren[InsertItem(Null,Null,'Group 2')] := True;
	end;
	EndUpdate();
end
620:
The BeforeExpandItem event is fired when clicking the drop down filter button. What we can do to prevent that (method 1)
// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
procedure TForm1.Tree1BeforeExpandItem(ASender: TObject; Item : HITEM;var Cancel : OleVariant);
begin
	with Tree1 do
	begin
		OutputDebugString( 'BeforeExpandItem' );
		OutputDebugString( Item );
		Items.InsertItem(Item,Null,'new child');
	end
end;

with Tree1 do
begin
	BeginUpdate();
	LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
	with Columns do
	begin
		with (IUnknown(Add('Items')) as EXTREELib_TLB.Column) do
		begin
			DisplayFilterButton := True;
			FilterList := EXTREELib_TLB.exRootItems;
		end;
	end;
	with Items do
	begin
		ItemHasChildren[InsertItem(Null,Null,'Group 1')] := True;
		ItemHasChildren[InsertItem(Null,Null,'Group 2')] := True;
	end;
	EndUpdate();
end
619:
How do I change the drop down filter icon/button (black)

with Tree1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQg' + 
	'mPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThd' + 
	'r4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA');
	end;
	Background[EXTREELib_TLB.exHeaderFilterBarButton] := $1000000;
	Background[EXTREELib_TLB.exCursorHoverColumn] := $ffffffff;
	HeaderAppearance := EXTREELib_TLB.None2;
	BackColorHeader := RGB(0,0,0);
	ForeColorHeader := RGB(255,255,255);
	HeaderVisible := True;
	BackColorLevelHeader := BackColor;
	with (IUnknown(Columns.Add('Filter')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		AllowSort := False;
		AllowDragging := False;
	end;
	EndUpdate();
end
618:
How do I change the drop down filter icon/button (white)

with Tree1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(2,'gBFLBCJwBAEHhEJAAEhABX8GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwYgmNYiTLAcgANJ' + 
	'0WBaGIZJ4gOT5fDKMoEDRRYADFCscwxJybQAqGQKKb+VgAVY/cTyBIAEQSKA0TDOQ5TSKWB4JPZQRBEbZMNBtBIUJquKaqShdQJCU5FdY3Xblez9P7AMBwLFEC4NQ8YN' + 
	'YuPhjR4dRTIMhvVAsUArFh8Zg9GZZFjmDIDT4ydBLTQwcyVIKnP5qOa6XbmPoCQDYKxZHYxPzVDa3axuL76dqCAT7XrXNy1TbNRrzQKfcJqfCbdw2YaDZLOOT3fjuI4h' + 
	'hKaRzFAHJ+jYQ4xHuY4gHuGIXGeExqC8Tp6C+PoEm+G5ImycRgh0XwvDGa5rgOeoejyXwnFeQp2mkf5ClgBB9gCWIYAwfYAEKV58mkdwOggNArgOXY2EWLoDkKOA0mgb' + 
	'hOGgZApgaSBIHWSYHSmbApgYThmESZYJkIeIkgeCpfliLIHgpMIcmUYYYmODAlg2SI4mWfRfGOEguDcCRjFYAJihCQhJBSDoRmONgKEcI4kFCEJhhOVYTmYnAlEAQhWB' + 
	'MJYJGYWoWmWSR2F6F5lnkWAQhUAgpEieRWEuSYkjWGpmkmNhuhuZwJkYcocmaaYkjyEhngnUA6lEFAlAEgI=');
		Add(1,'CP:2 -14 -4 -2 4');
	end;
	Background[EXTREELib_TLB.exHeaderFilterBarButton] := $1000000;
	Background[EXTREELib_TLB.exCursorHoverColumn] := BackColor;
	HeaderAppearance := EXTREELib_TLB.None2;
	BackColorHeader := RGB(255,255,255);
	HeaderVisible := True;
	HeaderHeight := 24;
	BackColorLevelHeader := BackColor;
	with (IUnknown(Columns.Add('Filter')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		AllowSort := False;
		AllowDragging := False;
	end;
	EndUpdate();
end
617:
Do you have any Fit-To-Page options when printing the control (W x T, Fit-To )

with Tree1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	ContinueColumnScroll := 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\ExTree\Sample\Access2007\sample.accdb',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	EndUpdate();
	with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.Print'))) as EXPRINTLib_TLB.Print) do
	begin
		Options := 'FitToPage =2 x 1';
		PrintExt := (IUnknown(Tree1.DefaultInterface) as EXTREELib_TLB.Tree);
		Preview();
	end;
end
616:
Do you have any Fit-To-Page options when printing the control ( x T, Fit-To Tall )

with Tree1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	ContinueColumnScroll := 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\ExTree\Sample\Access2007\sample.accdb',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	EndUpdate();
	with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.Print'))) as EXPRINTLib_TLB.Print) do
	begin
		Options := 'FitToPage = x 2';
		PrintExt := (IUnknown(Tree1.DefaultInterface) as EXTREELib_TLB.Tree);
		Preview();
	end;
end
615:
Do you have any Fit-To-Page options when printing the control ( W x, Fit-To Wide )

with Tree1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	ContinueColumnScroll := 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\ExTree\Sample\Access2007\sample.accdb',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	EndUpdate();
	with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.Print'))) as EXPRINTLib_TLB.Print) do
	begin
		Options := 'FitToPage = 2 x';
		PrintExt := (IUnknown(Tree1.DefaultInterface) as EXTREELib_TLB.Tree);
		Preview();
	end;
end
614:
Do you have any Fit-To-Page options when printing the control ( percent view, Adjust-To )

with Tree1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	ContinueColumnScroll := 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\ExTree\Sample\Access2007\sample.accdb',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	EndUpdate();
	with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.Print'))) as EXPRINTLib_TLB.Print) do
	begin
		Options := 'FitToPage = 50%';
		PrintExt := (IUnknown(Tree1.DefaultInterface) as EXTREELib_TLB.Tree);
		Preview();
	end;
end
613:
How do I prevent changing the cell's state ( check-box state )
// CellStateChanging event - Fired before cell's state is about to be changed.
procedure TForm1.Tree1CellStateChanging(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewState : Integer);
begin
	with Tree1 do
	begin
		with Items do
		begin
			NewState := CellState[OleVariant(Item),OleVariant(ColIndex)];
		end;
	end
end;

with Tree1 do
begin
	BeginUpdate();
	LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
	with (IUnknown(Columns.Add('P1')) as EXTREELib_TLB.Column) do
	begin
		Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
		PartialCheck := True;
	end;
	with (IUnknown(Columns.Add('P2')) as EXTREELib_TLB.Column) do
	begin
		Def[EXTREELib_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;
	end;
	EndUpdate();
end
612:
How can I use the CellState with ConditionalFormat/ComputedField/FormatColumn

// CellStateChanged event - Fired after cell's state has been changed.
procedure TForm1.Tree1CellStateChanged(ASender: TObject; Item : HITEM;ColIndex : Integer);
begin
end;

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

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

with Tree1 do
begin
	BeginUpdate();
	Columns.Add('Items');
	with (IUnknown(Columns.Add('Format')) as EXTREELib_TLB.Column) do
	begin
		FormatColumn := '%0';
		Caption := FormatColumn;
		Def[EXTREELib_TLB.exCellForeColor] := OleVariant(8421504);
		Def[EXTREELib_TLB.exHeaderForeColor] := Def[EXTREELib_TLB.exCellForeColor];
		Width := 96;
		AllowSizing := False;
	end;
	with (IUnknown(Columns.Add('Format')) as EXTREELib_TLB.Column) do
	begin
		FormatColumn := '%C0';
		Caption := FormatColumn;
		Def[EXTREELib_TLB.exCellForeColor] := OleVariant(8421504);
		Def[EXTREELib_TLB.exHeaderForeColor] := Def[EXTREELib_TLB.exCellForeColor];
		Width := 96;
		AllowSizing := False;
	end;
	with Items do
	begin
		AddItem(OleVariant(1));
		h := AddItem(OleVariant(0));
		CellCaption[OleVariant(h),OleVariant(0)] := '<b>HTML</b> Text';
		CellCaptionFormat[OleVariant(h),OleVariant(0)] := EXTREELib_TLB.exHTML;
		AddItem(OleVariant(2));
	end;
	EndUpdate();
end
609:
Can I display the radio-button with a solid color

with Tree1 do
begin
	BeginUpdate();
	RadioImage[False] := 32699122;
	RadioImage[True] := 16777216;
	(IUnknown(Columns.Add('Check')) as EXTREELib_TLB.Column).Def[EXTREELib_TLB.exCellHasRadioButton] := OleVariant(True);
	with Items do
	begin
		AddItem('Radio 1');
		CellState[OleVariant(AddItem('Radio 2')),OleVariant(0)] := 1;
		AddItem('Radio 1');
	end;
	EndUpdate();
end
608:
Can I display the check-box with a solid color

with Tree1 do
begin
	BeginUpdate();
	CheckImage[EXTREELib_TLB.Unchecked] := 32699122;
	CheckImage[EXTREELib_TLB.Checked] := 16777216;
	(IUnknown(Columns.Add('Check')) as EXTREELib_TLB.Column).Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
	with Items do
	begin
		AddItem('Check 1');
		CellState[OleVariant(AddItem('Check 2')),OleVariant(0)] := 1;
		AddItem('Check 3');
	end;
	EndUpdate();
end
607:
Can I display the column's multiple-lines caption vertically oriented (method 2)

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

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

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

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

// CellStateChanged event - Fired after cell's state has been changed.
procedure TForm1.Tree1CellStateChanged(ASender: TObject; Item : HITEM;ColIndex : Integer);
begin
end;

with Tree1 do
begin
	BeginUpdate();
	SelBackMode := EXTREELib_TLB.exTransparent;
	with ConditionalFormats.Add('%CS0','check') do
	begin
		Bold := True;
	end;
	(IUnknown(Columns.Add('Items')) as EXTREELib_TLB.Column).Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
	(IUnknown(Columns.Add(Tree1.ConditionalFormats.Item['check'].Expression)) as EXTREELib_TLB.Column).FormatColumn := Tree1.ConditionalFormats.Item['check'].Expression;
	with Items do
	begin
		AddItem('Item 1');
		CellState[OleVariant(AddItem('Item 2')),OleVariant(0)] := 1;
		AddItem('Item 3');
	end;
	EndUpdate();
end
602:
How can I include the child items, when a filter is applied

with Tree1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	Indent := 16;
	LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
	FilterBarPromptVisible := True;
	FilterBarPromptPattern := 'Nancy';
	FilterInclude := EXTREELib_TLB.exItemsWithChilds;
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXTREELib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXTREELib_TLB.Column).Width := 96;
		Add('City');
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellCaption[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellCaption[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := InsertItem(h0,Null,'Andrew Fuller');
		CellCaption[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellCaption[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		h0 := InsertItem(h0,Null,'Michael Suyama');
		CellCaption[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellCaption[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Janet Leverling');
		CellCaption[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellCaption[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := InsertItem(h0,Null,'Margaret Peacock');
		CellCaption[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellCaption[OleVariant(h0),OleVariant(2)] := 'Redmond';
	end;
	ApplyFilter();
	EndUpdate();
end
601:
How do I get sorted the column as string, numeric, date, date and time. Also how can it be applied to drop down filter panel

with Tree1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Date')) as EXTREELib_TLB.Column) do
	begin
		SortType := EXTREELib_TLB.SortDate;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		DisplayFilterDate := True;
		FilterList := Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsDesc);
	end;
	with (IUnknown(Columns.Add('DateTime')) as EXTREELib_TLB.Column) do
	begin
		SortType := EXTREELib_TLB.SortDateTime;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsDesc);
	end;
	with (IUnknown(Columns.Add('Time')) as EXTREELib_TLB.Column) do
	begin
		SortType := EXTREELib_TLB.SortTime;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsDesc);
		FormatColumn := 'time(value)';
	end;
	with (IUnknown(Columns.Add('Numeric')) as EXTREELib_TLB.Column) do
	begin
		SortType := EXTREELib_TLB.SortNumeric;
		DisplayFilterButton := True;
		FilterList := Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsDesc);
	end;
	with (IUnknown(Columns.Add('String')) as EXTREELib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXTREELib_TLB.exShowFocusItem) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsDesc);
	end;
	with Items do
	begin
		h := AddItem('1/27/2010');
		CellCaption[OleVariant(h),OleVariant(1)] := '1/27/2010 10:00:00 AM';
		CellCaption[OleVariant(h),OleVariant(2)] := CellCaption[OleVariant(h),OleVariant(1)];
		CellCaption[OleVariant(h),OleVariant(3)] := OleVariant(1);
		CellCaption[OleVariant(h),OleVariant(4)] := CellCaption[OleVariant(h),OleVariant(3)];
		h := AddItem('1/27/2011');
		CellCaption[OleVariant(h),OleVariant(1)] := '1/27/2011 9:00:00 AM';
		CellCaption[OleVariant(h),OleVariant(2)] := CellCaption[OleVariant(h),OleVariant(1)];
		CellCaption[OleVariant(h),OleVariant(3)] := OleVariant(11);
		CellCaption[OleVariant(h),OleVariant(4)] := CellCaption[OleVariant(h),OleVariant(3)];
		h := AddItem('11/2/2010');
		CellCaption[OleVariant(h),OleVariant(1)] := '11/2/2010 9:00:00 AM';
		CellCaption[OleVariant(h),OleVariant(2)] := CellCaption[OleVariant(h),OleVariant(1)];
		CellCaption[OleVariant(h),OleVariant(3)] := OleVariant(2);
		CellCaption[OleVariant(h),OleVariant(4)] := CellCaption[OleVariant(h),OleVariant(3)];
	end;
	Columns.Item['DateTime'].DisplayFilterDate := False;
	EndUpdate();
end