Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249107 (10543)
  Suchen
 Zurück zur Übersicht
 AutorThema: Bahnsteiguhr
Ulrich
Datum:18.03.02 20:55 Antwortenals Email verschicken  


hallo liebe profaner,
ein basicumsteiger möchte für seine modellbahnsteuerung eine
typische Bahnsteig-analoguhr,die evt.auch in der größe veränderbar ist programmieren.gibt es schon quellcodes oder wer kann helfen?
mfg ulrich


Andreas Miethe
Datum: 18.03.02 21:53 Antwortenals Email verschicken (andreas@andreas-miethe.de) 


Hallo Ulrich,

hier ein Beispiel fuer eine Analoguhr.

Gruss
Andreas

'---------------------------------
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
'---------------------------------



 Zurück zur Übersicht