Vba sleep
Автор Дмитрий Михайлов задал вопрос в разделе Другие языки и технологии
Функция паузы в Visual Basic. Как сделать паузу в цикле не прибегая к помощи таймера, Sleep и DoEvent? и получил лучший ответ
Ответ от Олег Евтушевский[гуру]
В добавок к комментарию:
Public Sub Wait(seconds)
‘ Включение таймера
Timer1.Enabled = True
‘ Установка интервала
Me.Timer1.Interval = 1000 * seconds
While Me.Timer1.Interval > 0
DoEvents
Wend
’ Выключение таймера
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
Timer1.Interval = 0
End Sub
Реализация:
Private Sub Command1_Click()
Label1.Caption = Now
Wait (5)
Label2.Caption = Now
End Sub
З. Ы. Можешь не умножать на 1000. Тогда получишь время задержки в миллисекундах.
Главное окно "замораживаться" не будет.
Вызов процедуры Wait можешь смело вставлять в цикл. ))
Удачи!
а чем плох Sleep и DoEvent?
Шутка конечно, но cin.get(); 😀
Без DoEvents вряд ли.... Система должна опрашивать программу Попробуй потоки, но там их тоже приостанавливать прийдется слипом ---------- Public b As Boolean Private Sub Command1_Click() Dim i As Integer i = 1 Do While