164 lines
3.4 KiB
ObjectPascal

unit umain;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls,
BCMDButton;
type
{ TfrmMain }
TfrmMain = class(TForm)
Label1: TLabel;
Label10: TLabel;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
Label7: TLabel;
Label9: TLabel;
BCMDButton1: TBCMDButton;
BCMDButton10: TBCMDButton;
BCMDButton11: TBCMDButton;
BCMDButton15: TBCMDButton;
BCMDButton16: TBCMDButton;
BCMDButton17: TBCMDButton;
BCMDButton2: TBCMDButton;
BCMDButton27: TBCMDButton;
BCMDButton28: TBCMDButton;
BCMDButton29: TBCMDButton;
BCMDButton30: TBCMDButton;
BCMDButton31: TBCMDButton;
BCMDButton32: TBCMDButton;
BCMDButton5: TBCMDButton;
mdGetRadio: TBCMDButton;
mdSelect: TBCMDButton;
mdUnselect: TBCMDButton;
mdInvert: TBCMDButton;
BCMDButton33: TBCMDButton;
BCMDButton34: TBCMDButton;
BCMDButton35: TBCMDButton;
mdAnimations: TBCMDButton;
mdGet: TBCMDButton;
BCMDButton9: TBCMDButton;
Panel1: TPanel;
Panel11: TPanel;
Panel12: TPanel;
Panel13: TPanel;
Panel2: TPanel;
Panel7: TPanel;
Panel8: TPanel;
Panel9: TPanel;
procedure FormCreate(Sender: TObject);
procedure MDButton1Click(Sender: TObject);
procedure mdSelectClick(Sender: TObject);
procedure mdUnselectClick(Sender: TObject);
procedure mdInvertClick(Sender: TObject);
procedure mdAnimationsClick(Sender: TObject);
procedure mdGetRadioClick(Sender: TObject);
procedure mdGetClick(Sender: TObject);
private
procedure EnableAnimations(Control: TControl);
procedure DoubleBuffering(Control: TControl);
public
end;
var
frmMain: TfrmMain;
implementation
{$R *.lfm}
{ TfrmMain }
procedure TfrmMain.mdSelectClick(Sender: TObject);
begin
BCMDButton33.SelectAll;
end;
procedure TfrmMain.MDButton1Click(Sender: TObject);
begin
ShowMessage('Hello World');
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
{$ifdef windows}
DoubleBuffering(Self);
{$endif}
end;
procedure TfrmMain.mdUnselectClick(Sender: TObject);
begin
BCMDButton33.UnselectAll;
end;
procedure TfrmMain.mdInvertClick(Sender: TObject);
begin
BCMDButton33.InvertSelection;
end;
procedure TfrmMain.mdAnimationsClick(Sender: TObject);
begin
EnableAnimations(Self);
// Refresh controls
Invalidate;
end;
procedure TfrmMain.mdGetRadioClick(Sender: TObject);
begin
with BCMDButton27.GetSelected do
begin
ShowMessage(Text);
Free;
end;
end;
procedure TfrmMain.mdGetClick(Sender: TObject);
begin
with BCMDButton33.GetSelected do
begin
ShowMessage(Text);
Free;
end;
end;
procedure TfrmMain.EnableAnimations(Control: TControl);
var
i: integer;
wincontrol: TWinControl;
begin
if Control is TBCMDButton then
TBCMDButton(Control).Animation := mdAnimations.Checked;
if Control is TWinControl then
begin
wincontrol := TWinControl(Control);
if wincontrol.ControlCount > 0 then
for i := 0 to wincontrol.ControlCount - 1 do
EnableAnimations(wincontrol.Controls[i]);
end;
end;
procedure TfrmMain.DoubleBuffering(Control: TControl);
var
i: integer;
wincontrol: TWinControl;
begin
if Control is TWinControl then
begin
wincontrol := TWinControl(Control);
wincontrol.DoubleBuffered := True;
if wincontrol.ControlCount > 0 then
for i := 0 to wincontrol.ControlCount - 1 do
DoubleBuffering(wincontrol.Controls[i]);
end;
end;
end.