kazah_ писал(а):попробуй использовать таймер. Клевая штука... помогает иногда. и парева никакого
Таймер - не всегда хорошее решение. Для повторяющихся действий (вывод на экран времени, например) таймер очень подходит. А для организации задержек в коде таймер - оч-ч-ень плохой способ.
Option Explicit
Private Declare Function MsgWaitForMultipleObjects Lib "user32" (ByVal nCount As Long, pHandles As Long, ByVal fWaitAll As Long, ByVal dwMilliseconds As Long, ByVal dwWakeMask As Long) As Long
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Const QS_ALLINPUT = (&H40& Or &H20& Or &H10& Or &H8& Or &H4& Or &H2& Or &H80& Or &H1&)
Public Function Pause(Interval As Long) As Long
Dim Tstart As Long, Tend As Long
Tstart = GetTickCount() + Interval
Do
Tend = Tstart - GetTickCount()
If Tend < 0 Then Exit Function
Call MsgWaitForMultipleObjects(0, 0, 0, Tend, QS_ALLINPUT)
DoEvents
Loop
End Function
Mirus писал(а): Пактически не ест процессорного времени и не замораживает форму как Sleep
Alex_new_2030 писал(а):А если так:
sub zad(n)
t=timer
while (t+n)>timer:wend
end sub
Call zad(1.3) 'Задержка на 1300 милисекунд
KDima писал(а):Хм... А DoEvents?
Alex_new_2030 писал(а):А если так:
sub zad(n)
t=timer
while (t+n)>timer:wend
end sub
Call zad(1.3) 'Задержка на 1300 милисекунд
...без пустых циклов...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 39