CheatEnabled Skrevet 30. september 2007 Del Skrevet 30. september 2007 (endret) 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 30. september 2007 av CheatEnabled Lenke til kommentar
GeirGrusom Skrevet 30. september 2007 Del Skrevet 30. september 2007 (endret) 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 30. september 2007 av GeirGrusom Lenke til kommentar
CheatEnabled Skrevet 30. september 2007 Forfatter Del Skrevet 30. september 2007 (endret) Den elsen veit jeg egentlig ikke hvorfor er der, bare prøvde og så om det var erroren. Maks value på en Timer er 65535, så det går ikke. Hvis det hadde gått, hadde jeg ikke postet her for å si det sånn. Endret 30. september 2007 av CheatEnabled Lenke til kommentar
aadnk Skrevet 30. september 2007 Del Skrevet 30. september 2007 (endret) Bruk en teller: ' Teller antall minutter siden siste eksekveringPrivate 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 30. september 2007 av aadnk Lenke til kommentar
CheatEnabled Skrevet 1. oktober 2007 Forfatter Del Skrevet 1. oktober 2007 (endret) 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 1. oktober 2007 av CheatEnabled Lenke til kommentar
GeirGrusom Skrevet 1. oktober 2007 Del Skrevet 1. oktober 2007 (endret) Hvorfor skal du skrive end property? Det skal du bare bruke dersom du skal lage en property, ikke en variabel. Endret 1. oktober 2007 av GeirGrusom Lenke til kommentar
CheatEnabled Skrevet 1. oktober 2007 Forfatter Del Skrevet 1. oktober 2007 Jeg skal lage en variabel. Men problemet er at aadnk sa jeg skulle skrive Private og så variabelen utenfor timeren. Det funker ikke. Hva skal jeg gjøre istedet? Lenke til kommentar
GeirGrusom Skrevet 1. oktober 2007 Del Skrevet 1. oktober 2007 Bytt ut Private med Dim, eller eventuelt les om variabel deklerasjon. Lenke til kommentar
aadnk Skrevet 1. oktober 2007 Del Skrevet 1. oktober 2007 Husk også at variabeldeklarasjonen må ligge OVER alle prosedyredeklarasjoner, samt under evt. innstillinger (Option Explicit, ect.). Lenke til kommentar
Fatal-RetoX Skrevet 2. oktober 2007 Del Skrevet 2. oktober 2007 (endret) hvet ikke om dette går men Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) coder (skriv dette i toppen av koden) sleep 300000 håper det hvar til hjelp Endret 2. oktober 2007 av Fatal-RetoX Lenke til kommentar
aadnk Skrevet 2. oktober 2007 Del Skrevet 2. oktober 2007 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-egenskapenPrivate 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå