| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Приостановка цикла в ожидании события |
| Автор: Dufe 29.6.2006, 20:47 |
| Есть цикл. При некоем условии необходимо приостановить его и ждать пока произойдет событие (тыкну мышкой по определенному месту). После продолжаем цикл. Искал на форуме- не нашел. Помогите, плз. |
| Автор: Guedda 29.6.2006, 20:59 | ||
|
| Автор: Sunvas 30.6.2006, 01:23 |
| Лучше вынести все в отдельный поток, а там действовать как Guedda прописал. |
| Автор: Dufe 30.6.2006, 11:41 |
| to Guedda такой цикл пробовал. Реально жрет ресурсы. Даже окно не закрыть. to Sunvas пробовал создавать в цикле поток, но он стартует параллельно=> цикл продолжается. Как реализовать? |
| Автор: Демо 30.6.2006, 14:32 | ||
Неправда. Свой код приводи. |
| Автор: Dufe 30.6.2006, 14:49 |
| Это на работе. Машина 133пень. И это правда. Код точно такой же. Работает. Но в режиме (цикла) ожидания окно не закрыть. Вот я и пытался с потоком сделать, но ничего не получилось, поэтому и обратился за помощью. |
| Автор: Romikgy 30.6.2006, 15:53 |
| Sleep больше поставь |
| Автор: Dufe 30.6.2006, 23:17 |
| Демо, |
| Автор: Sunvas 1.7.2006, 00:30 | ||
Ты вынеси когд, что тебе дал Guedda в поток и приложение глючить не будет. Или используй таймер. |
| Автор: Yanis 1.7.2006, 01:15 |
| Dufe Напиши какая задача стоит перед тобой и возможно мы поймём, что ты хочешь от нас. Может быть тут и без цикла можно обойтись... |
| Автор: Guedda 1.7.2006, 11:18 | ||||
Обыкновенно. В форме, в которой будешь нажимать на что-то для установки паузы, в разделе public прописываешь Переменную CanContinue; А из потока проверяешь так:
Можно ещё синхронизировать, но, я думаю, тебе рано ещё до этого... |
| Автор: Akella 4.7.2006, 10:10 |
| sleep(500), как минимум!!! |
| Автор: Dufe 4.7.2006, 12:40 | ||
Guedda, можешь привести код. Не получается. В потоке делаю
А в цикле процедуры вызываю этот поток Create. Но цикл не приостанавливается, не ждет нажатия кнопки. Может как-то TEvent использовать? |
| Автор: Guedda 4.7.2006, 14:15 | ||||
Код потока:
Код основной программы:
У меня всё работает. |
| Автор: Dufe 5.7.2006, 11:27 |
| Так всё работает. Спасибо. Только, когда synchronize ставишь на процедуру, то все стоит. |