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 Sub
Koita 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.