unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
themes, Types;
type
{ TForm1 }
TForm1 = class(TForm)
ilTreeView: TImageList;
TreeView1: TTreeView;
procedure FormCreate(Sender: TObject);
private
procedure fillimagelist;
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
var
node: TTreeNode;
i: Integer;
begin
fillimagelist;
TreeView1.StateImages:= ilTreeView;
node:= TreeView1.Items.Add(nil, 'item1');
node.StateIndex:= 0;
for i:= 1 to ilTreeView.Count - 1 do begin
node:= TreeView1.Items.Add(nil, Format('item%d', [i+ 1]));
node.StateIndex:= i
end;
end;
procedure TForm1.fillimagelist;
var
aSize: TSize;
aBMP: TBitmap;
aDetails: TThemedElementDetails;
aRect: TRect;
begin
aDetails:= ThemeServices.GetElementDetails(tbCheckBoxCheckedNormal);
aSize:= ThemeServices.GetDetailSize(aDetails);
ilTreeView.Width:= aSize.cx;
ilTreeView.Height:= aSize.cy;
aBMP:= TBitmap.Create;
with aBMP do
begin
SetSize(aSize.cx, aSize.cy);
Transparent:= True;
TransparentColor:= clForm;
Brush.Color:= TransparentColor;
Canvas.FillRect(0,0, Width,Height);
end;
aRect:=Rect(0, 0, aSize.cx, aSize.cy);
// 0 - tbCheckBoxUncheckedNormal - none selected
ThemeServices.DrawElement(aBMP.Canvas.Handle, aDetails, aRect, nil);
ilTreeView.Add(aBMP, nil);
// 1 - tbCheckBoxCheckedNormal - all selected
aBMP.Canvas.FillRect(0,0, Width,Height);
aDetails:=ThemeServices.GetElementDetails(tbCheckBoxCheckedNormal);
ThemeServices.DrawElement(aBMP.Canvas.Handle, aDetails, aRect, nil);
ilTreeView.Add(aBMP, nil);
// 2 - tbCheckBoxMixedNormal - mixed selection
aBMP.Canvas.FillRect(0,0, Width,Height);
aDetails:=ThemeServices.GetElementDetails(tbCheckBoxMixedNormal);
ThemeServices.DrawElement(aBMP.Canvas.Handle, aDetails, aRect, nil);
ilTreeView.Add(aBMP, nil);
// 3 - tbCheckBoxUncheckedDisabled - unchecked disabled
aBMP.Canvas.FillRect(0,0, Width,Height);
aDetails:=ThemeServices.GetElementDetails(tbCheckBoxUncheckedDisabled);
ThemeServices.DrawElement(aBMP.Canvas.Handle, aDetails, aRect, nil);
ilTreeView.Add(aBMP, nil);
// 4 - tbCheckBoxCheckedDisabled - checked disabled (e.g. 3d descriptor when tbOnly2D checked)
aBMP.Canvas.FillRect(0,0, Width,Height);
aDetails:=ThemeServices.GetElementDetails(tbCheckBoxCheckedDisabled);
ThemeServices.DrawElement(aBMP.Canvas.Handle, aDetails, aRect, nil);
ilTreeView.Add(aBMP, nil);
// 5 - tbCheckBoxMixedDisabled - mixed selection disabled
aBMP.Canvas.FillRect(0,0, Width,Height);
aDetails:=ThemeServices.GetElementDetails(tbCheckBoxMixedDisabled);
ThemeServices.DrawElement(aBMP.Canvas.Handle, aDetails, aRect, nil);
ilTreeView.Add(aBMP, nil);
FreeAndNil(aBMP);
end;
end.