Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

приостановить выполнение программы [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]

Если она не подвисает, значит она не приостановлена.


Наверх

Титульная страница Поиск, карта сайта Написать письмо