Degeim Skrevet 16. april 2005 Del Skrevet 16. april 2005 (endret) Jeg har et program med flere former. I den ene formen er det en klokke, som bruker "sleep 1000" for å lage et-sekunds-intevallene mellom skiftet på sekundviseren. do while nestsek<30 nestsek = nestsek+1 doevents sleep 1000 loop Problemet med dette er at da fryser resten av formene også, så brukeren opplever det som om prorgammet hakker. Hvilken kode bruker jeg for å få et ett-sekunds-intevall uten å fryse hele greia? Endret 16. april 2005 av Degeim Lenke til kommentar
aadnk Skrevet 16. april 2005 Del Skrevet 16. april 2005 Du kan benytte følgende kode istedenfor: Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Public Sub Wait(ByVal lngMilliseconds As Double) Dim dblStartTime As Double ' Lagre oppstartstid av prosedyren, slik at vi ikke venter mer en spesifisert dblStartTime = Timer ' Fortsett løkken inntil vi har ventet ferdig Do Until Timer - (lngMilliseconds / 1000) >= dblStartTime ' Motta meldinger fra Windows og andre programmer, derav muliggjør kjøring av andre hendelser DoEvents ' Vent 10 millisekunder Sleep 10 Loop End Sub Koden kjører DoEvents og Sleep etter hverandre inntil det spesifiserte tidsintervallet har forløpt. Du kaller Wait-funksjonen akkurat som Sleep: Wait 1000 ' Venter i tusen millisekunder Lenke til kommentar
Degeim Skrevet 16. april 2005 Forfatter Del Skrevet 16. april 2005 Takk, men jeg fant på noe litt enklere selv (ligner litt på ditt aadnk): Do Until Int(Timer - startt) > 0 DoEvents Loop Lenke til kommentar
aadnk Skrevet 16. april 2005 Del Skrevet 16. april 2005 Det stemmer. Du behøver egentlig ikke benytte Sleep i løkken, hvilket i bunn og grunn var den eneste forskjellen mellom mitt forslag og hva du kom frem til. Vær dog oppmerksom på at du helst ikke bør vente i lange stunder med løsningen din - den opptar nemlig hele 100% av CPU'en. Kanskje kunne du også anvendt en timer? Lenke til kommentar
Degeim Skrevet 17. april 2005 Forfatter Del Skrevet 17. april 2005 Er det ikke en timer jeg bruker, da? Lenke til kommentar
aadnk Skrevet 17. april 2005 Del Skrevet 17. april 2005 Vel, jeg tenker på timer-kontrollen. Lenke til kommentar
Degeim Skrevet 17. april 2005 Forfatter Del Skrevet 17. april 2005 Kan du poste et eksempel? Alltid lysten på lære Lenke til kommentar
Jonas Skrevet 17. april 2005 Del Skrevet 17. april 2005 Degeim, timer-kontrollen har du da brukt i M&M. Det kan du! Lenke til kommentar
Degeim Skrevet 17. april 2005 Forfatter Del Skrevet 17. april 2005 Ja, jeg tror jeg kan det, men jeg trodde at timer-kontrollen var den jeg anvendte i min sekund-interval-kode... Når jeg sier at startt=Timer, og senere spør når timer-startt er større enn null 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å