Gå til innhold

[VB6]Gjøre noe hvert 5. minutt


Anbefalte innlegg

Jeg har 5 radio buttons og 2 timere. Timerne er satt til: Timer1 = 1000 millisekunder, Timer2 500 millisekunder. Jeg har også en label som jeg bruker til å lagre tiden. Labelen viser 301 til å begynne med og heter counter.

 

Private Sub Timer1_Timer()
Dim teller As Integer
teller = counter.Caption
counter.Caption = teller - 1
End Sub

Private Sub Timer2_Timer()
If counter.Caption = 0 Then counter.Caption = 301 Else: counter.Caption = counter.Caption
End Sub

Private Sub bStart_Click()

Dim antall As Integer
If Form2.Option1.Value = True Then
antall = 1
End If
If Form2.Option2.Value = True Then
antall = 2
End If
If Form2.Option3.Value = True Then
antall = 3
End If
If Form2.Option4.Value = True Then
antall = 4
End If
If Form2.Option5.Value = True Then
antall = 5
End If

If counter.Caption = 301 Then
Timer1.Enabled = True
Select Case antall
Case 1
(blablabla osv.)
Case 2
(blablabla osv.)
Case 3
(blablabla osv.)
Case 4
(blablabla osv.)
Case 5
(blablabla osv.)
End Case
End If
End Sub

 

Problemet er at programmet bare kjører gjennom koden 1 gang. Jeg skal få det til å automatisere seg så det går hvert 5. minutt.

 

PS: Hvis noen lurte, er dette et program som sjekker om det er kommet nye tråder i et forum.

Endret av CheatEnabled
Lenke til kommentar
Videoannonse
Annonse
counter.Caption = counter.Caption

høh?

 

koden som skal kjøres hvert femte minutt, må gjøre det i en timer av et eller annet slag, jeg vet ikke hva som er maks verdi på timer kontrollen jeg....

 

edit: jeg tror ikke et sekund at dette programmer gjør noe som helst i skrivende stund ;)

Endret av GeirGrusom
Lenke til kommentar

Bruk en teller:

' Teller antall minutter siden siste eksekvering

Private MinutesElapsed As Integer

 

' Sett denne Timers intervall-egenskap til 60000 ms

Private Sub tmrMinute_Timer()

   

    ' Et minutt har nå forløpt

    MinutesElapsed = MinutesElapsed + 1

   

    ' Se om vi har nådd fem minutter-grensen

    If MinutesElapsed >= 5 Then

        ' Din kode her

       

        ' Tilbakestill teller

        MinutesElapsed = 0

    End If

   

End Sub

Endret av aadnk
Lenke til kommentar

Jeg får ikke satt opp MinutesElapsed som en private utenfor eller innenfor noen annen sub. Trenger jeg End Property etterpå?

 

EDIT: End Property fungerer ikke, sikker på at jeg ikke bare skal bruke Dim MinutesElapsed As Integer?

Endret av CheatEnabled
Lenke til kommentar

Skal en benytte Sleep, bør en, for å unngå at programmet låser seg, så avgjort anvende en løkke og kalle DoEvents med jevne intervaller:

' Eventuelt kan en også benytte Timer-egenskapen

Private Declare Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long)

Private Declare Function GetTickCount Lib "kernel32" () As Long

 

Public Sub Wait(ByVal Duration As Long, Optional Interval As Long = 2)

 

    Dim ToWait As Long

   

    ToWait = GetTickCount + Duration

 

    ' Fortsett inntil vi har nådd ønsket tid

    Do Until GetTickCount >= ToWait

        DoEvents

        Sleep Min(Interval, Abs(ToWait - GetTickCount))

    Loop

 

End Sub

 

' Forenkler uttrykket ovenfor

Private Function Min(A, B)

    Min = IIf(A < B, A, B)

End Function

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...