博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简易时钟
阅读量:4482 次
发布时间:2019-06-08

本文共 2682 字,大约阅读时间需要 8 分钟。

unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls, ExtCtrls;type  TForm1 = class(TForm)    Label1: TLabel;    Timer1: TTimer;    Timer2: TTimer;    procedure FormPaint(Sender: TObject);    procedure Timer1Timer(Sender: TObject);    procedure Timer2Timer(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;var  Form1: TForm1;  hour, min, sec, msec: Word;                  //时,分,秒,微秒  NowTime: TDateTime;                          //获取当前时间  x, y, r: integer;                            //圆心的位置x,y和半径rimplementation{$R *.dfm}procedure TForm1.FormPaint(Sender: TObject);var  i, j, k, a, b, c, d: Integer;begin  r := 100;  x := form1.ClientWidth div 2;  y := form1.ClientHeight div 2;  canvas.Ellipse(x-r, y-r, x+r, y+r);          //画圆  canvas.TextOut(x+r-20, y-6, '3');            //输出数字3  canvas.TextOut(x-r+16, y-6, '9');  canvas.TextOut(x-6, y-r+14, '12');  canvas.TextOut(x-2, y+r-26, '6');  for i := 0 to 60 do                          //画线    begin      if i mod 5 = 0 then                      //是5的倍数画长线        k := 10      else        k := 5;      j := i * 6;      a := round(x + r*cos(j*pi/180));      b := round(y + r*sin(j*pi/180));      c := round(x + (r-k)*cos(j*pi/180));      d := round(y + (r-k)*sin(j*pi/180));      canvas.MoveTo(a,b);      canvas.LineTo(c,d);    end;end;procedure TForm1.Timer1Timer(Sender: TObject); //画时间的指针var  h, m, s: word;begin  nowtime := now;                              //获取当前时间  DecodeTime(nowtime,hour,min,sec,msec);       //将当前时间的时分秒微秒分别赋值  h := hour;  m := min;  s := sec;  if s < 15 then                               //将3:5:15转换成0:0:0    begin      s := s - 15 + 60;      m := m - 1;    end  else    s := s - 15;  if m < 15 then    begin      m := m - 15 + 60;      h := h - 1;    end  else    m := m - 15;  if h < 3 then    begin      h := h + 12 - 3;    end  else    h := h - 3;  label1.Caption := formatdatetime('ampmhh:nn:ss',time);  canvas.MoveTo(x,y);                          //画秒针  canvas.LineTo(round(x + (r-30)*cos(360/60 * s * pi/180)),  trunc(y + (r-30)*sin(360/60 * s * pi/180)));  canvas.MoveTo(x,y);                          //画分针  canvas.LineTo(round(x + (r-50)*cos(360/60/60 * (m*60+s) * pi/180)),  trunc(y + (r-50)*sin(360/60/60 * (m*60+s) * pi/180)));  canvas.MoveTo(x,y);                          //画时针  canvas.LineTo(trunc(x + (r-80)*cos(360/60/60/12 * (h*60*60+m*60+s) * pi/180)),  trunc(y + (r-80)*sin(360/60/60/12 * (h*60*60+m*60+s) * pi/180)));end;procedure TForm1.Timer2Timer(Sender: TObject); //刷新begin  form1.Refresh;end;end.

 

转载于:https://www.cnblogs.com/endsnow/archive/2011/12/13/2285791.html

你可能感兴趣的文章
后缀自动机
查看>>
zkw线段树
查看>>
asp.net中导出Excel的方法
查看>>
[转]跟紧时代,让你的设计更加popular
查看>>
作业1226
查看>>
mainline.js主线
查看>>
fseek()
查看>>
Python学习笔记——PyQt控件中文字居中显示
查看>>
JAVA环境下利用solrj二次开发SOlR搜索的环境部署常见错误
查看>>
Beta阶段敏捷冲刺前准备
查看>>
mini web框架-3-替换模板
查看>>
Siamese Network简介
查看>>
第六节 MongoDB 状态监控、备份复制及自动分片
查看>>
svg学习(三)rect
查看>>
博客园博文生成章节目录
查看>>
ruby 模块 的引入
查看>>
CI Weekly #21 | iOS 持续集成快速入门指南
查看>>
xml 校验
查看>>
Jquery获取输入框属性file,ajax传输后端,下载图片
查看>>
深入浅出Visual_C动态链接库(Dll)编程(宋宝华)----整理(word)
查看>>