![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
приостановить выполнение программы [D7, XP]
Михаил С © (2007-11-22 19:54:00)как приостановить выполнение программы так чтобы она не "подвисала" так как при использовании
sleep(t);?
Anatoly Podgoretsky (2007-11-22 23:00:00) [1]> Amoeba (22.11.2007 22:39:07) [7]
Греем процессор. Да ему и не надо выдерживать паузу, он же хочет приостановить выполнение.
Amoeba (2007-11-22 22:39:00) [2]Все значительно проще.
Из библиотеки RX (VCLUtils.pas):
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;
Kolan (2007-11-22 20:10:00) [3]> условия нет просто на определенном этапе немного подаждать
> и продолжить
Используй таймер.
@!!ex (2007-11-22 20:06:00) [4]
while not finished do begin
//
Application.ProcessMessages;
//
end;
...
OnButton:
finished:=true;
Михаил С (2007-11-22 20:04:00) [5]условия нет просто на определенном этапе немного подаждать и продолжить...
Михаил С (2007-11-22 20:03:00) [6]ну проста пауза в выполнение цикла во время которой можно при желании выйти из программы (закрыть окно).....
@!!ex (2007-11-22 20:02:00) [7]while <условие приостановки> do
Sleep(100);
Anatoly Podgoretsky (2007-11-22 19:55:00) [8]> Михаил С (22.11.2007 19:54:00) [0]
Если она не подвисает, значит она не приостановлена.