| |
|
|
| KompilierenMarkierenSeparierenSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Analog-Uhr
Declare xi%,yi%
Declare ende%
Proc Rechnen
Parameters Winkel!
Declare x!,y!
Winkel! = Winkel! - (@PI()/2) Winkel um 90 Grad zurück
x! = @COS(Winkel!)
y! = @SIN(Winkel!)
x! = x! * (@Width(%hwnd) / 2) Radius korrigieren
y! = y! * (@Height(%hwnd) / 2)
x! = x! + (@Width(%hwnd) / 2) auf Fenstermittelpunkt setzen
y! = y! + (@Height(%hwnd) / 2)
xi%= @INT(x!) Nur Ganzzahlen
yi%= @INT(y!)
EndProc
Proc Zeiger
Declare Winkel%
Declare Hour%,Min%,sec%,x%,y%
Hour% = @VAL(left$(@Time$(0),2))
Min% = @VAL(Mid$(@Time$(0),4,2))
sec% = @VAL(left$(@Time$(1),2))
Ellipse 0,0-@Width(%hwnd),@Height(%hwnd) Kreis zeichnen
Rechnen (2* @PI()/60)*sec% Sekundenzeiger ausrechnen
MoveTo (@Width(%hwnd) / 2), (@height(%hwnd) / 2)auf Fenstermittelpunkt setzen
LineTo xi%,yi% Sekundenzeiger zeichnen
Rechnen (2* @PI()/60)*min% Minutenzeiger
MoveTo (@Width(%hwnd) / 2), (@height(%hwnd) / 2)
LineTo xi%,yi%
If hour% > 12
Hour% = hour% - 12
EndIf
Rechnen (2* @PI()/12)*hour% Stundenzeiger
MoveTo (@Width(%hwnd) / 2), (@height(%hwnd) / 2)
LineTo xi%,yi%
Settext %hwnd,Time$(0) + : + left$(@Time$(1),2)
EndProc
Proc GoUhr
Declare Ende%
SetTimer 1000
Let Ende% = 0
WHILENOT Ende%
WaitInput
If %wmTimer
Zeiger
EndIf
ENDWHILE
KillTimer
EndProc
window 0,0-300,340
settruecolor 1
whilenot ende%
GoUhr
wend
end
|
|
|
| |
|
|