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

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

пауза [D7, WinXP]


redlord ©   (2004-09-10 18:51:00) 

привет всем
как зделать паузу в выполнении проги и можноли ее потом отменить до истечения установленного времени


KADAN   (2004-09-10 23:05:00) [1]

procedure TForm1.btnSetpauseClick(Sender: TObject);
begin // код паузы
 timer1.Enabled:=true;
 caption:='paused';
 while not cancel do begin
   sleep(100);
   application.ProcessMessages; // это для реагирования на сообщения (чтоб окошко возилось и кнопки нажимались)
 end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin // эта процедурка вызывается таймером и кнопкой отмены паузы
 Timer1.Enabled:=false;
 cancel:=true;
 caption:='unpaused';
end;


хотя вполне может быть я перемудрил, переменная Cancel и не нужна вовсе (можно заменить на " nottimer1.enabled")... но это для наглядности.


Anatoly Podgoretsky   (2004-09-10 22:54:00) [2]

Разбивай паузу на микропаузы.


Vit@ly   (2004-09-10 22:21:00) [3]

Попробуй создать бесконечный цикл типа
Repeat
Application.ProcessMessa..
// а здесь обработка нажатия чего-либо
// или в другом месте
Until True;


МЯУ   (2004-09-10 22:13:00) [4]

есть какой-то SleepEx, ему можно передавать параметр bAlertable: LongBool. Наверно этот слип можно прервать откуда-нить. Но в хелпе про него ничё не написано (у миня по крайней мере)


Суслик   (2004-09-10 19:02:00) [5]


> sleep(1000) секндная пауза в работе процедуры...

и вы знаете как ее прервать?


Луарвик   (2004-09-10 18:58:00) [6]

sleep(1000) секндная пауза в работе процедуры...


Суслик   (2004-09-10 18:55:00) [7]

для начала надо определиться со следующими аспектами:
1) что есть прога? Т.е. в чем должна выражаться пауза? В том, что интерфейс перестал реагировать на пользователя?
2) Кто выполняет отмену? Другой поток? Пользователь? Другой процесс?

Определитесь с задачей.
Тогда можно дать конкретный ответ.


Наверх

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