
08.12.2009, 23:26
|
 |
Местный
|
|
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
|
|
кое что поправил держи
Код:
procedure TForm2.drawing;
const
rad1=100;
rad2=100;
dx=150;
dy=150;
len1=2;
len2=1.5;
len3=1.1;
var
i: integer;
X, Y, xh, yh, xm, ym, xs, ys: integer;
Now: TDateTime;
hour, min, sec, msec: word;
hour1, min1, sec1: real;
begin
for i := 1 to 12 do
begin
X := trunc(-sin(((pi/6)*(i-1))-pi+(pi/6))*rad1) + dx;
Y := trunc(cos(((pi/6)*(i-1))-pi+(pi/6))*rad2) + dy;
image1.Canvas.TextOut(x,y,inttostr(i));
end;
Now := Time;
DecodeTime(Now,hour,min,sec,msec);
if hour>12 then hour := hour - 12;
hour1 := hour + min/60;
Xh := trunc(-sin(((pi/6)*(hour1-1))-pi+(pi/6))*(rad1/len1))
+ dx;
Yh := trunc(cos(((pi/6)*(hour1-1))-pi+(pi/6))*(rad2/len1))
+ dy;
image1.Canvas.Pen.Color:=clred;;
image1.Canvas.MoveTo(dx, dy);
Image1.canvas.lineto(xh,yh);
// minutnay strelka
min1 := min/5;
Xm := trunc(-sin(((pi/6)*(min1-1))-pi+(pi/6))*(rad1/len2))
+ dx;
Ym := trunc(cos(((pi/6)*(min1-1))-pi+(pi/6))*(rad2/len2))
+ dy;
image1.Canvas.Pen.Color:=clred;;
image1.Canvas.MoveTo(dx, dy);
Image1.canvas.lineto(xm,ym);
//sekundnay strelka
sec1 := sec/5;
Xs := trunc(-sin(((pi/6)*(sec1-1))-pi+(pi/6))*(rad1/len3))
+ dx;
Ys := trunc(cos(((pi/6)*(sec1-1))-pi+(pi/6))*(rad2/len3))
+ dy;
image1.Canvas.Pen.Color:=clred;;
image1.Canvas.MoveTo(dx, dy);
Image1.canvas.lineto(xs,ys);
end;
procedure TForm2.Timer1Timer(Sender: TObject);
begin
drawing;
end;
|