![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как прервать цикл? [D6, Win95/98, Win2k]
asat © (2002-03-27 20:57:00)Здравствуйте все!
Подкажите, как прервать, например нажатием кнопки,
цикл типа:
repeat
...
Sleep(20000);
until ...
dymka (2002-03-28 07:34:00) [1]сменить логику цикла... заменить Sleep на связку GetTickCount и Application.ProcessMessages... Если выполняешь цикл в основном потоке
RageSV (2002-03-28 00:20:00) [2]
> Anatoly Podgoretsky
Ну раз автор молчит, то может он и сам не знает что хочет. :-)
Во всяком случае, один из вариантов ему подсказали.
Anatoly Podgoretsky (2002-03-28 00:12:00) [3]RageSV (27.03.02 23:29)
Это уже проблема алгоритма, в его алгоритме вероятность равна 10 сек
RageSV (2002-03-27 23:29:00) [4]
> Цикл прерывается оператором Break
Верно. Абшибся.
Но вот
> а вот в самом цикле надо проверять была ли нажата клавиша
этого недостаточно (в Win32). Нужно еще сделать так, чтобы на нажатие этой клавиши была достаточно быстрая реакция программы.
Правильно ли я понял автора ?
Anatoly Podgoretsky (2002-03-27 23:08:00) [5]Цикл прерывается оператором Break, а вот в самом цикле надо проверять была ли нажата клавиша.
RageSV (2002-03-27 22:52:00) [6]
> asat (27.03.02 20:57)
Расшифруйте пожалуйста, что значит прервать цикл нажатием кнопки ?
Как правило цикл прерывается коммандой Break.
Юрий Зотов (2002-03-27 22:48:00) [7]Поместить этот цикл в поток, а по нажатию кнопки вызвать TerminateThread (но не TThread.Terminate).
wicked (2002-03-27 20:58:00) [8]имхо такой
> Sleep(20000);
никак...