181 lines
5.5 KiB
ObjectPascal
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.
|