Eh, dat is andere informatie die je even 'vergeten' bent in je TS te vermelden?
Enniehoe; je maakt een globale var binnen dat form, telt die af in je timer event (die dus 1 sec. bedraagt??) en als je var 0 is disable je de timer. Redelijk basic stuff als je het mij vraagt.
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| Option Explicit
Private Seconds As Integer
Private Sub Form_Load()
Seconds = 30
Timer1.Interval = 1000 'Iedere seconde een keer afgaan
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Seconds = Seconds - 1
Label1.Caption = "Nog " & Seconds & " seconden..."
If Seconds = 0 Then
Timer1.Enabled = False
DoSomething
End If
End Sub |
Overigens als je "exact" 30 seconden wil dan zou ik het sowieso anders doen, die timer garandeert namelijk niet precies te zijn...
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| Option Explicit
Private EventStart As Date
Private Sub Form_Load()
EventStart = DateAdd("s", 5, Now)
Timer1.Interval = 250 '4 keer per seconde afgaan zodat we het label met een 'preciesie' van 250msec bijwerken.
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Label1.Caption = "Nog " & DateDiff("s", Now, EventStart) & " seconden..."
If Now >= EventStart Then
Timer1.Enabled = False
DoSomething
End If
End Sub |
Mocht de timer nu, om welke reden dan ook, een keer of 5 niet op tijd firen dan krijg je je uiteindelijke event toch nog (ongeveer) op het gewenste moment, in plaats van dat je een skew krijgt.
So much voor het voorkauwen vandaag. De rest (if anything) mag je zelf uitvogelen. Ik kan dan ook niet meer zeggen dan neem eens een cursusje programmeren
[
Voor 25% gewijzigd door
RobIII op 14-09-2008 03:02
]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij