/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Timer (i baggrunden)
Fra : Lasse Madsen


Dato : 18-06-02 13:06

Hej ...

Hvis jeg nu vil lave en timer der fra start tager feks 1 sek til den stopper
og computeren ikke skal være "optaget" med denne timing hvordan gør man så ?

hvis det havde været noget mikroprocessor halløj ville jeg kunne have brugt
en intern timer ... lade programmet arbejde videre og så når den lavede et
"overflow" ville timeren automatisk kalde mig tilbage til et bestemt sted i
koden hvor jeg skrev hvad der skulle ske når den var færdig med timingen ...

hvordan kan man gøre det ?

m.v.h
l. madsen



 
 
Michael N. Petersen ~ (20-06-2002)
Kommentar
Fra : Michael N. Petersen ~


Dato : 20-06-02 11:43

Placer denne kode i din BAS-fil:

Option Explicit

Private Const Interval = 10000 'Millisekunder, altså 10 sekunder her.

Private lngTimerID As Long
Private m_Dummy As Long

Private Declare Function SetTimer Lib "user32" _
(ByVal hWnd As Long, _
ByVal nIDEvent As Long, _
ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) As Long

Private Declare Function KillTimer Lib "user32" _
(ByVal hWnd As Long, _
ByVal nIDEvent As Long) As Long

Public Sub StoptTimer()
m_Dummy = KillTimer(m_hWnd, lngTimerID)
End Sub

Public Sub StartTimer()
lngTimerID = SetTimer(m_hWnd, 0, Interval, AddressOf TimerProc)
End Sub

Sub TimerProc(ByVal hWnd As Long, _
ByVal uMsg As Long, _
ByVal idEvent As Long, _
ByVal dwTime As Long)

Stoptimer
Msgbox "TimerProc er blevet kaldt!"
StartTimer
End Sub

I din form skal du så kalde StartTimer.

Det der sker er at du vha. Windows API starter en tråd/proces som kalder
TimerProc med det angivne interval. Windows API'en skal derfor have
adressen på den sub den skal kalde, derfra AddressOf.

TimerProc skal have de angivne parametre, ellers virker det ikke.
Det er yderst vigtigt at du husker to ting:

Stop timeren når programmet forlades.
Brug aldrig Stop knappen hvis du debugger kode. Det kan medføre
at Visual Basic afsluttes uden varsel. Det samme gælder hvis du
modtager en advarsel om at projektet bliver reset.

Michael N. Petersen Krogh
VB udvikler



"Lasse Madsen" <lm@vxd.dk> skrev i en meddelelse
news:3d0f2252$0$237$edfadb0f@dspool01.news.tele.dk...
> Hej ...
>
> Hvis jeg nu vil lave en timer der fra start tager feks 1 sek til den
stopper
> og computeren ikke skal være "optaget" med denne timing hvordan gør man så
?
>
> hvis det havde været noget mikroprocessor halløj ville jeg kunne have
brugt
> en intern timer ... lade programmet arbejde videre og så når den lavede et
> "overflow" ville timeren automatisk kalde mig tilbage til et bestemt sted
i
> koden hvor jeg skrev hvad der skulle ske når den var færdig med timingen
....
>
> hvordan kan man gøre det ?
>
> m.v.h
> l. madsen
>
>



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste