Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 04-06-2004, 08:10
VoRaZ
Avatar van VoRaZ
VoRaZ is offline
Waar kan ik een timer vandaan halen die een lagere interval ondersteunt dan 55ms? Ik heb HiTime van Mabry gevonden, maar daar moet je of voor betalen of je krijgt heel veel "popups" tijdens het gebruik van het programma...

Of mss dat iemand een truukje weet om de timer nauwkeuriger te laten werken?

[Edit] Nog een vraagje trouwens: hoe kan ik de kleur van een progressbar veranderen? (Ik maak een spel waarbij ik em als healthbalk wil gebruiken).
[/Edit]
__________________
"Waarheid zit anders vol paradoxen."

Laatst gewijzigd op 04-06-2004 om 08:15.
Met citaat reageren
Advertentie
Oud 04-06-2004, 18:32
iamcj
Avatar van iamcj
iamcj is offline
Zet dit in een klasse:
Code:
'---------------------------------------------------------------------------------------
' Module    : CTimer
' DateTime  : 3-2-2004 19:58
' Author    : Corjan van Uffelen
' Purpose   : Bepalen hoeveelheid tijd een procedure in beslag neemt
'---------------------------------------------------------------------------------------
' Tijdsfuncties worden dmv API uit de kernel gehaald

Option Compare Database
Option Explicit

Private Declare Function Frequency Lib "kernel32" _
              Alias "QueryPerformanceFrequency" (lpFrequency As Currency) As Long

Private Declare Function Counter Lib "kernel32" _
              Alias "QueryPerformanceCounter" (lpPerformanceCount As Currency) As Long

Dim cyFrequency As Currency
Dim cyStart As Currency
Dim cyStop As Currency

Private Sub Class_Initialize()
  Frequency cyFrequency
End Sub

Public Function StartTimer()
  Counter cyStart
End Function

Public Function StopTimer()
  Counter cyStop
End Function

Public Property Get Elapsed() As Double
  Elapsed = ((cyStop + 0.001) - cyStart) / (cyFrequency + 0.001)
End Property

Public Property Get Elap() As Double
  StopTimer
  Elap = Me.Elapsed
  StartTimer
End Property
En dit in een module:

Code:
Sub TestTimer()
  Dim i As Long
  Dim obTimer As New CTimer
  
  obTimer.StartTimer

    'Jouw process

  obTimer.StopTimer
  Debug.Print obTimer.Elapsed
End Sub
Hiermee kun je dus ook je eigen "Timer" bouwen door een tijdsinterval te controleren.
__________________
Wie bang is voor morgen, kan niet genieten van vandaag.
Met citaat reageren
Oud 06-06-2004, 13:18
Warsocket
Avatar van Warsocket
Warsocket is offline
Dit voorbeeld hierboven is toch wel heel veel code


dim LastTick as long
dim CurrentTick as long

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


^^^^^^^^ dat moet in een general Declarations (of in een module)

Do

CurrentTick = getTickCount
if LastTick + (hier de waarde van het aantal ms dat ie moet wachten) < CurrentTick then
LastTick = CurrentTick
hier wat ie om de tijdsinterval moet doen
End If

Loop



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

maar dit is het belangrijkste
GetTickCount is een teller die tel in ms hoe lang je pc opstaat

dus als je moet timen

gewoon als je begint de waarde opslaan in e en variable en als je stop ook

ff van elkaar aftrekken en je het de precieze tijd in ms
__________________
01110100011001010111011001100101011001010110110000100000011101000
11010010110101001100100001000000011111100111111001000000011101001010000
Met citaat reageren
Oud 06-06-2004, 15:43
VoRaZ
Avatar van VoRaZ
VoRaZ is offline
alleen zo berekent ie toch ook geen andere berekeningen meer? Of heb ik 't verkeerd begrepen
__________________
"Waarheid zit anders vol paradoxen."
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar


Alle tijden zijn GMT +1. Het is nu 09:33.