C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Нужна простая задержка..., Фанкция Sleep() неподходит...
Umka
  Отправлено: 18.11.2003, 23:24


Дежурный стрелочник

Группа: Участник
Сообщений: 32



В программу надо вставить задержку с точностью до 1 секунды, причём все контролы должны работать. Если я использую функцию Sleep, то прога сворвчивается и не отвечает до прошествия заданоого времени.
Подскажите, что делать.
Fred
Отправлено: 19.11.2003, 03:16


Ученик-кочегар

Группа: Участник
Сообщений: 19



CODE

void Sleep2( DWORD msec )
{
DWORD tick_start = GetTickCount();

     while( GetTickCount()-tick_start < msec ) Application->ProcessMessages();
}

Guest
Отправлено: 19.11.2003, 20:22


Не зарегистрирован







А ты пиши

Application->ProcessMessages(); // !!!
Sleep(1000);
Umka
  Отправлено: 20.11.2003, 16:31


Дежурный стрелочник

Группа: Участник
Сообщений: 32



Guest
Я так пробовал — нифига.
Fred
Спасибо, попробую. smile.gif smile.gif smile.gif
Дмитрий
Отправлено: 26.11.2003, 21:06


Не зарегистрирован







Я делал так:

void __fastcall Delay(int N)
{
Application->ProcessMessages();
Sleep(N);
Application->ProcessMessages();
}

N — число милисекунд.
И все работало.

Пример обращения: Delay(1000);

А вообще в билдере где-то уже есть ф-ия Delay, только не помню в каком заголовочном файле.
butch
Отправлено: 26.11.2003, 22:22


Не зарегистрирован







a TTimer не подходит?

Вернуться в Вопросы программирования в C++Builder