怎样编程实现指针式的时钟?
解决方案 »
- DBChart中,Series.VertAxis与CustomAxes[x]关联,y轴数据不能放大缩小
- delphi 连接sql数据库的问题
- 点击网页,执行delphi代码
- 关于多路数据读取的问题,请高人指点
- Delphi菜鸟问题:关于DBGRID
- 请问高手:在delphi中怎样将Excel单元格合并?
- 大家好,我在大富翁论坛上呆腻了,到这里回答问题!
- 怎么能知道当前数组的长度?(内空)(在线等!)
- 关于as的用法
- 我想做一个从TEdit继承过来的组件,该Edit要实现按下0、3、7、9几个数字键没反应,其它的与TEdit都一样,我该怎么写这个组件的处理事件呢
- 为了下载一份源码......help me !~~
- 刚刚入门,简单的SQL查询问题,帮我啊!
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, ExtCtrls, Menus;type
TForm1 = class(TForm)
Panel1: TPanel;
Image1: TImage;
Timer1: TTimer;
PopupMenu1: TPopupMenu;
Close1: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Close1Click(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(40*Sin(vho)),60-Round(40*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(40*Sin(vh)),60-Round(40*Cos(vh)));
Pen.Color := clBlack;
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.Close1Click(Sender: TObject);
begin
close;
end;end.
http://www.8860.net/delphicode/dispdoc.asp?id=84