![]() |
|
|
|
|
#1
|
|||
|
|||
|
Можно ли как нибудь остановить цикл во время его выполнения? Если да, то как?
|
|
#2
|
||||
|
||||
|
Код:
break;//остановить continue;//продолжить |
|
#3
|
||||
|
||||
|
break - не останавливает, а прерывает. Остановить цикл можно только вместе с нитью программы, поэтому вынесите ваш цикл в отдельную нить, и вот там уже можно останавливать и запускать цикл по необходимости.
|
|
#4
|
||||
|
||||
|
или укажи какик то условия при выполнении которых цикл прервется, но в runtime ты не сможешь ими управлять, т.е. это будет как бы предусловием цикла...
|
|
#5
|
|||
|
|||
|
Можно ли запихнуть одну процедуру в другую? доустим у меня выполняется цикл, а при нажатии на кнопку "стоп" этот цикл останавливался, а при нажатии на кнопку "продолжить" он опять возобновлялся?
|
|
#6
|
||||
|
||||
|
Страдалецъ сказал выше, что надо использовать нити (потоки), смотри в сторону TThread...
В 2-х словах... Винда многопоточная ОС, т.е. создается впечатление, что все приложения работают параллельно, но на самом деле по очереди. Так и любое приложение (процесс) выполняет одну задачу, и для выполнения другой задачи ему нужен другой поток. В твоем случае один поток это интерфейс, другой поток цикл. Приложение использует как минимум 1 поток, но может создавать еще. Смотри в диспетчере задач, многие приложения многопоточные. Ничего сложного в них нет... http://www.delphikingdom.com/asp/vie...catalogid=1370 |