![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пауза на программу? [D7, WinXP]
Артем К. © (2004-09-17 04:36:00)Здравствуйте, уважаемые мастера!
Подскажите пожалуйста, как установить "паузу" на программу, т.е. чтобы определенное количество времени, программа, как-бы, подвисала.
Заранее спасибо!
46_55_41_44 (2004-09-29 13:25:00) [1]procedure Delay(MSecs: Longint);
var
FirstTickCount, Now: Longint;
begin
FirstTickCount := GetTickCount;
repeat
Application.ProcessMessages;
{ allowing access to other controls, etc. }
Now := GetTickCount;
until (Now - FirstTickCount >= MSecs) or (Now < FirstTickCount);
end;
Взято из RxLib - VCLutils.pas
KSergey (2004-09-29 07:45:00) [2]К стати, тогда лучше вот это
> Begin
> Sleep(10);
> Application.ProcessMessages;
> End;
заменить на
Begin
WaitMessage;
Application.ProcessMessages;
End;
KSergey (2004-09-29 07:44:00) [3]Прошу прощения
Только сейчас разглядел, что Flag объявлен снаружи
KSergey (2004-09-29 07:43:00) [4]> [8] Fedia (29.09.04 06:29)
> >Навсегда...
> Я бы так не утверждал. Советую для начала попробовать.
А что пробовать-то? Укажите мне, пожалуйста, при каких условиях сей цикл прервется в данном случае???
Fedia (2004-09-29 06:41:00) [5]Или это был тонкий юмор :)
Fedia (2004-09-29 06:29:00) [6]KSergey © (29.09.04 06:14) [7]
>Навсегда...
Я бы так не утверждал. Советую для начала попробовать.
KSergey (2004-09-29 06:14:00) [7]> Suspend(True); - остановит программу
Навсегда...
Fedia (2004-09-28 23:04:00) [8]Если я правильно понял вопрос.
Ответ от Defunct © (18.09.04 21:25) [1] Var Flag: Boolean;
Procedure Suspend(AFlag:Boolean);
Begin
Flag := AFlag;
While Flag Do
Begin
Sleep(10);
Application.ProcessMessages;
End;
End;
Suspend(True); - остановит программу
Suspend(False); - продолжит.
С условием, что приложение не использует доп. потоков.
Apl (2004-09-28 14:08:00) [9]Создатй поток и меняй ему приоритет и получишь желаемые тормоза
Amoeba (2004-09-28 13:40:00) [10]
> SiDChik © (28.09.04 13:17) [3]
А сам хоть понял, что спросил?
SiDChik (2004-09-28 13:17:00) [11]а теперь скажите как поставить паузу чтоб только ход выполнения тормозился а не программа..........
Ответе на мыло
Артем К. (2004-09-17 04:52:00) [12]>>Fedia
Спасибо!
Fedia (2004-09-17 04:39:00) [13]Функция sleep(1000{на одну секунду});