You've already forked lazarus-ccr
ExCtrls: Reworked demo.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8588 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -25,6 +25,12 @@
|
|||||||
<FormatVersion Value="2"/>
|
<FormatVersion Value="2"/>
|
||||||
</RunParams>
|
</RunParams>
|
||||||
<RequiredPackages>
|
<RequiredPackages>
|
||||||
|
<Item>
|
||||||
|
<PackageName Value="LazControls"/>
|
||||||
|
</Item>
|
||||||
|
<Item>
|
||||||
|
<PackageName Value="LazControlDsgn"/>
|
||||||
|
</Item>
|
||||||
<Item>
|
<Item>
|
||||||
<PackageName Value="ExCtrlsPkg"/>
|
<PackageName Value="ExCtrlsPkg"/>
|
||||||
</Item>
|
</Item>
|
||||||
|
@ -10,7 +10,7 @@ uses
|
|||||||
athreads,
|
athreads,
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
Interfaces, // this includes the LCL widgetset
|
Interfaces, // this includes the LCL widgetset
|
||||||
Forms, main
|
Forms, lazcontrols, main
|
||||||
{ you can add units after this };
|
{ you can add units after this };
|
||||||
|
|
||||||
{$R *.res}
|
{$R *.res}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -5,55 +5,81 @@ unit main;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, ExtCtrls,
|
SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, StdCtrls, ExtCtrls,
|
||||||
StdCtrls,
|
DividerBevel, Classes;
|
||||||
ExImgList;
|
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
{ TMainForm }
|
{ TMainForm }
|
||||||
|
|
||||||
TMainForm = class(TForm)
|
TMainForm = class(TForm)
|
||||||
CheckBox1: TCheckBox;
|
CheckBox1B: TCheckBox;
|
||||||
ColorButton1: TColorButton;
|
CheckBox2B: TCheckBox;
|
||||||
|
CheckBox1C: TCheckBox;
|
||||||
|
ColorButton: TColorButton;
|
||||||
|
DividerBevel1: TDividerBevel;
|
||||||
|
DividerBevel2: TDividerBevel;
|
||||||
ImageList1: TImageList;
|
ImageList1: TImageList;
|
||||||
|
ImageList2: TImageList;
|
||||||
Label1: TLabel;
|
Label1: TLabel;
|
||||||
Label2: TLabel;
|
Label2: TLabel;
|
||||||
Label3: TLabel;
|
Label3: TLabel;
|
||||||
ToolBar0: TToolBar;
|
Label4: TLabel;
|
||||||
ToolBar1: TToolBar;
|
Label5: TLabel;
|
||||||
ToolBar2: TToolBar;
|
Panel1: TPanel;
|
||||||
ToolButton1: TToolButton;
|
Panel2: TPanel;
|
||||||
ToolButton11: TToolButton;
|
Panel3: TPanel;
|
||||||
ToolButton12: TToolButton;
|
ToolBar1A: TToolBar;
|
||||||
|
ToolBar1B: TToolBar;
|
||||||
|
ToolBar1C: TToolBar;
|
||||||
|
ToolBar2A: TToolBar;
|
||||||
|
ToolBar2B: TToolBar;
|
||||||
ToolButton13: TToolButton;
|
ToolButton13: TToolButton;
|
||||||
ToolButton14: TToolButton;
|
|
||||||
ToolButton15: TToolButton;
|
|
||||||
ToolButton16: TToolButton;
|
|
||||||
ToolButton17: TToolButton;
|
ToolButton17: TToolButton;
|
||||||
ToolButton18: TToolButton;
|
|
||||||
ToolButton2: TToolButton;
|
|
||||||
ToolButton21: TToolButton;
|
|
||||||
ToolButton22: TToolButton;
|
|
||||||
ToolButton23: TToolButton;
|
ToolButton23: TToolButton;
|
||||||
ToolButton24: TToolButton;
|
ToolButton24: TToolButton;
|
||||||
ToolButton25: TToolButton;
|
|
||||||
ToolButton26: TToolButton;
|
|
||||||
ToolButton27: TToolButton;
|
ToolButton27: TToolButton;
|
||||||
ToolButton28: TToolButton;
|
ToolButton28: TToolButton;
|
||||||
ToolButton3: TToolButton;
|
ToolButton3: TToolButton;
|
||||||
ToolButton4: TToolButton;
|
ToolButton31: TToolButton;
|
||||||
ToolButton5: TToolButton;
|
ToolButton35: TToolButton;
|
||||||
ToolButton6: TToolButton;
|
|
||||||
ToolButton7: TToolButton;
|
ToolButton7: TToolButton;
|
||||||
ToolButton8: TToolButton;
|
ToolButtonT0_1: TToolButton;
|
||||||
procedure CheckBox1Change(Sender: TObject);
|
ToolButtonT0_2: TToolButton;
|
||||||
|
ToolButtonT0_3: TToolButton;
|
||||||
|
ToolButtonT0_4: TToolButton;
|
||||||
|
ToolButtonT0_5: TToolButton;
|
||||||
|
ToolButtonT0_6: TToolButton;
|
||||||
|
ToolButtonT1_1: TToolButton;
|
||||||
|
ToolButtonT1_2: TToolButton;
|
||||||
|
ToolButtonT1_3: TToolButton;
|
||||||
|
ToolButtonT1_4: TToolButton;
|
||||||
|
ToolButtonT1_5: TToolButton;
|
||||||
|
ToolButtonT1_6: TToolButton;
|
||||||
|
ToolButtonT2_1: TToolButton;
|
||||||
|
ToolButtonT2_2: TToolButton;
|
||||||
|
ToolButtonT2_3: TToolButton;
|
||||||
|
ToolButtonT2_4: TToolButton;
|
||||||
|
ToolButtonT2_5: TToolButton;
|
||||||
|
ToolButtonT2_6: TToolButton;
|
||||||
|
ToolButtonT3_1: TToolButton;
|
||||||
|
ToolButtonT3_10: TToolButton;
|
||||||
|
ToolButtonT3_11: TToolButton;
|
||||||
|
ToolButtonT3_12: TToolButton;
|
||||||
|
ToolButtonT3_2: TToolButton;
|
||||||
|
ToolButtonT3_3: TToolButton;
|
||||||
|
ToolButtonT3_4: TToolButton;
|
||||||
|
ToolButtonT3_5: TToolButton;
|
||||||
|
ToolButtonT3_6: TToolButton;
|
||||||
|
ToolButtonT3_7: TToolButton;
|
||||||
|
ToolButtonT3_8: TToolButton;
|
||||||
|
ToolButtonT3_9: TToolButton;
|
||||||
|
procedure CheckBox1BChange(Sender: TObject);
|
||||||
|
procedure CheckBox1CChange(Sender: TObject);
|
||||||
|
procedure CheckBox2BChange(Sender: TObject);
|
||||||
procedure ColorButton1ColorChanged(Sender: TObject);
|
procedure ColorButton1ColorChanged(Sender: TObject);
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
private
|
private
|
||||||
FImageList1: TImageList;
|
|
||||||
FImageList2: TImageList;
|
|
||||||
|
|
||||||
public
|
public
|
||||||
|
|
||||||
end;
|
end;
|
||||||
@ -66,45 +92,62 @@ implementation
|
|||||||
{$R *.lfm}
|
{$R *.lfm}
|
||||||
|
|
||||||
uses
|
uses
|
||||||
ImgList;
|
ExImgList;
|
||||||
|
|
||||||
{ TMainForm }
|
{ TMainForm }
|
||||||
|
|
||||||
procedure TMainForm.CheckBox1Change(Sender: TObject);
|
procedure TMainForm.CheckBox1BChange(Sender: TObject);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
for i := 0 to ToolBar0.ButtonCount - 1 do
|
for i := 0 to ToolBar1B.ButtonCount - 1 do
|
||||||
begin
|
ToolBar1B.Buttons[i].Enabled := CheckBox1B.Checked;
|
||||||
ToolBar0.Buttons[i].Enabled := Checkbox1.Checked;
|
end;
|
||||||
ToolBar1.Buttons[i].Enabled := Checkbox1.Checked;
|
|
||||||
ToolBar2.Buttons[i].Enabled := Checkbox1.Checked;
|
procedure TMainForm.CheckBox1CChange(Sender: TObject);
|
||||||
end;
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
for i := 0 to ToolBar1C.ButtonCount - 1 do
|
||||||
|
ToolBar1C.Buttons[i].Enabled := CheckBox1C.Checked;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.CheckBox2BChange(Sender: TObject);
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
for i := 0 to ToolBar2A.ButtonCount - 1 do
|
||||||
|
ToolBar2B.Buttons[i].Enabled := CheckBox2B.Checked;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMainForm.ColorButton1ColorChanged(Sender: TObject);
|
procedure TMainForm.ColorButton1ColorChanged(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
SetImageListColor(FImageList2, ColorButton1.ButtonColor);
|
SetImageListColor(Toolbar2B.Images, ColorButton.ButtonColor);
|
||||||
Toolbar2.Invalidate;
|
Toolbar2B.Invalidate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMainForm.FormCreate(Sender: TObject);
|
procedure TMainForm.FormCreate(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
// Toolbar0 uses for Images the image list populated at designtime, and
|
// Original Toolbar for comparison
|
||||||
// no dedicated imagelist for DisabledImages, i.e. it creates the disabled
|
Toolbar1A.Images := ImageList1;
|
||||||
// icons by the built-in routines.
|
|
||||||
|
|
||||||
// Toolbar1 uses for Images the image list populated at designtime,
|
// Disabled by built-in routines
|
||||||
// and for DisabledImages the one created by CreateDisabledImageList.
|
Toolbar1B.Images := ImageList1;
|
||||||
FImageList1 := CreateDisabledImageList(ImageList1, self);
|
Toolbar1B.DisabledImages := nil;
|
||||||
Toolbar1.DisabledImages := FImageList1;
|
|
||||||
|
|
||||||
// Toolbar2 uses for Images a recolored copy of the image list populated at
|
// Disabled buttons by using CreateDisabledImagelist
|
||||||
// designtime, and for DisabledImages the same one as Toolbar1
|
Toolbar1C.Images := ImageList1;
|
||||||
FImageList2 := CreateRecoloredImageList(ImageList1, ColorButton1.ButtonColor, self);
|
ToolBar1C.DisabledImages := CreateDisabledImageList(ImageList1, self);
|
||||||
Toolbar2.Images := FImageList2;
|
|
||||||
Toolbar2.DisabledImages := FImageList1;
|
// Original toolbar for comparison
|
||||||
|
Toolbar2A.Images := ImageList2;
|
||||||
|
|
||||||
|
// Recolored toolbar - use the color button to change the color
|
||||||
|
Toolbar2B.Images := CreateRecoloredImageList(ImageList2, ColorButton.ButtonColor, Self);
|
||||||
|
// Since CreateDisabledImageList does not work when all buttons are black
|
||||||
|
// we use another recolored image list for the disabled images, now recolored
|
||||||
|
// to gray.
|
||||||
|
Toolbar2B.DisabledImages := CreateRecoloredImagelist(ImageList2, clGray, Self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@ -101,8 +101,9 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ Creates a new images list as copy of AImagelist and changes all non-transparent
|
{ Creates a new images list as copy of AImagelist and changes all pixels with
|
||||||
pixels to the specified new color. Primarily useful for monochrome outline icons. }
|
alpha > 0 to the specified new color.
|
||||||
|
Primarily intended to change the color of monochrome outline icons. }
|
||||||
function CreateRecoloredImageList(AImageList: TCustomImageList; ANewColor: TColor;
|
function CreateRecoloredImageList(AImageList: TCustomImageList; ANewColor: TColor;
|
||||||
AOwner: TComponent): TImageList;
|
AOwner: TComponent): TImageList;
|
||||||
begin
|
begin
|
||||||
@ -112,7 +113,7 @@ begin
|
|||||||
SetImagelistColor(Result, ANewColor);
|
SetImagelistColor(Result, ANewColor);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ Replaces the color of all non-transparent pixels by the given new color.
|
{ Replaces the color of all pixels with alpha > 0 by the given new color.
|
||||||
Intended to change the color of monochrome outline icons. }
|
Intended to change the color of monochrome outline icons. }
|
||||||
procedure SetImageListColor(AImageList: TCustomImageList; ANewColor: TColor);
|
procedure SetImageListColor(AImageList: TCustomImageList; ANewColor: TColor);
|
||||||
var
|
var
|
||||||
|
Reference in New Issue
Block a user