Hallo Leute!
Ich habe mir mit Visual Basic 6 einen Art kleine Stoppuhr gebastelt. Man gibt eine Startzeit ein und sie zählt dann auf null runter, um danach ein ereignis zu starten.
Das blöde daran ist nur, dass sie nur Sekunden zählt. Gibt man also als Startzeit 2 min 10 s ein, dann zählt die Stoppuhr von 130 s an rückwärts. Nun wäre es mir aber lieber, wenn sie im Format 02:10 rückwärts zählen würde. Der mir dafür bekannte Befehal Format(CStr(nSek), "mm:ss") funktioniert da leider aber nicht. Verwendet man ihn, zeigt die Stoppuhr eine völlig falsche Startzeit an und zählt auch nicht mit.
Hier mal ein Auszug aus meinem Quelltext:
Private Sub Command1_Click()
Dim Startzeit As Integer
Timer1.Enabled = True
If Text1.Text = "" And Text2.Text = "" Then
MsgBox ("Keine Startzeit eingegeben!")
GoTo Ende
Else
If Text1.Text = "" Then Text1.Text = 0
If Text2.Text = "" Then Text2.Text = 0
Startzeit = (Text1.Text * 60) + Text2.Text
nSek = Startzeit ' Timer initialisieren
Timer1.Interval = 1000 ' entspricht einer Sekunde
Label1.Caption = CStr(nSek) & " s" ' Countdown
End If
Ende:
End Sub
Private Sub Timer1_Timer()
nSek = nSek - 1 ' und wieder eine Sekunde vorbei
Label1.Caption = CStr(nSek) & " s"
If nSek Timer1.Enabled = False
[...........]
Else
End If
End Sub
Weiterhin such ich noch eine Möglichkeit, wie man am Ende des Timers evtl. einen roten Kreis (Shape) blinken lassen könnte, damit der Nutzer schneller sieht, dass die Zeit um ist.
Ich hoffe, ihr könnt mir mit guten Ideen helfen.
Grüße,
Mic2004.
Programmieren - alles kontrollieren 4.938 Themen, 20.667 Beiträge
Hallo "mr.escape" und "Borlander"!
Eure beiden Code-Zeilen funktionieren aber beide nicht so, wie ich es haben möchte. Damit kann man den Kreis (Shape1) nur einmal ein oder ausschalen. Legt man den Code also auf einen CommandButton, muss man den immer anklicken, damit der Kreis "an" und wieder "aus" geht.
Private Sub Command5_Click()
Shape1.Visible = Not Shape1.Visible
End Sub
Das nützt mir nichts. Ich möchte, dass der Kreis nach Ablauf der Zeit automatisch blinkt. Ich könnte mir evtl. vorstellen, dass man das über einen zweiten Timer machen müsste. Vielleicht über eine Art Loop, dass der Kreis immer "an" ist, wenn der Timer eine gerade Zahl zählt und immer "aus" ist, wenn der Timer eine ungerade Zahl zählt. Die Sache müsste nur eben von allein immer weiter laufen (und das möglichst ohne den Computer zu blockieren).
Grüße,
Mic2004.