Elikkäs tälläinen probleema...
Mitenkäs saisin Timerin laskemaan kymmenestä nollaan.
******
Dim time As Integer Private Sub Start() time = 10 tmrAjastin.Interval = 1000 tmrAjastin.Enabled = True End Sub Private Sub tmrAjastin_Timer() time = time - 1 lblAika.Caption = time If time = 0 Then tmrAjastin.Enabled = False End Sub
*****
Tällä koodilla lähtee rullaamaan -0:sta ylöspäin ja rullaa vielä -1000 jälkeenkin
Dim Aika As Integer
Private Sub Form_Load()
Aika = 10
Timer1.Interval = 1000 'laitetaan että menee sekunti
End Sub
Private Sub Timer1_Timer()
If Aika > 0 Then 'jos aikaa on enemmän kuin 0
Aika = Aika - 1
Else 'muussa tapauksessa
MsgBox "Aika loppui", vbCritical
End
End If
Form1.Caption = Aika
End SubKoita tota soveltaa, jos tosta olisi vaikkapa vähän hyötyä.
No ei kai tuossa mitään sen kummempaa kuin että disabloit timerin sitten, kun se on kiertänyt kymmenen kertaa?
Private Sub Timer1_Timer() Static Kerta As Integer Kerta = Kerta + 1 If Kerta = 10 Then Timer1.Enabled = False End Sub
kannattaa muistaa tälläsessä tapauksessa että koodi suoritetaan ylhäältä alas eli siinä pitää miettiä koodin järjestystä =D
Jep jep. Sain toimimaan
Dim time As Integer Private Sub Start() time = 10 tmrAjastin.Interval = 1000 tmrAjastin.Enabled = True End Sub Private Sub tmrAjastin_Timer() time = time - 1 lblAika.Caption = time If time = 0 Then tmrAjastin.Enabled = False Static Kerta As Integer Kerta = Kerta + 1 If Kerta = 10 Then tmrAjastin.Enabled = False End Sub
Mutta mites saan ajan alkamaan alusta kun painan esim. Seuraava nappia.
No sitten taas:
tmrAjastin.Enabled = True
Ja nollaat aikamuuttujat.
Aihe on jo aika vanha, joten et voi enää vastata siihen.