Tipp 0020 Analoge Uhr -1-
Autor/Einsender:
Datum:
  Klaus Brädler
05.01.2001
Entwicklungsumgebung:   VB 5
Die Möglichkeiten die Zeit auszugeben sind in Visual Basic recht gut gelöst. Mit diesem Beispiel kann eine Analog-Uhr dargestellt werden. Dafür wird die Line-Methode verwendet, die mit jedem Objekt dargestellt werden kann, das diese Methoden unterstützt. Hierbei wird zuerst das Zifferblatt, und dann die Zeiger gezeichnet.
Code im Codebereich des Moduls
 
Dim Pi As Double

Function GetPi()
  Pi = 4 * Atn(1)
End Function

Sub ShowTime(T#, Ziel As Object, MittX, MittY, R)
  MerkMode = Ziel.DrawMode
  Ziel.DrawMode = 6
  StundenZeiger T#, Ziel, MittX, MittY, R
  MinutenZeiger T#, Ziel, MittX, MittY, R
  SekundenZeiger T#, Ziel, MittX, MittY, R
  Ziel.DrawMode = MerkMode
End Sub

Sub Zifferblatt(Ziel As Object, MittX, MittY, R, Farbe&)
  Ziel.FillColor = Farbe&
  Ziel.FillStyle = 0
  Ziel.Line (MittX - R, MittY - R)-Step(2 * R, 2 * R), _
       Ziel.BackColor, BF
  Ziel.Circle (MittX, MittY), R
End Sub

Sub StundenZeiger(ByVal T#, Ziel As Object, MittX, MittY, R)
  Ziel.DrawWidth = 3
  Alpha = T# * (4 * Pi)
  Ziel.Line (MittX, MittY)-Step(Sin(Alpha) * R * 0.75, _
       -Cos(Alpha) * R * 0.75)
End Sub

Sub MinutenZeiger(ByVal T#, Ziel As Object, MittX, MittY, R)
  Ziel.DrawWidth = 2
  T# = T# * 24
  Alpha = T# * (2 * Pi)
  Ziel.Line (MittX, MittY)-Step(Sin(Alpha) * R * 0.85, _
       -Cos(Alpha) * R * 0.85)
End Sub

Sub SekundenZeiger(ByVal T#, Ziel As Object, MittX, MittY, R)
  Ziel.DrawWidth = 1
  T# = T# * 24 * 60
  Alpha = T# * (2 * Pi)
  Ziel.Line (MittX, MittY)-Step(Sin(Alpha) * R * 0.95, _
       -Cos(Alpha) * R * 0.95)
End Sub
 
Code im Codebereich der Form
 
Dim OldTime As Double, Start As Boolean

Private Sub Form_Load()
  Zifferblatt Picture1, 100, Picture1.ScaleHeight / 2, 70, _
        QBColor(14)
  Pi = GetPi()
  Timer1.Interval = 1
End Sub

Private Sub Timer1_Timer()
  If Start Then
     T# = OldTime
     ShowTime (T#), Picture1, 100, Picture1.ScaleHeight / 2, 70
     Timer1.Interval = 1000
  End If

  T# = Time
  ShowTime (T#), Picture1, 100, Picture1.ScaleHeight / 2, 70
  Start = True
  OldTime = T#
End Sub
 
Weitere Links zum Thema
Analoge Uhr - 2 -
Countdown
Exakte Zeitmessung

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (2,3 kB) Downloads bisher: [ 8424 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 28. August 2011