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"/>
|
||||
</RunParams>
|
||||
<RequiredPackages>
|
||||
<Item>
|
||||
<PackageName Value="LazControls"/>
|
||||
</Item>
|
||||
<Item>
|
||||
<PackageName Value="LazControlDsgn"/>
|
||||
</Item>
|
||||
<Item>
|
||||
<PackageName Value="ExCtrlsPkg"/>
|
||||
</Item>
|
||||
|
@ -10,7 +10,7 @@ uses
|
||||
athreads,
|
||||
{$ENDIF}
|
||||
Interfaces, // this includes the LCL widgetset
|
||||
Forms, main
|
||||
Forms, lazcontrols, main
|
||||
{ you can add units after this };
|
||||
|
||||
{$R *.res}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -5,55 +5,81 @@ unit main;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, ExtCtrls,
|
||||
StdCtrls,
|
||||
ExImgList;
|
||||
SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, StdCtrls, ExtCtrls,
|
||||
DividerBevel, Classes;
|
||||
|
||||
type
|
||||
|
||||
{ TMainForm }
|
||||
|
||||
TMainForm = class(TForm)
|
||||
CheckBox1: TCheckBox;
|
||||
ColorButton1: TColorButton;
|
||||
CheckBox1B: TCheckBox;
|
||||
CheckBox2B: TCheckBox;
|
||||
CheckBox1C: TCheckBox;
|
||||
ColorButton: TColorButton;
|
||||
DividerBevel1: TDividerBevel;
|
||||
DividerBevel2: TDividerBevel;
|
||||
ImageList1: TImageList;
|
||||
ImageList2: TImageList;
|
||||
Label1: TLabel;
|
||||
Label2: TLabel;
|
||||
Label3: TLabel;
|
||||
ToolBar0: TToolBar;
|
||||
ToolBar1: TToolBar;
|
||||
ToolBar2: TToolBar;
|
||||
ToolButton1: TToolButton;
|
||||
ToolButton11: TToolButton;
|
||||
ToolButton12: TToolButton;
|
||||
Label4: TLabel;
|
||||
Label5: TLabel;
|
||||
Panel1: TPanel;
|
||||
Panel2: TPanel;
|
||||
Panel3: TPanel;
|
||||
ToolBar1A: TToolBar;
|
||||
ToolBar1B: TToolBar;
|
||||
ToolBar1C: TToolBar;
|
||||
ToolBar2A: TToolBar;
|
||||
ToolBar2B: TToolBar;
|
||||
ToolButton13: TToolButton;
|
||||
ToolButton14: TToolButton;
|
||||
ToolButton15: TToolButton;
|
||||
ToolButton16: TToolButton;
|
||||
ToolButton17: TToolButton;
|
||||
ToolButton18: TToolButton;
|
||||
ToolButton2: TToolButton;
|
||||
ToolButton21: TToolButton;
|
||||
ToolButton22: TToolButton;
|
||||
ToolButton23: TToolButton;
|
||||
ToolButton24: TToolButton;
|
||||
ToolButton25: TToolButton;
|
||||
ToolButton26: TToolButton;
|
||||
ToolButton27: TToolButton;
|
||||
ToolButton28: TToolButton;
|
||||
ToolButton3: TToolButton;
|
||||
ToolButton4: TToolButton;
|
||||
ToolButton5: TToolButton;
|
||||
ToolButton6: TToolButton;
|
||||
ToolButton31: TToolButton;
|
||||
ToolButton35: TToolButton;
|
||||
ToolButton7: TToolButton;
|
||||
ToolButton8: TToolButton;
|
||||
procedure CheckBox1Change(Sender: TObject);
|
||||
ToolButtonT0_1: TToolButton;
|
||||
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 FormCreate(Sender: TObject);
|
||||
private
|
||||
FImageList1: TImageList;
|
||||
FImageList2: TImageList;
|
||||
|
||||
public
|
||||
|
||||
end;
|
||||
@ -66,45 +92,62 @@ implementation
|
||||
{$R *.lfm}
|
||||
|
||||
uses
|
||||
ImgList;
|
||||
ExImgList;
|
||||
|
||||
{ TMainForm }
|
||||
|
||||
procedure TMainForm.CheckBox1Change(Sender: TObject);
|
||||
procedure TMainForm.CheckBox1BChange(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 0 to ToolBar0.ButtonCount - 1 do
|
||||
begin
|
||||
ToolBar0.Buttons[i].Enabled := Checkbox1.Checked;
|
||||
ToolBar1.Buttons[i].Enabled := Checkbox1.Checked;
|
||||
ToolBar2.Buttons[i].Enabled := Checkbox1.Checked;
|
||||
for i := 0 to ToolBar1B.ButtonCount - 1 do
|
||||
ToolBar1B.Buttons[i].Enabled := CheckBox1B.Checked;
|
||||
end;
|
||||
|
||||
procedure TMainForm.CheckBox1CChange(Sender: TObject);
|
||||
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;
|
||||
|
||||
procedure TMainForm.ColorButton1ColorChanged(Sender: TObject);
|
||||
begin
|
||||
SetImageListColor(FImageList2, ColorButton1.ButtonColor);
|
||||
Toolbar2.Invalidate;
|
||||
SetImageListColor(Toolbar2B.Images, ColorButton.ButtonColor);
|
||||
Toolbar2B.Invalidate;
|
||||
end;
|
||||
|
||||
procedure TMainForm.FormCreate(Sender: TObject);
|
||||
begin
|
||||
// Toolbar0 uses for Images the image list populated at designtime, and
|
||||
// no dedicated imagelist for DisabledImages, i.e. it creates the disabled
|
||||
// icons by the built-in routines.
|
||||
// Original Toolbar for comparison
|
||||
Toolbar1A.Images := ImageList1;
|
||||
|
||||
// Toolbar1 uses for Images the image list populated at designtime,
|
||||
// and for DisabledImages the one created by CreateDisabledImageList.
|
||||
FImageList1 := CreateDisabledImageList(ImageList1, self);
|
||||
Toolbar1.DisabledImages := FImageList1;
|
||||
// Disabled by built-in routines
|
||||
Toolbar1B.Images := ImageList1;
|
||||
Toolbar1B.DisabledImages := nil;
|
||||
|
||||
// Toolbar2 uses for Images a recolored copy of the image list populated at
|
||||
// designtime, and for DisabledImages the same one as Toolbar1
|
||||
FImageList2 := CreateRecoloredImageList(ImageList1, ColorButton1.ButtonColor, self);
|
||||
Toolbar2.Images := FImageList2;
|
||||
Toolbar2.DisabledImages := FImageList1;
|
||||
// Disabled buttons by using CreateDisabledImagelist
|
||||
Toolbar1C.Images := ImageList1;
|
||||
ToolBar1C.DisabledImages := CreateDisabledImageList(ImageList1, self);
|
||||
|
||||
// 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.
|
||||
|
||||
|
@ -101,8 +101,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
{ Creates a new images list as copy of AImagelist and changes all non-transparent
|
||||
pixels to the specified new color. Primarily useful for monochrome outline icons. }
|
||||
{ Creates a new images list as copy of AImagelist and changes all pixels with
|
||||
alpha > 0 to the specified new color.
|
||||
Primarily intended to change the color of monochrome outline icons. }
|
||||
function CreateRecoloredImageList(AImageList: TCustomImageList; ANewColor: TColor;
|
||||
AOwner: TComponent): TImageList;
|
||||
begin
|
||||
@ -112,7 +113,7 @@ begin
|
||||
SetImagelistColor(Result, ANewColor);
|
||||
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. }
|
||||
procedure SetImageListColor(AImageList: TCustomImageList; ANewColor: TColor);
|
||||
var
|
||||
|
Reference in New Issue
Block a user