habe eine uhr gemacht (teile kopiert) und ein paar probleme!!
meine striche passen sich dem fenster an, meine uhr natürlich nicht, wie kann ich das lösen?
warum muss ich in der zeile " decodetime(now,hour,min,sec,msec);" now eingeben, gibt es andere möglichkeiten?
Delphi-Quellcode:
procedure TForm2.FormResize(Sender: TObject);
begin
mx := Width div 2;
my := Height div 2;
refresh;
with canvas do begin
pen.Width:=3;
pen.Color:=clblack;
moveto(mx,my-width div 4);
lineto(mx,my-width div 5);
pen.Width:=3;
pen.Color:=clblack;
moveto(mx-width div 4,my);
lineto(mx-width div 5,my);
pen.Width:=3;
pen.Color:=clblack;
moveto(mx+width div 4,my);
lineto(mx+width div 5,my);
pen.Width:=3;
pen.Color:=clblack;
moveto(mx,my+width div 4);
lineto(mx,my+width div 5);
end;
end;
procedure TForm2.Timer1Timer(Sender: TObject);
var winkel : real;
x, y, r, i : Integer;
hour, min, sec, msec : Word;
begin
Form2.Caption:=TimeToStr(Now);
decodetime(now,hour,min,sec,msec);
r:=60;
// Sekundenzeiger
winkel:=sec* ((2*pi) / 60) - pi/2;
x:=Trunc(cos(winkel)*r);
y:=Trunc(sin(winkel)*r);
x:=x+(mx);
y:=y+(my);
Canvas.Pen.Color:=clblack;
Canvas.Pen.Width:=1;
Canvas.MoveTo(mx,my);
Canvas.LineTo(x,y);
//Minutenzeiger
winkel:=min* ((2*pi) / 60) - pi/2;
x:=Trunc(cos(winkel)*r*0.9);
y:=Trunc(sin(winkel)*r*0.9);
x:=x+(mx);
y:=y+(my);
Canvas.Pen.Width:=2;
Canvas.MoveTo(mx,my);
Canvas.LineTo(x,y);
//Stundenzeiger
IF hour>12 THEN hour:=hour-12;
winkel:=(hour*(2*pi) / 12) + (min*(2*pi) / 720) - pi/2;
x:=Trunc(cos(winkel)*r*0.6);
y:=Trunc(sin(winkel)*r*0.6);
x:=x+(mx);
y:=y+(my);
Canvas.Pen.Width:=3;
Canvas.MoveTo(mx,my);
Canvas.LineTo(x,y);
end;
end.