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

📄 unit1.pas

📁 很多 delphi 精彩小例子。供大家参考。
💻 PAS
字号:
unit Unit1;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Image1: TImage;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Image1Click(Sender: TObject);
  private
    { Private declarations }
    FirstTime     : Boolean;
    vho, vmo, vso : Real;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
  i : Integer;
begin
  with Form1.Image1.Canvas do begin
    Pen.Color := clWhite;
    Pen.Style := psSolid;
    Brush.Color := clWhite;
    Brush.Style := bsSolid;
    Rectangle(0,0,Width,Height);

    Pen.Color := clBlack;
    for i:=1 to 12 do
      Pixels[60+Round(60*Sin(i/12.0*2*Pi)),60-Round(60*Cos(i/12.0*2*Pi))] := clBlack;
  end;

  FirstTime := True;

  Form1.Panel1.Left := 0;
  Form1.Panel1.Top := 0;
  Form1.Width := Form1.Panel1.Width;
  Form1.Height := Form1.Panel1.Height;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  MyNow      : TDateTime;
  Hour, Min,
  Sec, mSec  : Word;
  vh, vm, vs : Real;
begin
  MyNow := Now;
  DecodeTime(MyNow,Hour,Min,Sec,mSec);

  vh := Hour/12.0*2*Pi;
  vm := Min/60.0*2*Pi;
  vs := Sec/60.0*2*Pi;

  with Form1.Image1.Canvas do begin
    if not FirstTime then begin
      Pen.Color := clWhite;
      MoveTo(60,60);
      LineTo(60+Round(38*Sin(vho)),60-Round(38*Cos(vho)));
      MoveTo(60,60);
      LineTo(60+Round(55*Sin(vmo)),60-Round(55*Cos(vmo)));
      MoveTo(60,60);
      LineTo(60+Round(55*Sin(vso)),60-Round(55*Cos(vso)));
    end
    else
      FirstTime := False;
    Pen.Color := clBlack;
    MoveTo(60,60);
    LineTo(60+Round(35*Sin(vh)),60-Round(35*Cos(vh)));
    Pen.Color := clBlue;
    MoveTo(60,60);
    LineTo(60+Round(55*Sin(vm)),60-Round(55*Cos(vm)));
    Pen.Color := clRed;
    MoveTo(60,60);
    LineTo(60+Round(55*Sin(vs)),60-Round(55*Cos(vs)));
  end;

  vho := vh;
  vmo := vm;
  vso := vs;
end;

procedure TForm1.Image1Click(Sender: TObject);
begin
close
end;

end.

⌨️ 快捷键说明

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