⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.pas

📁 一个漂亮的时钟源码
💻 PAS
字号:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls, ExtCtrls, BmpClock, Spin, MMSystem, ExtDlgs, XPMan;

const ActStr='激活状态';
const StpStr='停止状态';

type
  TForm1 = class(TForm)
    Image1: TImage;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Button1: TButton;
    Label5: TLabel;
    Label6: TLabel;
    CheckBox1: TCheckBox;
    ColorDialog1: TColorDialog;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    CheckBox6: TCheckBox;
    CheckBox7: TCheckBox;
    Edit5: TEdit;
    Button5: TButton;
    OpenPictureDialog1: TOpenPictureDialog;
    CombTheme: TComboBox;
    Label16: TLabel;
    RX: TSpinEdit;
    RY: TSpinEdit;
    Label17: TLabel;
    Label18: TLabel;
    GroupBox1: TGroupBox;
    SpinEdit1: TSpinEdit;
    Label7: TLabel;
    SpinEdit2: TSpinEdit;
    Label8: TLabel;
    SpinEdit3: TSpinEdit;
    Label9: TLabel;
    Button2: TButton;
    GroupBox2: TGroupBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    GroupBox3: TGroupBox;
    Button3: TButton;
    SpinEdit6: TSpinEdit;
    Label10: TLabel;
    SpinEdit5: TSpinEdit;
    Label11: TLabel;
    SpinEdit4: TSpinEdit;
    Label12: TLabel;
    Button4: TButton;
    SpinEdit9: TSpinEdit;
    Label13: TLabel;
    SpinEdit8: TSpinEdit;
    Label14: TLabel;
    SpinEdit7: TSpinEdit;
    Label15: TLabel;
    CheckBox8: TCheckBox;
    Label19: TLabel;
    SpinEdit10: TSpinEdit;
    Label20: TLabel;
    SpinEdit11: TSpinEdit;
    Button6: TButton;
    Button7: TButton;
    SpinEdit12: TSpinEdit;
    SpinEdit13: TSpinEdit;
    Label21: TLabel;
    CheckBox9: TCheckBox;
    Label22: TLabel;
    CombBgPic: TComboBox;
    Label23: TLabel;
    BmpClock1: TBmpClock;
    CheckBox10: TCheckBox;
    Button8: TButton;
    CheckBox11: TCheckBox;
    CheckBox12: TCheckBox;
    GroupBox4: TGroupBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    Button9: TButton;
    SpinEdit14: TSpinEdit;
    Label24: TLabel;
    XPManifest1: TXPManifest;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BmpClock1Click(Sender: TObject);
    procedure BmpClock1Hour(Sender: TObject; Hour: Word);
    procedure BmpClock1Minute(Sender: TObject; Minute: Word);
    procedure BmpClock1Second(Sender: TObject; Second: Word);
    procedure BmpClock1Time(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure SpinEdit1Change(Sender: TObject);
    procedure SpinEdit2Change(Sender: TObject);
    procedure SpinEdit3Change(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
    procedure CheckBox3Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure SpinEdit4Change(Sender: TObject);
    procedure SpinEdit7Change(Sender: TObject);
    procedure SpinEdit5Change(Sender: TObject);
    procedure SpinEdit8Change(Sender: TObject);
    procedure SpinEdit6Change(Sender: TObject);
    procedure SpinEdit9Change(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure CombThemeChange(Sender: TObject);
    procedure RXChange(Sender: TObject);
    procedure RYChange(Sender: TObject);
    procedure CheckBox8Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure SpinEdit10Change(Sender: TObject);
    procedure SpinEdit11Change(Sender: TObject);
    procedure CheckBox9Click(Sender: TObject);
    procedure SpinEdit12Change(Sender: TObject);
    procedure SpinEdit13Change(Sender: TObject);
    procedure CombBgPicChange(Sender: TObject);
    procedure CheckBox10Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure CheckBox11Click(Sender: TObject);
    procedure CheckBox12Click(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure SpinEdit14Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
{$R Sound.RES}
var
  H, M, S, MS: Integer;
  ClockActive: Boolean;
procedure TForm1.Button1Click(Sender: TObject);
begin
  BmpClock1.VersionInfo :='fasfsd'  //Any String Here.
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.Text :='0';
  Edit2.Text :='0';
  Edit3.Text :='0';
  Edit4.Text :='0';
  ClockActive :=True;
  H :=0;
  M :=0;
  S :=0;
  MS :=0;
  CombTheme.ItemIndex :=1;
  Combbgpic.ItemIndex :=0;
end;

procedure TForm1.BmpClock1Click(Sender: TObject);
begin
  if ClockActive then begin
    ClockActive :=False;
    BmpClock1.Active :=False;
    Caption :=StpStr;
  end
  else begin
    ClockActive :=True;
    BmpClock1.Active :=True;
    Caption :=ActStr;
  end;
end;

procedure TForm1.BmpClock1Hour(Sender: TObject; Hour: Word);
begin
  if CheckBox6.Checked then begin
    PlaySound(PChar('HOUR'), hInstance, snd_ASync or snd_Resource);
    Inc(H);
    Edit3.Text :=InttoStr(H);
  end;
end;

procedure TForm1.BmpClock1Minute(Sender: TObject; Minute: Word);
begin
  if CheckBox5.Checked then begin
    PlaySound(PChar('MINUTE'), hInstance, snd_ASync or snd_Resource);
    Inc(M);
    Edit2.Text :=InttoStr(M);
  end;
end;

procedure TForm1.BmpClock1Second(Sender: TObject; Second: Word);
begin
  if CheckBox4.Checked then begin
    PlaySound(PChar('SECOND'), hInstance, snd_ASync or snd_Resource);
    Inc(S);
    Edit1.Text :=InttoStr(S);
  end;
end;

procedure TForm1.BmpClock1Time(Sender: TObject);
begin
  if CheckBox7.Checked then begin
    Inc(MS);
    Edit4.Text :=InttoStr(MS);
  end;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  if CheckBox1.Checked then
    BmpClock1.HourHandEnabled :=True
  else
    BmpClock1.HourHandEnabled :=False;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if ColorDialog1.Execute then
    BmpClock1.HourHand.Color :=ColorDialog1.Color;
end;

procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
  BmpClock1.HourHand.Radius :=SpinEdit1.Value ;
end;

procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
  BmpClock1.HourHand.BackRadius :=SpinEdit2.Value ;
end;

procedure TForm1.SpinEdit3Change(Sender: TObject);
begin
  BmpClock1.HourHand.Width :=SpinEdit3.Value ;
end;

procedure TForm1.CheckBox2Click(Sender: TObject);
begin
  if CheckBox2.Checked then
    BmpClock1.MinuteHandEnabled :=True
  else
    BmpClock1.MinuteHandEnabled :=False;
end;

procedure TForm1.CheckBox3Click(Sender: TObject);
begin
  if CheckBox3.Checked then
    BmpClock1.SecondHandEnabled :=True
  else
    BmpClock1.SecondHandEnabled :=False;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  if ColorDialog1.Execute then
    BmpClock1.MinuteHand.Color :=ColorDialog1.Color ;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  if ColorDialog1.Execute then
    BmpClock1.SecondHand.Color :=ColorDialog1.Color ;
end;

procedure TForm1.SpinEdit4Change(Sender: TObject);
begin
  BmpClock1.MinuteHand.Radius :=SpinEdit4.Value ;
end;

procedure TForm1.SpinEdit7Change(Sender: TObject);
begin
  BmpClock1.SecondHand.Radius :=SpinEdit7.Value ;
end;

procedure TForm1.SpinEdit5Change(Sender: TObject);
begin
  BmpClock1.MinuteHand.BackRadius :=SpinEdit5.Value ;
end;

procedure TForm1.SpinEdit8Change(Sender: TObject);
begin
  BmpClock1.SecondHand.BackRadius :=SpinEdit8.Value ;
end;

procedure TForm1.SpinEdit6Change(Sender: TObject);
begin
  BmpClock1.MinuteHand.Width :=SpinEdit6.Value ;
end;

procedure TForm1.SpinEdit9Change(Sender: TObject);
begin
  BmpClock1.SecondHand.Width :=SpinEdit9.Value ;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  if OpenPictureDialog1.Execute then begin
    BmpClock1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
    Edit5.Text :=openPictureDialog1.FileName ;
  end;
end;

procedure TForm1.CombThemeChange(Sender: TObject);
begin
  case CombTheme.ItemIndex of
  0:
    begin
      BmpClock1.ThemeStyle :=tsNone;
      RX.Enabled :=False;
      RY.Enabled :=False;
    end;
  1:
    begin
      BmpClock1.ThemeStyle :=tsCircle;
      RX.Enabled :=False;
      RY.Enabled :=False;
    end;
  2:
    begin
      BmpClock1.ThemeStyle :=tsRoundRect;
      RX.Enabled :=True;
      RY.Enabled :=True;
    end;
  end;
end;

procedure TForm1.RXChange(Sender: TObject);
begin
  BmpClock1.RoundX :=RX.Value ;
end;

procedure TForm1.RYChange(Sender: TObject);
begin
  BmpClock1.RoundY :=RY.Value ;
end;

procedure TForm1.CheckBox8Click(Sender: TObject);
begin
  BmpClock1.CenterPoint := CheckBox8.Checked;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  if ColorDialog1.Execute then
    BmpClock1.CenterMark.FillColor :=ColorDialog1.Color ;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  if ColorDialog1.Execute then
    BmpClock1.CenterMark.PenColor :=ColorDialog1.Color ;
end;

procedure TForm1.SpinEdit10Change(Sender: TObject);
begin
  BmpClock1.CenterMark.PenSize :=SpinEdit10.Value ;
end;

procedure TForm1.SpinEdit11Change(Sender: TObject);
begin
  BmpClock1.CenterMark.PointSize :=SpinEdit11.Color ;
end;

procedure TForm1.CheckBox9Click(Sender: TObject);
begin
  SpinEdit12.Enabled :=not CheckBox9.Checked ;
  SpinEdit13.Enabled :=not CheckBox9.Checked ;
  BmpClock1.AutoCenter := CheckBox9.Checked ;
end;

procedure TForm1.SpinEdit12Change(Sender: TObject);
begin
  BmpClock1.Center.X :=SpinEdit12.Value ;
end;

procedure TForm1.SpinEdit13Change(Sender: TObject);
begin
  BmpClock1.Center.Y :=SpinEdit13.Value ;
end;

procedure TForm1.CombBgPicChange(Sender: TObject);
begin
  case CombBgPic.ItemIndex of
  0: BmpClock1.PictureStyle :=psNone;
  1: BmpClock1.PictureStyle :=psStretch;
  2: BmpClock1.PictureStyle :=psTile;
  end;
end;

procedure TForm1.CheckBox10Click(Sender: TObject);
begin
  BmpClock1.TransParent :=Checkbox10.Checked ;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  if ColorDialog1.Execute then
    BmpClock1.TransParentColor :=ColorDialog1.Color ;
end;

procedure TForm1.CheckBox11Click(Sender: TObject);
begin
  BmpClock1.RoundHole :=CheckBox11.Checked ;
end;

procedure TForm1.CheckBox12Click(Sender: TObject);
begin
  BmpClock1.Active :=CheckBox12.Checked ;
end;

procedure TForm1.RadioButton1Click(Sender: TObject);
begin
  BmpClock1.BackGroundStyle :=bgPicture;
  Button9.Enabled :=False ;
end;

procedure TForm1.RadioButton2Click(Sender: TObject);
begin
  BmpClock1.BackGroundStyle :=bgColor;
  Button9.Enabled :=RadioButton2.Checked ;
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
  if ColorDialog1.Execute then
    BmpClock1.BackGroundColor :=ColorDialog1.Color ;
end;

procedure TForm1.SpinEdit14Change(Sender: TObject);
begin
  BmpClock1.Interval :=SpinEdit14.Value ;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -