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

with Tree1 do
begin
BeginUpdate();
HeaderAppearance := EXTREELib_TLB.Etched;
HeaderHeight := 24;
DrawGridLines := EXTREELib_TLB.exRowLines;
(IUnknown(Columns.Add('Country')) as EXTREELib_TLB.Column).ShowIdem := '<fgcolor gray>〃';
with Items do
begin
AddItem('Spain');
AddItem('Spain');
AddItem('Spain');
AddItem('Spain');
AddItem('Germany');
AddItem('Germany');
AddItem('Germany');
AddItem('Germany');
end;
EndUpdate();
end
|
740
|
Defines the symbol used to indicate repeated captions, providing a clear visual cue for identical entries (space)

with Tree1 do
begin
BeginUpdate();
HeaderAppearance := EXTREELib_TLB.Etched;
HeaderHeight := 24;
DrawGridLines := EXTREELib_TLB.exRowLines;
(IUnknown(Columns.Add('Country')) as EXTREELib_TLB.Column).ShowIdem := ' ';
with Items do
begin
AddItem('Spain');
AddItem('Spain');
AddItem('Spain');
AddItem('Spain');
AddItem('Germany');
AddItem('Germany');
AddItem('Germany');
AddItem('Germany');
end;
EndUpdate();
end
|
739
|
Displays a glitch funnel for drop-down filter buttons (empty or active)

with Tree1 do
begin
BeginUpdate();
with VisualAppearance do
begin
RenderType := -1;
Add(1,'gBFLBCJwBAEHhEJAAEhABa8IQAAYAQGKIYBkAKBQAGaAoDDUNQxQwAAxwfBMKgBBCLIxhEYobgmGIXRpFMbxCKQahLEiTIhGUYJHgmK4tRiAUgxVDkBxrECZYqjcBZOi' +
'wLQ2TxDM7DNKUCBnIoABhGOaYDh+IQNQjUFKwTRFGRxK4EIRKAyTDLQdRyGSMMbjdQpBCbMiMRqhESKRq2UwYRYCFS1NalaztO6BUAvK67YrWez/YBfF+SfwGeqDYReW' +
'APfgWERnQrGMLxbD8KwZAKTRjkGJ4XhuB41TbQMqufL9ByXHKSSDpGjaXjeO5VVjYNAvS69UzXNq3bhtQAOXCMEwCgI=');
Add(2,'CP:1 -2 0 0 0');
end;
DrawGridLines := EXTREELib_TLB.exAllLines;
GridLineStyle := EXTREELib_TLB.exGridLinesGeometric;
ShowFocusRect := False;
Background[EXTREELib_TLB.exHeaderFilterBarButton] := $2000000;
Background[EXTREELib_TLB.exHeaderFilterBarActive] := $2000001;
HeaderAppearance := EXTREELib_TLB.Etched;
BackColorHeader := RGB(255,255,255);
HeaderHeight := 24;
HeaderVisible := True;
with (IUnknown(Columns.Add('1st col')) as EXTREELib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
Filter := 'Item B';
FilterType := EXTREELib_TLB.exFilter;
end;
Columns.Add('2nd col');
with Items do
begin
AddItem('Item A');
AddItem('Item B');
AddItem('Item C');
end;
ApplyFilter();
EndUpdate();
end
|
738
|
How can I replace or add an icon at runtime

with Tree1 do
begin
BeginUpdate();
ReplaceIcon('gAAAABgYACEHgUJFEEAAWhUJCEJEEJggEhMCYEXjUbjkJQECj8gj8hAEjkshYEpk8kf8ClsulsvAExmcvf83js5nU7nkCeEcn8boMaocXosCB9Hn09pkzcEuoL/fE+Ok' +
'YB0gB9YhIHrddgVcr9aktZADAD8+P8CgIA==',Null);
ReplaceIcon('C:\images\favicon.ico',OleVariant(0));
(IUnknown(Columns.Add('Items')) as EXTREELib_TLB.Column).Def[EXTREELib_TLB.exCellCaptionFormat] := OleVariant(1);
Items.AddItem('Item <img>1</img>');
EndUpdate();
end
|
737
|
Can I set a filter that automatically adds a * before and after the word, so the user can just search for 'cat' and it becomes '*cat*' automatically

with Tree1 do
begin
BeginUpdate();
HeaderAppearance := EXTREELib_TLB.Etched;
HeaderHeight := 24;
LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
with (IUnknown(Columns.Add('Items')) as EXTREELib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := True;
Def[EXTREELib_TLB.exFilterPatternTemplate] := '*<%filter%>*';
FilterType := EXTREELib_TLB.exPattern;
Filter := '1';
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');
InsertItem(h,Null,'Child 2');
end;
ApplyFilter();
EndUpdate();
end
|
736
|
The fine dotted lines in the control appear much thicker than the standard ones we've been using. How can we fix this

with Tree1 do
begin
BeginUpdate();
HeaderAppearance := EXTREELib_TLB.Etched;
HeaderHeight := 24;
DrawGridLines := EXTREELib_TLB.exAllLines;
GridLineStyle := EXTREELib_TLB.exGridLinesGeometric;
ColumnAutoResize := False;
Columns.Add('Column 1');
Columns.Add('Column 2');
Columns.Add('Column 3');
Columns.Add('Column 4');
EndUpdate();
end
|
735
|
Load data as a tree using a parent-id relationship

with Tree1 do
begin
BeginUpdate();
ColumnAutoResize := False;
HeaderAppearance := EXTREELib_TLB.Etched;
HeaderHeight := 24;
DrawGridLines := EXTREELib_TLB.exVLines;
LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
with rs do
begin
Open('Select * FROM Employees WHERE 1=0','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExTree\Sample\Access\sample.mdb',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
Columns.Item[OleVariant(0)].Width := 128;
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\ExTree\Sample\Access\sample.mdb',3,3,Null);
end;
PutItems(rs.GetRows(Null,Null,Null),';0;15');
Items.ExpandItem[0] := True;
EndUpdate();
end
|
734
|
Highlight the leaf items

with Tree1 do
begin
BeginUpdate();
ConditionalFormats.Add('%CC0=0',Null).ForeColor := $808080;
HeaderAppearance := EXTREELib_TLB.Etched;
HeaderHeight := 24;
LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
with Columns do
begin
(IUnknown(Add('Item')) as EXTREELib_TLB.Column).Width := 16;
Add('Desc');
end;
with Items do
begin
hR := AddItem('Root');
CellCaption[OleVariant(hR),OleVariant(1)] := 'The root directory /';
ExpandItem[hR] := True;
h := InsertItem(hR,Null,'Home');
CellCaption[OleVariant(h),OleVariant(1)] := 'The home directory with user directories Alice and Bob';
InsertItem(h,Null,'Alice');
InsertItem(h,Null,'Bob');
ExpandItem[h] := True;
h := InsertItem(hR,Null,'Etc');
CellCaption[OleVariant(h),OleVariant(1)] := 'The etc directory with one configuration file';
h := InsertItem(h,Null,'nginx.conf');
CellCaption[OleVariant(InsertItem(hR,Null,'Var')),OleVariant(1)] := 'The var directory';
end;
EndUpdate();
end
|
733
|
Highlight the parent items

with Tree1 do
begin
BeginUpdate();
ConditionalFormats.Add('%CC0',Null).ForeColor := $ff;
HeaderAppearance := EXTREELib_TLB.Etched;
HeaderHeight := 24;
LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
with Columns do
begin
(IUnknown(Add('Item')) as EXTREELib_TLB.Column).Width := 16;
Add('Desc');
end;
with Items do
begin
hR := AddItem('Root');
CellCaption[OleVariant(hR),OleVariant(1)] := 'The root directory /';
ExpandItem[hR] := True;
h := InsertItem(hR,Null,'Home');
CellCaption[OleVariant(h),OleVariant(1)] := 'The home directory with user directories Alice and Bob';
InsertItem(h,Null,'Alice');
InsertItem(h,Null,'Bob');
ExpandItem[h] := True;
h := InsertItem(hR,Null,'Etc');
CellCaption[OleVariant(h),OleVariant(1)] := 'The etc directory with one configuration file';
h := InsertItem(h,Null,'nginx.conf');
CellCaption[OleVariant(InsertItem(hR,Null,'Var')),OleVariant(1)] := 'The var directory';
end;
EndUpdate();
end
|
732
|
Highlight the item being expanded or collapsed

with Tree1 do
begin
BeginUpdate();
ConditionalFormats.Add('%CX0',Null).Bold := True;
HeaderAppearance := EXTREELib_TLB.Etched;
HeaderHeight := 24;
LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
with Columns do
begin
(IUnknown(Add('Item')) as EXTREELib_TLB.Column).Width := 16;
Add('Desc');
end;
with Items do
begin
hR := AddItem('Root');
CellCaption[OleVariant(hR),OleVariant(1)] := 'The root directory /';
ExpandItem[hR] := True;
h := InsertItem(hR,Null,'Home');
CellCaption[OleVariant(h),OleVariant(1)] := 'The home directory with user directories Alice and Bob';
InsertItem(h,Null,'Alice');
InsertItem(h,Null,'Bob');
ExpandItem[h] := True;
h := InsertItem(hR,Null,'Etc');
CellCaption[OleVariant(h),OleVariant(1)] := 'The etc directory with one configuration file';
h := InsertItem(h,Null,'nginx.conf');
CellCaption[OleVariant(InsertItem(hR,Null,'Var')),OleVariant(1)] := 'The var directory';
end;
EndUpdate();
end
|
731
|
Disable temporarily the column's sort, resize and drag and drop

with Tree1 do
begin
BeginUpdate();
SortBarVisible := True;
SortBarCaption := '<fgcolor 808080><c>the header and the sort-bar are disabled (no drag and drop is allowed)';
HeaderEnabled := False;
HeaderAppearance := EXTREELib_TLB.Etched;
(IUnknown(Columns.Add('Index')) as EXTREELib_TLB.Column).FormatColumn := '1 index ``';
(IUnknown(Columns.Add('Pos')) as EXTREELib_TLB.Column).FormatColumn := '1 apos ``';
Columns.Add('Edit');
GridLineStyle := EXTREELib_TLB.exGridLinesGeometric;
DrawGridLines := EXTREELib_TLB.exVLines;
GridLineColor := RGB(224,224,224);
EndUpdate();
end
|
730
|
Expandable-caption

// AnchorClick event - Occurs when an anchor element is clicked.
procedure TForm1.Tree1AnchorClick(ASender: TObject; AnchorID : WideString;Options : WideString);
begin
with Tree1 do
begin
OutputDebugString( AnchorID );
end
end;
with Tree1 do
begin
BeginUpdate();
ColumnAutoResize := True;
TreeColumnIndex := -1;
DrawGridLines := EXTREELib_TLB.exAllLines;
GridLineStyle := EXTREELib_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)');
CellCaptionFormat[OleVariant(h),OleVariant(0)] := EXTREELib_TLB.exHTML;
CellSingleLine[OleVariant(h),OleVariant(0)] := EXTREELib_TLB.exCaptionWordWrap;
AddItem('after item');
end;
EndUpdate();
end
|
729
|
Expandable-caption

with Tree1 do
begin
BeginUpdate();
ColumnAutoResize := True;
TreeColumnIndex := -1;
DrawGridLines := EXTREELib_TLB.exAllLines;
GridLineStyle := EXTREELib_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');
CellCaptionFormat[OleVariant(h),OleVariant(0)] := EXTREELib_TLB.exHTML;
CellSingleLine[OleVariant(h),OleVariant(0)] := EXTREELib_TLB.exCaptionWordWrap;
AddItem('after item');
end;
EndUpdate();
end
|
728
|
Force scrollbars hover-all feature
with Tree1 do
begin
Background[EXTREELib_TLB.exScrollHoverAll] := $ffffffff;
end
|
727
|
Disable scrollbars hover-all feature (Windows 11 or greater)
with Tree1 do
begin
Background[EXTREELib_TLB.exScrollHoverAll] := $1;
end
|
726
|
Display a custom tooltip
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.Tree1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with Tree1 do
begin
ShowToolTip('new content','',Null,'+8','+8');
end
end;
|
725
|
Shows the tooltip of the object moved relative to its default position

// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.Tree1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with Tree1 do
begin
ShowToolTip('<null>','<null>',Null,'+8','+8');
end
end;
with Tree1 do
begin
ColumnAutoResize := False;
(IUnknown(Columns.Add('tootip')) as EXTREELib_TLB.Column).ToolTip := 'this is a tooltip assigned to a column';
end
|
724
|
Highlight the match once the filter is applied

// FilterChange event - Notifies your application that the filter is changed.
procedure TForm1.Tree1FilterChange(ASender: TObject; );
begin
with Tree1 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 Tree1 do
begin
BeginUpdate();
SelBackColor := BackColor;
SelForeColor := ForeColor;
ColumnAutoResize := True;
ContinueColumnScroll := False;
MarkSearchColumn := False;
SearchColumnIndex := 1;
HeaderAppearance := EXTREELib_TLB.Etched;
HeaderHeight := 23;
BackColorLevelHeader := BackColor;
FilterBarCaption := '`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? 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);
FilterBarBackColor := BackColor;
FilterBarPromptPattern := 'and';
with Columns do
begin
with (IUnknown(Add('Name')) as EXTREELib_TLB.Column) do
begin
Def[EXTREELib_TLB.exCellCaptionFormat] := OleVariant(1);
FormatColumn := 'lower(value)';
end;
with (IUnknown(Add('Title')) as EXTREELib_TLB.Column) do
begin
Def[EXTREELib_TLB.exCellCaptionFormat] := OleVariant(1);
FormatColumn := 'lower(value)';
end;
with (IUnknown(Add('City')) as EXTREELib_TLB.Column) do
begin
Def[EXTREELib_TLB.exCellCaptionFormat] := OleVariant(1);
FormatColumn := 'lower(value)';
end;
end;
with Items do
begin
h0 := AddItem('Nancy Davolio');
CellCaption[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
CellCaption[OleVariant(h0),OleVariant(2)] := 'Seattle';
h0 := AddItem('Andrew Fuller');
CellCaption[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
CellCaption[OleVariant(h0),OleVariant(2)] := 'Tacoma';
SelectItem[h0] := True;
h0 := AddItem('Janet Leverling');
CellCaption[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
CellCaption[OleVariant(h0),OleVariant(2)] := 'Kirkland';
h0 := AddItem('Margaret Peacock');
CellCaption[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
CellCaption[OleVariant(h0),OleVariant(2)] := 'Redmond';
h0 := AddItem('Steven Buchanan');
CellCaption[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
CellCaption[OleVariant(h0),OleVariant(2)] := 'London';
h0 := AddItem('Michael Suyama');
CellCaption[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
CellCaption[OleVariant(h0),OleVariant(2)] := 'London';
h0 := AddItem('Robert King');
CellCaption[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
CellCaption[OleVariant(h0),OleVariant(2)] := 'London';
h0 := AddItem('Laura Callahan');
CellCaption[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
CellCaption[OleVariant(h0),OleVariant(2)] := 'Seattle';
h0 := AddItem('Anne Dodsworth');
CellCaption[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
CellCaption[OleVariant(h0),OleVariant(2)] := 'London';
end;
EndUpdate();
end
|
723
|
ADOR, MDB (JET)

with Tree1 do
begin
ColumnAutoResize := False;
ContinueColumnScroll := 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\ExTree\Sample\Access\sample.mdb',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
end
|
722
|
Re-order the cell's caption, icons and images/pictures

with Tree1 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 EXTREELib_TLB.Column) do
begin
Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
end;
with (IUnknown(Columns.Add('ToRight')) as EXTREELib_TLB.Column) do
begin
Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
Def[EXTREELib_TLB.exCellDrawPartsOrder] := 'caption,picture,icons,icon,check';
end;
DefaultItemHeight := 32;
DrawGridLines := EXTREELib_TLB.exVLines;
HeaderAppearance := EXTREELib_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(Tree1.ExecuteTemplate('loadpicture(`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' +
'Gw+wbHkkTpEw7gpFgIAA2sABJEUThEK4QhgIJAQ==`)')) as _TLB.Object);
CellCaption[OleVariant(h),OleVariant(1)] := CellCaption[OleVariant(h),OleVariant(0)];
CellHAlignment[OleVariant(h),OleVariant(1)] := EXTREELib_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');
CellCaptionFormat[OleVariant(h),OleVariant(0)] := EXTREELib_TLB.exHTML;
CellImage[OleVariant(h),OleVariant(0)] := 2;
CellImages[OleVariant(h),OleVariant(0)] := '1,2';
CellPicture[OleVariant(h),OleVariant(0)] := (IUnknown(Tree1.ExecuteTemplate('loadpicture(`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' +
'Gw+wbHkkTpEw7gpFgIAA2sABJEUThEK4QhgIJAQ==`)')) as _TLB.Object);
CellCaption[OleVariant(h),OleVariant(1)] := CellCaption[OleVariant(h),OleVariant(0)];
CellCaptionFormat[OleVariant(h),OleVariant(1)] := EXTREELib_TLB.exHTML;
CellHAlignment[OleVariant(h),OleVariant(1)] := EXTREELib_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
|
721
|
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.Tree1AddColumn(ASender: TObject; Column : IColumn);
begin
// Column.Def(48) = 2
// Column.Def(49) = 2
end;
with Tree1 do
begin
BeginUpdate();
ImageSize := 32;
DefaultItemHeight := 36;
HeaderHeight := DefaultItemHeight;
SortBarHeight := DefaultItemHeight;
Font.Size := 16;
FilterBarFont.Size := Tree1.Font.Size;
ToolTipFont.Size := Tree1.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[EXTREELib_TLB.Unchecked] := 16777216;
CheckImage[EXTREELib_TLB.Checked] := 33554432;
CheckImage[EXTREELib_TLB.PartialChecked] := 50331648;
Background[EXTREELib_TLB.exSelBackColorFilter] := SelBackColor;
Background[EXTREELib_TLB.exSelForeColorFilter] := SelForeColor;
Background[EXTREELib_TLB.exBackColorFilter] := BackColor;
Background[EXTREELib_TLB.exForeColorFilter] := ForeColor;
Background[EXTREELib_TLB.exCursorHoverColumn] := $ffffffff;
Background[EXTREELib_TLB.exHeaderFilterBarButton] := $4000000;
Background[EXTREELib_TLB.exHeaderFilterBarActive] := $4010101;
Background[EXTREELib_TLB.exFooterFilterBarButton] := $40000ff;
HeaderAppearance := EXTREELib_TLB.Etched;
ShowFocusRect := False;
SortBarVisible := True;
BackColorSortBar := BackColor;
BackColorLevelHeader := BackColor;
FilterBarDropDownHeight := 1;
with (IUnknown(Columns.Add('Check')) as EXTREELib_TLB.Column) do
begin
Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
PartialCheck := True;
Width := 128;
DisplayFilterButton := True;
FilterList := EXTREELib_TLB.exShowCheckBox;
end;
with (IUnknown(Columns.Add('Pos')) as EXTREELib_TLB.Column) do
begin
FormatColumn := '1 pos ``';
AllowSort := False;
Width := 48;
AllowSizing := False;
Alignment := EXTREELib_TLB.CenterAlignment;
HeaderAlignment := EXTREELib_TLB.CenterAlignment;
end;
with (IUnknown(Columns.Add('Image')) as EXTREELib_TLB.Column) do
begin
DisplayFilterButton := True;
FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsAsc);
FilterType := EXTREELib_TLB.exImage;
DisplayExpandButton := True;
ExpandColumns := '1,2,3';
Width := 128;
HeaderImage := 1;
end;
with (IUnknown(Columns.Add('Images')) as EXTREELib_TLB.Column) do
begin
Def[EXTREELib_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] := EXTREELib_TLB.EmptyLine;
h := InsertItem(hR,Null,'Child A');
CellImage[OleVariant(h),OleVariant(2)] := 1;
CellImages[OleVariant(h),OleVariant(3)] := '1,2,3';
CellCaption[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';
CellCaption[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;
CellCaption[OleVariant(h),OleVariant(3)] := '312';
CellImages[OleVariant(h),OleVariant(3)] := '3,1,2';
ExpandItem[hR] := True;
end;
EndUpdate();
end
|
720
|
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.Tree1AddColumn(ASender: TObject; Column : IColumn);
begin
// Column.Def(48) = 2
// Column.Def(49) = 2
end;
with Tree1 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[EXTREELib_TLB.exSelBackColorFilter] := SelBackColor;
Background[EXTREELib_TLB.exSelForeColorFilter] := SelForeColor;
Background[EXTREELib_TLB.exBackColorFilter] := BackColor;
Background[EXTREELib_TLB.exForeColorFilter] := ForeColor;
Background[EXTREELib_TLB.exCursorHoverColumn] := $ffffffff;
Background[EXTREELib_TLB.exHeaderFilterBarButton] := $4000000;
Background[EXTREELib_TLB.exHeaderFilterBarActive] := $4010101;
Background[EXTREELib_TLB.exFooterFilterBarButton] := $40000ff;
HeaderAppearance := EXTREELib_TLB.Etched;
ShowFocusRect := False;
SortBarVisible := True;
BackColorSortBar := BackColor;
BackColorLevelHeader := BackColor;
FilterBarDropDownHeight := 1;
with (IUnknown(Columns.Add('Check')) as EXTREELib_TLB.Column) do
begin
Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
PartialCheck := True;
Width := 128;
DisplayFilterButton := True;
FilterList := EXTREELib_TLB.exShowCheckBox;
end;
with (IUnknown(Columns.Add('Pos')) as EXTREELib_TLB.Column) do
begin
FormatColumn := '1 pos ``';
AllowSort := False;
Width := 48;
AllowSizing := False;
Alignment := EXTREELib_TLB.CenterAlignment;
HeaderAlignment := EXTREELib_TLB.CenterAlignment;
end;
with (IUnknown(Columns.Add('Image')) as EXTREELib_TLB.Column) do
begin
DisplayFilterButton := True;
FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowCheckBox) Or Integer(EXTREELib_TLB.exSortItemsAsc);
FilterType := EXTREELib_TLB.exImage;
DisplayExpandButton := True;
ExpandColumns := '1,2,3';
Width := 128;
HeaderImage := 1;
end;
with (IUnknown(Columns.Add('Images')) as EXTREELib_TLB.Column) do
begin
Def[EXTREELib_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] := EXTREELib_TLB.EmptyLine;
h := InsertItem(hR,Null,'Child A');
CellImage[OleVariant(h),OleVariant(2)] := 1;
CellImages[OleVariant(h),OleVariant(3)] := '1,2,3';
CellCaption[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';
CellCaption[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;
CellCaption[OleVariant(h),OleVariant(3)] := '312';
CellImages[OleVariant(h),OleVariant(3)] := '3,1,2';
ExpandItem[hR] := True;
end;
EndUpdate();
end
|
719
|
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.Tree1AddColumn(ASender: TObject; Column : IColumn);
begin
with Tree1 do
begin
with Column do
begin
end;
end
end;
with Tree1 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\ExTree\Sample\Access\sample.accdb',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
Columns.Item['ShipVia'].Position := 2;
EndUpdate();
end
|
718
|
Is it possible to set from code, a column sort without being inserted in the sortbar

with Tree1 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\ExTree\Sample\Access\sample.accdb',1,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
SortBarVisible := True;
Layout := 'singlesort="C1:1"';
EndUpdate();
end
|
717
|
Is it possible to view all events the control fires
// Event event - Notifies the application once the control fires an event.
procedure TForm1.Tree1Event(ASender: TObject; EventID : Integer);
begin
with Tree1 do
begin
OutputDebugString( EventParam[-2] );
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;
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),OleVariant(0)] := 1;
hChild := InsertItem(h,Null,'Task 3');
CellState[OleVariant(hChild),OleVariant(0)] := 1;
ExpandItem[h] := True;
end;
EndUpdate();
end
|
716
|
How can I prevent expanding/collapsing the child items

// 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
Cancel := Tree1.Items.ItemParent[Item];
end
end;
with Tree1 do
begin
BeginUpdate();
SingleSel := False;
Columns.Add('Default');
LinesAtRoot := EXTREELib_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
|
715
|
How can I display an item of picture type

with Tree1 do
begin
BeginUpdate();
LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
ScrollBySingleLine := False;
HeaderAppearance := EXTREELib_TLB.Etched;
HeaderHeight := 24;
(IUnknown(Columns.Add('Artikel')) as EXTREELib_TLB.Column).HTMLCaption := '<u>Artikel';
(IUnknown(Columns.Add('Waarde')) as EXTREELib_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>');
CellCaptionFormat[OleVariant(h1),OleVariant(0)] := EXTREELib_TLB.exHTML;
ItemHeight[h1] := 128;
h1 := InsertItem(h,Null,'werkvoorbereiding');
CellCaption[OleVariant(h1),OleVariant(1)] := '5.80';
CellBold[OleVariant(h1),OleVariant(1)] := True;
CellCaption[OleVariant(InsertItem(h1,Null,'Type')),OleVariant(1)] := 'Eenvoudig';
CellCaption[OleVariant(InsertItem(h1,Null,'Prijs p/uur')),OleVariant(1)] := '60,00';
CellCaption[OleVariant(InsertItem(h1,Null,'Marhe')),OleVariant(1)] := '15,00%';
CellCaption[OleVariant(InsertItem(h1,Null,'Insteltijd min.')),OleVariant(1)] := '5,00';
CellCaption[OleVariant(InsertItem(h1,Null,'Aantal')),OleVariant(1)] := OleVariant(1);
CellCaption[OleVariant(InsertItem(h1,Null,'Kostprije')),OleVariant(1)] := '5,00';
ExpandItem[h1] := True;
h1 := InsertItem(h,Null,'materiall');
CellCaption[OleVariant(h1),OleVariant(1)] := '14.82';
CellBold[OleVariant(h1),OleVariant(1)] := True;
ItemHasChildren[h1] := True;
h1 := InsertItem(h,Null,'snijden');
CellCaption[OleVariant(h1),OleVariant(1)] := '3.13';
CellBold[OleVariant(h1),OleVariant(1)] := True;
ItemHasChildren[h1] := True;
ExpandItem[h] := True;
end;
EndUpdate();
end
|
714
|
Dark mode

with Tree1 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 := EXTREELib_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[EXTREELib_TLB.exHeaderFilterBarButton] := $1000000;
Background[EXTREELib_TLB.BackgroundPartEnum($10 Or Integer(EXTREELib_TLB.exCellButtonUp))] := $2000000;
Background[EXTREELib_TLB.exCursorHoverColumn] := $ffffffff;
Background[EXTREELib_TLB.exToolTipAppearance] := $3000000;
Background[EXTREELib_TLB.exToolTipBackColor] := back;
Background[EXTREELib_TLB.exToolTipForeColor] := fore;
Background[EXTREELib_TLB.exSelBackColorFilter] := fore;
Background[EXTREELib_TLB.exSelForeColorFilter] := back;
Background[EXTREELib_TLB.exBackColorFilter] := back;
Background[EXTREELib_TLB.exForeColorFilter] := fore;
Background[EXTREELib_TLB.exSortBarLinkColor] := back;
Background[EXTREELib_TLB.BackgroundPartEnum($80 Or Integer(EXTREELib_TLB.exDateSelect))] := $2000000;
Background[EXTREELib_TLB.BackgroundPartEnum($80 Or Integer(EXTREELib_TLB.exDateSeparatorBar))] := $2000000;
Background[EXTREELib_TLB.exTreeLinesColor] := fore;
Description[EXTREELib_TLB.exFilterBarExclude] := '<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>';
EndUpdate();
end
|
713
|
How can I specify the cell's outline, border or lines around, when the cell gets selected

with Tree1 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 := False;
ShowFocusRect := False;
DefaultItemHeight := 24;
HeaderHeight := 24;
DrawGridLines := EXTREELib_TLB.exVLines;
Columns.Add('C1');
Columns.Add('C2');
with Items do
begin
CellCaption[OleVariant(AddItem('Cell 1')),OleVariant(1)] := 'Cell 2';
CellCaption[OleVariant(AddItem('Cell 3')),OleVariant(1)] := 'Cell 4';
end;
Items.SelectPos := OleVariant(1);
SelectColumnIndex := 1;
EndUpdate();
end
|
712
|
How can I specify the cell's outline, border or lines around, when the item gets selected

with Tree1 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 := EXTREELib_TLB.exVLines;
Columns.Add('C1');
Columns.Add('C2');
with Items do
begin
CellCaption[OleVariant(AddItem('Cell 1')),OleVariant(1)] := 'Cell 2';
CellCaption[OleVariant(AddItem('Cell 3')),OleVariant(1)] := 'Cell 4';
SelectPos := OleVariant(1);
end;
EndUpdate();
end
|
711
|
How can I specify the cell's outline, border or lines around

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

// AddColumn event - Fired after a new column has been added.
procedure TForm1.Tree1AddColumn(ASender: TObject; Column : IColumn);
begin
// Column.Def(17) = 1
end;
// FilterChange event - Notifies your application that the filter is changed.
procedure TForm1.Tree1FilterChange(ASender: TObject; );
begin
with Tree1 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 Tree1 do
begin
BeginUpdate();
DrawGridLines := EXTREELib_TLB.exVLines;
HeaderAppearance := EXTREELib_TLB.Etched;
Columns.Add('Col 1');
Columns.Add('Col 2');
with Items do
begin
CellCaption[OleVariant(AddItem('219 Smith')),OleVariant(1)] := 'Ignacio 1234';
CellCaption[OleVariant(AddItem('1666 County Road 309A')),OleVariant(1)] := '897 Manassa';
CellCaption[OleVariant(AddItem('38 Lone Pine')),OleVariant(1)] := 'Durango 11';
CellCaption[OleVariant(AddItem('612 Jachim Street')),OleVariant(1)] := 'Lamar 222';
end;
FilterBarPromptPattern := '1';
FilterBarPromptVisible := Integer(EXTREELib_TLB.exFilterBarCompact) Or Integer(EXTREELib_TLB.exFilterBarSingleLine) Or Integer(EXTREELib_TLB.exFilterBarVisible) Or Integer(EXTREELib_TLB.exFilterBarPromptVisible);
FilterBarPromptType := Integer(EXTREELib_TLB.exFilterPromptCaseSensitive) Or Integer(EXTREELib_TLB.exFilterPromptContainsAll);
EndUpdate();
end
|
709
|
Is it possible to highlight the column's header once a filter is applied (sample 2)

with Tree1 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[EXTREELib_TLB.exHeaderFilterBarButton] := $1000000;
Background[EXTREELib_TLB.exHeaderFilterBarActive] := $2000000;
Background[EXTREELib_TLB.exCursorHoverColumn] := $ffffffff;
HeaderHeight := 28;
BackColorHeader := RGB(255,255,255);
DrawGridLines := EXTREELib_TLB.exRowLines;
HeaderVisible := True;
with Columns do
begin
(IUnknown(Add('C1')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
with (IUnknown(Add('C2')) as EXTREELib_TLB.Column) do
begin
DisplayFilterButton := True;
Filter := 'Item 2';
FilterType := EXTREELib_TLB.exFilter;
end;
(IUnknown(Add('C3')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
end;
with Items do
begin
h := AddItem('Item 1');
CellCaption[OleVariant(h),OleVariant(1)] := 'Item 2';
CellCaption[OleVariant(h),OleVariant(2)] := 'Item 3';
h := AddItem('Item 4');
CellCaption[OleVariant(h),OleVariant(1)] := 'Item 5';
CellCaption[OleVariant(h),OleVariant(2)] := 'Item 6';
end;
ApplyFilter();
EndUpdate();
end
|
708
|
How can I make the expand/collapse glyphs DPI aware

with Tree1 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,Tree1.FormatABC('`CP:3 -` + int(value*dpi) + ` -` + int(value*dpi) + ` ` + int(value*dpi) + ` ` + int(value*dpi)',OleVariant(size),Null,Null));
Add(2,Tree1.FormatABC('`CP:4 -` + int(value*dpi) + ` -` + int(value*dpi) + ` ` + int(value*dpi) + ` ` + int(value*dpi)',OleVariant(size),Null,Null));
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
|
707
|
Is it possible to highlight the column's header once a filter is applied (sample 1)

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 -8 -4 2 4');
end;
Background[EXTREELib_TLB.exHeaderFilterBarButton] := $1fefefe;
Background[EXTREELib_TLB.exHeaderFilterBarActive] := $1010101;
Background[EXTREELib_TLB.exCursorHoverColumn] := $ffffffff;
HeaderHeight := 28;
BackColorHeader := RGB(255,255,255);
DrawGridLines := EXTREELib_TLB.exRowLines;
HeaderVisible := True;
with Columns do
begin
(IUnknown(Add('C1')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
with (IUnknown(Add('C2')) as EXTREELib_TLB.Column) do
begin
DisplayFilterButton := True;
Filter := 'Item 2';
FilterType := EXTREELib_TLB.exFilter;
end;
(IUnknown(Add('C3')) as EXTREELib_TLB.Column).DisplayFilterButton := True;
end;
with Items do
begin
h := AddItem('Item 1');
CellCaption[OleVariant(h),OleVariant(1)] := 'Item 2';
CellCaption[OleVariant(h),OleVariant(2)] := 'Item 3';
h := AddItem('Item 4');
CellCaption[OleVariant(h),OleVariant(1)] := 'Item 5';
CellCaption[OleVariant(h),OleVariant(2)] := 'Item 6';
end;
ApplyFilter();
EndUpdate();
end
|
706
|
Is it possible to show the filterbar on top of the rows

with Tree1 do
begin
BeginUpdate();
FilterBarPromptVisible := EXTREELib_TLB.exFilterBarTop;
HeaderHeight := 24;
FilterBarHeight := HeaderHeight;
HeaderAppearance := EXTREELib_TLB.Flat;
DrawGridLines := EXTREELib_TLB.exAllLines;
GridLineStyle := EXTREELib_TLB.exGridLinesGeometric;
with (IUnknown(Columns.Add('Column')) as EXTREELib_TLB.Column) do
begin
DisplayFilterButton := True;
FilterType := EXTREELib_TLB.exPattern;
Filter := 'B*';
end;
with (IUnknown(Columns.Add('Index')) as EXTREELib_TLB.Column) do
begin
FormatColumn := '1 index ``';
Position := 0;
Width := 48;
AllowSizing := False;
SortType := EXTREELib_TLB.SortNumeric;
Def[EXTREELib_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
|
705
|
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.Tree1OLEDragDrop(ASender: TObject; Data : IExDataObject;var Effect : Integer;Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
// SelectItem(InsertItem(i,, Data.GetData(1))) = True
with Tree1 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.Tree1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
// Data.SetData(Me.Items.CellCaption(FocusItem, 0), 1)
with Tree1 do
begin
AllowedEffects := 1;
end
end;
with Tree1 do
begin
VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABPUIQAAYAQGKIcBiAKBQAGaAoDgYN4MAANAwjJBMKgBBCLIxhEYobgmGIaRjEEQDCKYcxHCaIBiGcaIfDEBIeSBHcgRbAcOQHGSZZBhGRJGj' +
'uKIbSrLICzBDUcRnGwAKQoaaaEomHwyAZOYwDAIoWhpKKCKjqWJKNb+XgAAJTES0RRVRTNAZ1YghGAQgIA==');
Background[EXTREELib_TLB.exListOLEDropPosition] := $1000000;
Background[EXTREELib_TLB.exDragDropBefore] := $0;
Background[EXTREELib_TLB.exDragDropAfter] := $ffffff;
OLEDropMode := EXTREELib_TLB.exOLEDropManual;
AutoDrag := EXTREELib_TLB.exAutoDragPositionAnyOnRight;
LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
Indent := 16;
SelBackMode := EXTREELib_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
|
704
|
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.Tree1OLEDragDrop(ASender: TObject; Data : IExDataObject;var Effect : Integer;Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
// SelectItem(InsertItem(i,, Data.GetData(1))) = True
with Tree1 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.Tree1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
// Data.SetData(Me.Items.CellCaption(FocusItem, 0), 1)
with Tree1 do
begin
AllowedEffects := 1;
end
end;
with Tree1 do
begin
Background[EXTREELib_TLB.exDragDropBefore] := $0;
Background[EXTREELib_TLB.exDragDropAfter] := $ffffff;
OLEDropMode := EXTREELib_TLB.exOLEDropManual;
AutoDrag := EXTREELib_TLB.exAutoDragPositionAnyOnRight;
LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
Indent := 16;
SelBackMode := EXTREELib_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
|
703
|
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.Tree1OLEDragDrop(ASender: TObject; Data : IExDataObject;var Effect : Integer;Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
// SelectItem(InsertItem(i,, Data.GetData(1))) = True
with Tree1 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.Tree1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
// Data.SetData(Me.Items.CellCaption(FocusItem, 0), 1)
with Tree1 do
begin
AllowedEffects := 1;
end
end;
with Tree1 do
begin
OLEDropMode := EXTREELib_TLB.exOLEDropManual;
AutoDrag := EXTREELib_TLB.exAutoDragPositionAnyOnRight;
LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
Indent := 16;
SelBackMode := EXTREELib_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
|
702
|
Is there anyway to stop the header changing colour when the mouse hovers/moves across the column header (non-clickable)

with Tree1 do
begin
BeginUpdate();
HeaderAppearance := EXTREELib_TLB.Etched;
with Columns do
begin
Add('Item');
with (IUnknown(Add('Pos')) as EXTREELib_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
|
701
|
Is there anyway to stop the header changing colour when the mouse hovers/moves across the column header

with Tree1 do
begin
BeginUpdate();
HeaderAppearance := EXTREELib_TLB.Etched;
Background[EXTREELib_TLB.exCursorHoverColumn] := $ffffffff;
with Columns do
begin
Add('Item');
with (IUnknown(Add('Pos')) as EXTREELib_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
|
700
|
Is it possible to display the header using multiple lines(sample 1)

// AddColumn event - Fired after a new column has been added.
procedure TForm1.Tree1AddColumn(ASender: TObject; Column : IColumn);
begin
// Column.Def(52) = 4
// Column.Def(53) = 4
end;
with Tree1 do
begin
BeginUpdate();
HeaderHeight := 36;
HeaderAppearance := EXTREELib_TLB.Flat;
HeaderSingleLine := False;
with Columns do
begin
Add('Column');
(IUnknown(Add('This is a bit of text that should break the header')) as EXTREELib_TLB.Column).Width := 128;
(IUnknown(Add('This is a bit of text that should break the header')) as EXTREELib_TLB.Column).Width := 96;
end;
EndUpdate();
end
|
699
|
Is it possible to display the header using multiple lines(sample 2)

// AddColumn event - Fired after a new column has been added.
procedure TForm1.Tree1AddColumn(ASender: TObject; Column : IColumn);
begin
// Column.Def(52) = 4
// Column.Def(53) = 4
end;
with Tree1 do
begin
BeginUpdate();
HeaderHeight := 36;
HeaderAppearance := EXTREELib_TLB.Flat;
with Columns do
begin
Add('Column');
(IUnknown(Add('C1')) as EXTREELib_TLB.Column).HTMLCaption := '<b>C<off 4>1</b><br>left';
(IUnknown(Add('C2')) as EXTREELib_TLB.Column).HTMLCaption := '<c><b>C<off 4>2</b><br><c>center';
(IUnknown(Add('C3')) as EXTREELib_TLB.Column).HTMLCaption := '<r><b>C<off 4>3</b><br><r>right';
end;
EndUpdate();
end
|
698
|
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 - Notifies your application that the filter is changed.
procedure TForm1.Tree1FilterChange(ASender: TObject; );
begin
with Tree1 do
begin
Indent := Tree1.FormatABC('value > 0 ? 18 : 0',Items.MatchItemCount,Null,Null);
end
end;
with Tree1 do
begin
BeginUpdate();
LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
Indent := 18;
FilterInclude := EXTREELib_TLB.exMatchingItemsOnly;
DrawGridLines := EXTREELib_TLB.exVLines;
HeaderAppearance := EXTREELib_TLB.Flat;
with Columns do
begin
with (IUnknown(Add('Column')) as EXTREELib_TLB.Column) do
begin
DisplayFilterButton := True;
FilterType := EXTREELib_TLB.exFilter;
FilterList := EXTREELib_TLB.exShowCheckBox;
Filter := 'C1';
end;
with (IUnknown(Add('Pos')) as EXTREELib_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
|
697
|
I would like to display a solid line between "root" items, and dotted lines (default) between child items. How can I do that

with Tree1 do
begin
BeginUpdate();
LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
DrawGridLines := EXTREELib_TLB.exHLines;
GridLineStyle := EXTREELib_TLB.exGridLinesGeometric;
VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABMsIQAAYAQGKIcBiAKBQAGaAoDgYN4MAANAwjJBMKgBBCLIxhEYobgmGIXRpFMbxAKQahLEiTIgGUYJHgmK4tQLHb7zGAABRDDSOIDnGQJXh' +
'aI4JQSMMQDGLAZxVFiPRhAWLpBh+PQATrOdLUfSjVwhBKAQEBA==');
with (IUnknown(Columns.Add('Default')) as EXTREELib_TLB.Column) do
begin
Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
PartialCheck := True;
end;
with (IUnknown(Columns.Add('Position')) as EXTREELib_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
|
696
|
I can not center or align the cell's caption and icon, when it displays the hierarchy

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('Tasks')) as EXTREELib_TLB.Column) do
begin
Def[EXTREELib_TLB.exCellCaptionFormat] := 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
|
695
|
How do I set an extra data for each item
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.Tree1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with Tree1 do
begin
i := ItemFromPoint[-1,-1,c,hit];
OutputDebugString( i );
OutputDebugString( Items.ItemData[i] );
end
end;
with Tree1 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
|
694
|
I do not like to specify the item padding for every column I add. The question is how can I do it automatically

with Tree1 do
begin
BeginUpdate();
AttachTemplate('handle AddColumn(Column){Column{Def(48)=8;Def(49)=8;AllowDragging=False;AllowSizing = True}}');
HeaderAppearance := EXTREELib_TLB.Etched;
DrawGridLines := EXTREELib_TLB.exAllLines;
GridLineStyle := EXTREELib_TLB.exGridLinesVSolid;
with Columns do
begin
Add('Item');
with (IUnknown(Add('Pos')) as EXTREELib_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
|
693
|
Can I sort the column by check-state

with Tree1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Check')) as EXTREELib_TLB.Column) do
begin
Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
SortType := EXTREELib_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 := EXTREELib_TLB.SortAscending;
EndUpdate();
end
|
692
|
Can I sort the column by image

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('Image')) as EXTREELib_TLB.Column) do
begin
SortType := EXTREELib_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 := EXTREELib_TLB.SortAscending;
EndUpdate();
end
|
691
|
How can I display UNICODE characters

with Tree1 do
begin
BeginUpdate();
with Font do
begin
Name := 'Arial Unicode';
Size := 22;
end;
HeaderVisible := False;
DefaultItemHeight := 48;
(IUnknown(Columns.Add('')) as EXTREELib_TLB.Column).Def[EXTREELib_TLB.exCellCaptionFormat] := OleVariant(1);
with Items do
begin
AddItem('Ӓӓ');
AddItem('ᦜᦝ;ᦞ');
AddItem('ɮɭ;ɯ');
AddItem('勳勴勵勶');
FormatCell[OleVariant(AddItem(OleVariant(Tree1.Version))),OleVariant(0)] := '(value lfind `UNICODE`) < 0 ? `<fgcolor=FF0000><b>!UNICODE!</b> version</fgcolor> required: ` + value : `` ';
end;
EndUpdate();
end
|
690
|
How do I display the position of the item with 0-padding
with Tree1 do
begin
BeginUpdate();
(IUnknown(Columns.Add('Items')) as EXTREELib_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
|
689
|
Can't get the +/- to be displayed on a divider item. What else can I do

with Tree1 do
begin
BeginUpdate();
LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
DrawGridLines := EXTREELib_TLB.exAllLines;
TreeColumnIndex := 0;
MarkSearchColumn := False;
FullRowSelect := False;
HeaderAppearance := EXTREELib_TLB.AppearanceEnum($fffffff8 Or Integer(EXTREELib_TLB.Bump) Or Integer(EXTREELib_TLB.Sunken));
with Columns do
begin
(IUnknown(Add('C1')) as EXTREELib_TLB.Column).Width := 32;
(IUnknown(Add('C2')) as EXTREELib_TLB.Column).FormatColumn := '1 index ``';
end;
with Items do
begin
h := AddItem('Cell 1');
CellSingleLine[OleVariant(h),OleVariant(1)] := EXTREELib_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] := EXTREELib_TLB.EmptyLine;
CellHAlignment[OleVariant(h),OleVariant(0)] := EXTREELib_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
|
688
|
ADODB Requery sample

// CellButtonClick event - Fired after the user clicks on the cell of button type.
procedure TForm1.Tree1CellButtonClick(ASender: TObject; Item : HITEM;ColIndex : Integer);
begin
with Tree1 do
begin
cmd := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Command'))) as ADODB_TLB.Command);
with cmd do
begin
ActiveConnection := (IUnknown((IUnknown(Tree1.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;
with Tree1 do
begin
BeginUpdate();
HeaderAppearance := EXTREELib_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\ExTree\Sample\Access\sample.accdb',1,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
ConditionalFormats.Add('%1=12345',Null).BackColor := $f0f0f0;
with Items do
begin
LockedItemCount[EXTREELib_TLB.TopAlignment] := 1;
h := LockedItem[EXTREELib_TLB.TopAlignment,0];
ItemDivider[h] := 0;
CellHasButton[OleVariant(h),OleVariant(0)] := True;
CellCaption[OleVariant(h),OleVariant(0)] := 'Requery (add a new record, using ADODB.Command)';
CellHAlignment[OleVariant(h),OleVariant(0)] := EXTREELib_TLB.CenterAlignment;
end;
EndUpdate();
end
|
687
|
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeCheckColumns

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

with Tree1 do
begin
BeginUpdate();
ColumnAutoResize := False;
HeaderAppearance := EXTREELib_TLB.Etched;
with Columns do
begin
Add('City');
(IUnknown(Add('Start')) as EXTREELib_TLB.Column).Visible := False;
(IUnknown(Add('End')) as EXTREELib_TLB.Column).Visible := False;
end;
Description[EXTREELib_TLB.exColumnsFloatBar] := 'Show';
ColumnsFloatBarVisible := EXTREELib_TLB.exColumnsFloatBarVisibleIncludeHiddenColumns;
ColumnsFloatBarSortOrder := EXTREELib_TLB.SortAscending;
EndUpdate();
end
|
685
|
Type of wraps the cell's caption support (Sample 2)

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

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

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

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

with Tree1 do
begin
BeginUpdate();
LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
BackColorHeader := RGB(1,0,0);
ForeColorHeader := RGB(255,255,255);
Background[EXTREELib_TLB.exBackColorFilter] := BackColorHeader;
Background[EXTREELib_TLB.exForeColorFilter] := ForeColorHeader;
Background[EXTREELib_TLB.exHeaderFilterBarButton] := $f0f0f0;
Background[EXTREELib_TLB.exCursorHoverColumn] := $ffffffff;
HeaderAppearance := EXTREELib_TLB.Bump;
with (IUnknown(Columns.Add('Items')) as EXTREELib_TLB.Column) do
begin
FilterOnType := True;
DisplayFilterButton := True;
FilterList := EXTREELib_TLB.exNoItems;
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');
InsertItem(h,Null,'Child 2');
end;
EndUpdate();
end
|
680
|
How can I display the cell's caption without spaces on both sides

with Tree1 do
begin
BeginUpdate();
ColumnAutoResize := True;
with (IUnknown(Columns.Add('Default')) as EXTREELib_TLB.Column) do
begin
Def[EXTREELib_TLB.exCellCaptionFormat] := OleVariant(1);
FormatColumn := '((trim(value) replace ` ` with ` `) replace ` ` with ` `) replace ` ` with `<bgcolor=FF0000> </bgcolor>`';
end;
with Items do
begin
AddItem('');
AddItem('Item A');
AddItem(' Item B');
AddItem(' Item C ');
end;
EndUpdate();
end
|
679
|
How can I highlight the spaces within the column (sample 2)

with Tree1 do
begin
BeginUpdate();
ColumnAutoResize := True;
with (IUnknown(Columns.Add('Default')) as EXTREELib_TLB.Column) do
begin
Def[EXTREELib_TLB.exCellCaptionFormat] := OleVariant(1);
FormatColumn := '`''` + ( value replace ` ` with `_` ) + `''`';
end;
with Items do
begin
AddItem('');
AddItem('Item A');
AddItem(' Item B');
AddItem(' Item C ');
end;
EndUpdate();
end
|
678
|
How can I highlight the spaces within the column (sample 1)

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

with Tree1 do
begin
BeginUpdate();
Background[EXTREELib_TLB.exBackColorFilter] := $10000;
Background[EXTREELib_TLB.exForeColorFilter] := $ffffff;
Background[EXTREELib_TLB.exDateScrollRange] := $ffffff;
Background[EXTREELib_TLB.exDateHeader] := Background[EXTREELib_TLB.exBackColorFilter];
Background[EXTREELib_TLB.exDateScrollThumb] := $808080;
with (IUnknown(Columns.Add('Date')) as EXTREELib_TLB.Column) do
begin
FilterType := EXTREELib_TLB.exDate;
DisplayFilterButton := True;
DisplayFilterDate := True;
DisplayFilterPattern := False;
end;
EndUpdate();
end
|
676
|
Export Data in HTML format

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

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

// 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
bHasParent := FormatABC('value != 0',Items.ItemParent[Item],Null,Null);
with Items do
begin
CellHasCheckBox[OleVariant(Item),OleVariant(0)] := False;
end;
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.exCellCaptionFormat] := OleVariant(1);
FormatColumn := 'value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)';
end;
HeaderVisible := True;
SingleSel := False;
with Items do
begin
h := AddItem('Project');
hChild := InsertItem(h,Null,'Task 1');
hChild := InsertItem(h,Null,'Task 2');
hChild := InsertItem(h,Null,'Task 3');
ExpandItem[h] := True;
LockedItemCount[EXTREELib_TLB.TopAlignment] := 1;
CellCaption[OleVariant(LockedItem[EXTREELib_TLB.TopAlignment,0]),OleVariant(0)] := '<c>Select multiple items and press the <b>SPACE</b> key';
end;
EndUpdate();
end
|
673
|
How can I get the icon from the cell when using the Items.CellImages property (icon index)

// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.Tree1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with Tree1 do
begin
i := ItemFromPoint[-1,-1,c,hit];
OutputDebugString( FormatABC('( 0x44 = ( value bitand 0x44 ) ) ? ( ( (value bitand 0xFFFF0000) bitshift 16 ) array B split `,` ) : `no image`',OleVariant(hit),Items.CellImages[OleVariant(i),OleVariant(c)],Null) );
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=');
Columns.Add('Default');
with Items do
begin
CellImages[OleVariant(AddItem('Item 1')),OleVariant(0)] := '3,2,1';
CellImages[OleVariant(AddItem('Item 2')),OleVariant(0)] := '2,3';
CellImages[OleVariant(AddItem('Item 3')),OleVariant(0)] := '2,';
end;
EndUpdate();
end
|
672
|
How can I get the icon from the cell when using the Items.CellImages property (icon position within the cell)

// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.Tree1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with Tree1 do
begin
i := ItemFromPoint[-1,-1,c,hit];
OutputDebugString( FormatABC('( 0x44 = ( value bitand 0x44 ) ) ? 1 + ( (value bitand 0xFFFF0000) bitshift 16 ) : `no image`',OleVariant(hit),Null,Null) );
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=');
Columns.Add('Default');
with Items do
begin
CellImages[OleVariant(AddItem('Item 1')),OleVariant(0)] := '3,2,1';
CellImages[OleVariant(AddItem('Item 2')),OleVariant(0)] := '2,3';
CellImages[OleVariant(AddItem('Item 3')),OleVariant(0)] := '2';
end;
EndUpdate();
end
|
671
|
Is it possible to change the visual appearance of the position signs when user changes the column's position by drag and drop

with Tree1 do
begin
BeginUpdate();
HeaderAppearance := EXTREELib_TLB.Etched;
with Columns do
begin
Add('Column 1');
Add('Column 2');
Add('Column 3');
end;
with VisualAppearance do
begin
Add(1,'gBFLBCJwBAEHhEJAAEhABZEGACAADACAxRDgMQBQKAAzAJBIYhiG4cYCgMYxXDOCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADKMA4SOKIZhrE4bBhGaQRUgyI43RhHUBzVI' +
'UcQvE6TZRHCQYHgkNIhDJIM7TPLkeSVJaTIRoKhJUogApQThTMgVRDEThkGoSa6soSoYTDBKybLrSLKagOT5YUDKUqSdKEZRpEq1YztWbaQoCUoqVRRVIWfbNd4JJa4a' +
'DhWpYdpeeY5R7bWLgBYVVABL7LLRsSxpHxPF6RXxaeI3GKsaS8G6ic6nPQMHj7I4NS5pUa6Rh2VYNSa8AAtETRYznOw4bTMXAjNIea5bAYIIR5HIoDzVbQcCQAHL9DBe' +
'EMIQEEISgGhMGZQmocgymoYRRCIEQ0G2HYBnEIBig4V4zCQGINnmagCECY43medZ6H2Pw/g+X5fnueh/h+R5+AKABfkMWgGgGYA4AICoCGCE5WA4CphACMgSD2IRIDIB' +
'ICmEd5YGCBpRjGBgegWIYIgWdgoGIRQsiKCZiAiJZ0gGQI4jUS4LECOAiBmDJflGfg2BSY4Al4OhGkOCJ2DgFJjGGfgqgiH5Ch4RhGkqOQmEOEpkFkHQYhJRYyESAokG' +
'KHhIhKIxJEmf4VGUeRGFmF5iBkchPhYJQ5GoYIZg6Ug6GoFYmkmNhuhulRGHKGoImefh0BUZ4JmYeoemeSZ2H6HQmgoBgXDqXwUAQgI=');
Add(2,'CP:1 0 -36 0 0');
end;
Background[EXTREELib_TLB.exColumnsPositionSign] := $2000000;
EndUpdate();
end
|
670
|
A black portion is shown while I am using the BackColorAlternate with EBN colors. What can I do

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

with Tree1 do
begin
BeginUpdate();
LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
with (IUnknown(Columns.Add('Default')) as EXTREELib_TLB.Column) do
begin
Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
PartialCheck := True;
end;
with (IUnknown(Columns.Add('Position')) as EXTREELib_TLB.Column) do
begin
FormatColumn := '( ( 1:=( ( 0:=(1 rpos '''') ) lfind `.`) ) < 0 ? =:0 : (=:0 left =:1) )';
Visible := False;
end;
with ConditionalFormats.Add('%C1 mod 2',Null) do
begin
BackColor := $f0f0f0;
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');
InsertItem(h,Null,'Child 2');
h := AddItem('Root 3');
InsertItem(h,Null,'Child 1');
InsertItem(h,Null,'Child 2');
end;
EndUpdate();
end
|
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>`+ `<br><fgcolor=0000FF><i>leafitemcount</i></fgcolor>: <fgcolor=808080>` + leafitemcount + ' +
'`</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),OleVariant(0)] := 1;
hChild := InsertItem(h,Null,'Task 3');
CellState[OleVariant(hChild),OleVariant(0)] := 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),OleVariant(0)] := 1;
hChild := InsertItem(h,Null,'Task 3');
CellState[OleVariant(hChild),OleVariant(0)] := 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),OleVariant(0)] := 1;
hChild := InsertItem(h,Null,'Task 3');
CellState[OleVariant(hChild),OleVariant(0)] := 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),OleVariant(0)] := 1;
hChild := InsertItem(h,Null,'Task 3');
CellState[OleVariant(hChild),OleVariant(0)] := 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),OleVariant(0)] := 1;
hChild := InsertItem(h,Null,'Task 3');
CellState[OleVariant(hChild),OleVariant(0)] := 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),OleVariant(0)] := 1;
hChild := InsertItem(h,Null,'Task 3');
CellState[OleVariant(hChild),OleVariant(0)] := 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),OleVariant(0)] := 1;
hChild := InsertItem(h,Null,'Task 3');
CellState[OleVariant(hChild),OleVariant(0)] := 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.exCursorHoverColumn] := $ffffffff;
Background[EXTREELib_TLB.exHeaderFilterBarButton] := $1000000;
Background[EXTREELib_TLB.exBackColorFilter] := $10000;
Background[EXTREELib_TLB.exForeColorFilter] := $ffffff;
Description[EXTREELib_TLB.exFilterBarExclude] := '<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>';
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
FilterList := Integer(EXTREELib_TLB.exShowExclude) Or Integer(EXTREELib_TLB.exShowCheckBox);
DisplayFilterButton := True;
AllowSort := False;
AllowDragging := False;
end;
with Items do
begin
AddItem('One');
AddItem('Two');
AddItem('Three');
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\Access\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\Access\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\Access\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\Access\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
|