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 Sub
Aihe on jo aika vanha, joten et voi enää vastata siihen.