Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Timer/milli sekka

efteri [01.06.2004 17:45:37]

#

Elikkä monta milli sekunttia on tunissa
tai mitä pistä tohon intervaaliin että se näyttäs että tuntimenee ?

<vb>

Blaze [01.06.2004 17:56:29]

#

qwauk kirjoitti:

Elikkä monta milli sekunttia on tunissa

1000 * 60 * 60 = 3600000, eli enemmän, kuin Intervalin tietotyypin (Integer) maksimi (65535).

remontti-reiska [01.06.2004 18:07:28]

#

Eli sinun pitää esim. katsoa tälläisellä koodilla kun se tunti on mennyt:

Dim muuttuja As Long
muuttuja = muuttuja + 1
if muuttuja = 3600000 then
msgbox "Tunti on mennyt"
End if

Vai oliko se nyt Long...

setä [01.06.2004 18:45:27]

#

Jos yllä olevaa koodia toistetaan millisekunnin välein. Helpommin käy Timer-funktiolla, jota tutkit ajastimen ohjauksella sekunnin tai sopivin aikavälein. Alussa asetat:

Start = Timer
Ja sitten testailet:
 If Timer > Start + 3600 Then 'tunti on kulunut

JoreSoft [01.06.2004 19:20:50]

#

Kuluneen ajan laskeminen.
Tarvitaan Timer1, Label1 - 5

Option Explicit
Dim MilliSekunnit As Long
Dim Sekunnit As Integer
Dim Minuutit As Integer
Dim Tunnit As Integer
Dim OldSek As Integer
Private Sub Form_Load()
    Timer1.Interval = 1
    OldSek = Val(Right(Time, 2))
    Timer1.Enabled = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
    End
End Sub
Private Sub Timer1_Timer()
    MilliSekunnit = MilliSekunnit + 1
    Label1.Caption = Str(MilliSekunnit) & " Millisekunnit"
    DoEvents 'Estää välkkymästä
    If Val(Right(Time, 2)) = "00" And OldSek > 0 Then OldSek = -1
    If Val(Right(Time, 2)) > OldSek Then
        OldSek = Val(Right(Time, 2))
        Sekunnit = Sekunnit + 1
        MilliSekunnit = 0
        If Sekunnit = 60 Then
            Sekunnit = 0
            Minuutit = Minuutit + 1
            If Minuutit = 60 Then
                Minuutit = 0
                Tunnit = Tunnit + 1
MsgBox "Tunti on taas mennyt"
            End If
        End If
    End If
    Label4.Caption = Str(Tunnit) & " Tuntia mennyt"
    Label3.Caption = Str(Minuutit) & " Minuuttia mennyt"
    Label2.Caption = Str(Sekunnit) & " Sekuntia mennyt"
    Label5.Caption = "Aika on " & Str(Time)
End Sub

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta