Elikkä monta milli sekunttia on tunissa
tai mitä pistä tohon intervaaliin että se näyttäs että tuntimenee ?
<vb>
qwauk kirjoitti:
Elikkä monta milli sekunttia on tunissa
1000 * 60 * 60 = 3600000, eli enemmän, kuin Intervalin tietotyypin (Integer) maksimi (65535).
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...
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
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 SubAihe on jo aika vanha, joten et voi enää vastata siihen.