181 lines
5.5 KiB
ObjectPascal

unit umain;
{$mode objfpc}{$H+}
interface
uses
Forms, Controls, Graphics, ExtCtrls, ComCtrls, Types,
{ BGRABitmap }
BGRABitmap, BGRABitmapTypes,
{ BGRAControls }
BGRACustomDrawn, BCPanel, BCToolBar, Classes;
type
{ TfrmMain }
TfrmMain = class(TForm)
BCDButton1: TBCDButton;
BCDButton2: TBCDButton;
BCDCheckBox3: TBCDCheckBox;
BCDCheckBox4: TBCDCheckBox;
BCDEdit1: TBCDEdit;
BCDEdit2: TBCDEdit;
BCDProgressBar1: TBCDProgressBar;
BCDRadioButton1: TBCDRadioButton;
BCDRadioButton2: TBCDRadioButton;
BCDRadioButton3: TBCDRadioButton;
BCDRadioButton4: TBCDRadioButton;
BCDSpinEdit1: TBCDSpinEdit;
BCDSpinEdit2: TBCDSpinEdit;
BCDStaticText1: TBCDStaticText;
BCDStaticText2: TBCDStaticText;
BCPanel1: TBCPanel;
BCToolBar1: TBCToolBar;
BCDCheckBox1: TBCDCheckBox;
BCDCheckBox2: TBCDCheckBox;
Timer1: TTimer;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
procedure BCDButton1Click(Sender: TObject);
procedure BCToolBar1PaintButton(Sender: TToolButton; State: integer);
procedure BCToolBar1Redraw(Sender: TObject; Bitmap: TBGRABitmap);
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
procedure AutoAdjustLayout(AMode: TLayoutAdjustmentPolicy;
const AFromDPI, AToDPI, AOldFormWidth, ANewFormWidth: integer); override;
end;
var
frmMain: TfrmMain;
implementation
{$R *.lfm}
{ TfrmMain }
procedure TfrmMain.FormCreate(Sender: TObject);
begin
//Self.AutoAdjustLayout(lapAutoAdjustForDPI, Self.DesignTimeDPI,
// Screen.PixelsPerInch, Self.Width, ScaleX(Self.Width, Self.DesignTimeDPI));
end;
procedure TfrmMain.BCToolBar1Redraw(Sender: TObject; Bitmap: TBGRABitmap);
begin
Bitmap.Rectangle(0, 0, Bitmap.Width, Bitmap.Height, BGRA(83, 83, 83),
BGRA(83, 83, 83), dmSet);
Bitmap.SetHorizLine(0, Bitmap.Height - 2, Bitmap.Width - 1, BGRA(106, 106, 106));
Bitmap.SetHorizLine(0, Bitmap.Height - 1, Bitmap.Width - 1, BGRA(40, 40, 40));
end;
procedure TfrmMain.BCToolBar1PaintButton(Sender: TToolButton; State: integer);
var
Bitmap: TBGRABitmap;
ts: TSize;
begin
Bitmap := TBGRABitmap.Create(Sender.Width, Sender.Height);
if Sender.Style = tbsButton then
begin
if Sender.Enabled then
begin
if State = 3 then
begin
{ Button Down }
Bitmap.Rectangle(0, 0, Sender.Width, Sender.Height - 1, BGRA(48, 48, 48),
BGRA(61, 61, 61), dmSet);
Bitmap.Rectangle(1, 1, Sender.Width - 1, Sender.Height - 2, BGRA(55, 55, 55),
BGRA(61, 61, 61), dmSet);
Bitmap.SetHorizLine(0, Sender.Height - 1, Sender.Width - 1, BGRA(83, 83, 83));
end
else
begin
if State = 2 then
begin
{ Button Hovered }
Bitmap.GradientFill(0, 0, Sender.Width, Sender.Height, BGRA(132, 132, 132),
BGRA(109, 109, 109), gtLinear, PointF(0, 0),
PointF(0, Sender.Height), dmSet);
Bitmap.Rectangle(0, 0, Sender.Width, Sender.Height - 1,
BGRA(48, 48, 48), dmSet);
Bitmap.SetHorizLine(1, 1, Sender.Width - 2, BGRA(160, 160, 160));
Bitmap.SetHorizLine(0, Sender.Height - 1, Sender.Width - 1, BGRA(83, 83, 83));
end
else
{ Button Normal }
Bitmap.Fill(BGRA(83, 83, 83));
end;
end
else
begin
{ Button Disabled }
Bitmap.Rectangle(0, 0, Sender.Width, Sender.Height - 1, BGRA(66, 66, 66),
BGRA(71, 71, 71), dmSet);
Bitmap.SetHorizLine(0, Sender.Height - 1, Sender.Width - 1, BGRA(83, 83, 83));
end;
Bitmap.FontName := Sender.Font.Name;
Bitmap.FontStyle := Sender.Font.Style;
Bitmap.FontHeight := Sender.Font.Height;
Bitmap.FontQuality := fqSystemClearType;
ts := Bitmap.TextSize(Sender.Caption);
if Sender.Enabled then
begin
{ Text Enabled }
Bitmap.TextOut((Sender.Width - ts.cx) div 2, ((Sender.Height - ts.cy) div 2) -
1, Sender.Caption, BGRA(47, 47, 47));
Bitmap.TextOut((Sender.Width - ts.cx) div 2, (Sender.Height - ts.cy) div 2,
Sender.Caption, BGRA(229, 229, 229));
end
else
{ Text Disabled }
Bitmap.TextOut((Sender.Width - ts.cx) div 2, (Sender.Height - ts.cy) div 2,
Sender.Caption, BGRA(170, 170, 170));
end;
Bitmap.Draw(Sender.Canvas, 0, 0, True);
Bitmap.Free;
end;
procedure TfrmMain.BCDButton1Click(Sender: TObject);
begin
BCDButton2.Enabled := not BCDButton2.Enabled;
BCDEdit2.Enabled := not BCDEdit2.Enabled;
BCDSpinEdit2.Enabled := not BCDSpinEdit2.Enabled;
BCDStaticText2.Enabled := not BCDStaticText2.Enabled;
BCDCheckBox3.Enabled := not BCDCheckBox3.Enabled;
BCDCheckBox4.Enabled := not BCDCheckBox4.Enabled;
BCDRadioButton3.Enabled := not BCDRadioButton3.Enabled;
BCDRadioButton4.Enabled := not BCDRadioButton4.Enabled;
end;
procedure TfrmMain.Timer1Timer(Sender: TObject);
begin
if BCDProgressBar1.Position <> BCDProgressBar1.Max then
BCDProgressBar1.Position := BCDProgressBar1.Position + 1
else
Timer1.Enabled := False;
end;
procedure TfrmMain.AutoAdjustLayout(AMode: TLayoutAdjustmentPolicy;
const AFromDPI, AToDPI, AOldFormWidth, ANewFormWidth: integer);
begin
inherited AutoAdjustLayout(AMode, AFromDPI, AToDPI, AOldFormWidth,
ANewFormWidth);
//BCToolBar1.ButtonWidth := ScaleX(BCToolBar1.ButtonWidth, Self.DesignTimeDPI);
//BCToolBar1.ButtonHeight := ScaleY(BCToolBar1.ButtonHeight, Self.DesignTimeDPI);
BCToolBar1.Height := BCToolBar1.ButtonHeight + 4;
end;
end.