То ли все заняты то ли я глупые вопросы задаю. Откопал одну функцию может кому тоже пригодится: Добавлю еще что обычный API-Sleep мне не подошел, т.к. флэш-ролик все равно быстро проигрывается что даже не заметно. Если у кого буду дополнения буду рад. Совет 246. Как сделать временную задержкуВ версиях MS Basic для DOS имелся полезный оператор временной задержки SLEEP Seconds который приостанавливал выполнение программы на указанное число секунд. Такого оператора в VB не существует, но его нетрудно реализовать самостоятельно в виде следующей простой подпрограммы: Sub SleepVB (Seconds) ' ожидание Seconds секунд Dim Start Start = Timer ' текущее время в секундах Do While Timer < Start + Seconds ' обеспечивает параллельное выполнение других процессов DoEvents LoopEnd Sub Здесь нужно обратить внимание на использование функции DoEvents, которая позволяет производить другие процессы параллельно с выполнением текущего цикла. (DoEvents передает управление операционной системе, а сама функция возвращает число открытых форм в данном VB-приложении.) Старый оператор SLEEP осуществлял задержку выполнения на заданное число секунд или до нажатия любой клавиши клавиатуры. (В Basic/DOS с ним были свои проблемы, так как код нажатой клавиши оставался в буфере клавиатуры и автоматически использовался в последующих операциях ввода. Для предотвращения подобной ситуации после оператора SLEEP нужно было очищать буфер.) При желании такой режим можно реализовать и в нашей функции SleepVB. Один из ее вариантов, а также необходимость применения функции DoEvents мы покажем в следующем примере.
Ответить
|