создание таймера в милисекундах
вот процедура которую я для этого использую:
Public Sub MyTimer(ByVal tm As Long)
Dim gettime As Long
gettime = Timer
While StopTimer = False
If Timer - gettime < tm Then
DoEvents
Else
tmps = tmps + 1
gettime = Timer
End If
Wend
End Sub
чтоб все работало мне фактически нужно поменять Timer на ф-цию которая возвращает время в милесекундах
спасибо.
[COLOR=blue]In Microsoft Windows the Timer function returns fractional portions of a second. On the Macintosh, timer resolution is one second.[/COLOR]
Так что, если только у вас не Macintosh, Timer возвращает время с десятыми и сотыми долями секунды. Например, у меня при вызове Timer в цикле получилась последовательность значений:
57107,09
57107,09
57107,09
57107,11
57107,11
57107,11
57107,11
57107,11
57107,11
57107,11
57107,11
57107,11
57107,11
57107,13
57107,13
Если вам нужна бóльшая точность, можете использовать mmsystem.dll, но только на бейсике это хорошая пытка.
------------------------------
Private Declare Function timeGetTime _
Lib "winmm.dll" () As Long
Private lngStartTime As Long
Public Function StartTimer()
lngStartTime = timeGetTime()
End Function
Public Function StopTimer() As Long
StopTimer = timeGetTime() - lngStartTime
End Function
-------------------------
'задержка на 10 мс
Set FormTimer = New Watch
FormTimer.StartTimer
Do
Stop_Time = FormTimer.StopTimer
Loop Until Stop_Time > 10