Есть цикл, но чтобы он второй раз повторился нужно ввести капчу, и продолжить цикл дальше, извините, но код программы выложить не могу.
можно написать процедуру на основе функции sleep Code: procedure sleeep(n:integer);//задержка в миллисекундах var i:integr; begin i:=0; repeat Application.ProcessMessages sleep(100); i:=i+100; until i>n; end; используем Code: sleeep(20000);//задержка в 20секунд окно программы зависать не будет.
я к сожелению еще не изучил. Можно поподробней о Application.ProcessMessages, как сделать паузу а после ввода капчи (любого знака в едит) продолжить цикл?
Дело в том, что у ТСа насколько я понял, однопоточная программа. И в данном случае ни пауза с исхользованием переменной, ни управление корневым потоком не даст нужного результата. В данном случае, можно использовать, либо во 2-ом потоке в бесконечном цыкле функцию которая будет ждать определенное событие (что является довольно приметивным, и совсем неправильным, и может привести к некоректной работе программы, т.к. в каждой итерации время работы каждого потока разное) Поэтому, есть второй вариант, а имнно асинхронное выполнение функций.
когда то использовал слип примерно так: // объявляем глобальную переменную например int_cap; при появлении капчи присваиваем этой переменной значение 0 и пока оно например меньше 1 то ждем в цикле: while (int_cap<=1) { //здесь слип ::Sleep(3000); } по нажатию на баттон к примеру меняем значение переменной с 0 на 1 ну и да это самый простой вариант.
1. Используем Synchronize(procedure begin end); 2. Внутри выводим капчу на форму 3. Создаем глобальную переменную MyCaptchaCode: String; в неё будем помещать код введённый с формы. 4. В синхронизации пишем примерно так: Code: //Выводим капчу в TImage; //делаем цикл while MyCaptchaCode = '' do begin Sleep(500); end; Отправляем код, получаем ответ, если хороший идём дальше если нет повторяем процедуру Synchronize 5. На форме создаешь кнопку и Edit в Edite код с картинки. Кнопка забивает код из Edit в MyCaptchaCode P.S. Лучше отправить на antigate и не марать себе голову с Synchronize();
Как вариант, используй модальную форму для того, что бы вывести диалоговое окно с предложением ввести капчу. Тут не надо будет никаких циклов и т. д.