Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2011, 14:50   #1
webber9989
dimgunkin
Форумчанин
 
Аватар для webber9989
 
Регистрация: 06.05.2010
Сообщений: 112
По умолчанию Зависание формы. Решить проблему.

Код:
procedure TForm1.sButton1Click(Sender: TObject);
var
//переменные
begin

//тело

  IdHTTP1.AllowCookies := True;
  IdHTTP1.HandleRedirects := True;


for fori:= 0 to yaacc.Count-1 do

begin

//тело
//разгадываем каптчу
sleep(6000); //остановимся и ждем пока каптча будет готова

//дальше идет post запрос... 

if pos('302', Idhttp1.response.responsetext) > 0 then
begin
//тело
end;

if pos('200', Idhttp1.response.responsetext) > 0 then begin

try
 if param = '' then
   begin
//тело
   end
   else
   begin
//тело
   end;

Except

//тело

end;

Append();
Append();

end;


end;

   CloseFile();
    CloseFile();

end;
Вот есть код, не ругайте что криво написан, привык так, знаю что плохо((

Не могу разобраться куда вставить Application.ProcessMessages; что бы форма не висла при выполнении программы..
Я почти не работал с Application.ProcessMessages;, 1 раз было, когда данные в файл записывал..
Я куда только не ставил, ничего не помогает...

Помогите плиз разобраться
mail: dimgunkin@gmail.com
skype: dimgunkin
icq: 684-795-212
webber9989 вне форума Ответить с цитированием
Старый 19.08.2011, 16:00   #2
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
куда вставить Application.ProcessMessages
Никуда.
Все уже "стоит", достаточно шмякнуть на форму компонент IdAntifreeze.
mss вне форума Ответить с цитированием
Старый 19.08.2011, 16:23   #3
Dеlphi
нажмите + на весах
Пользователь
 
Регистрация: 10.11.2010
Сообщений: 30
По умолчанию

Application.ProcessMessages нужно вставить в тело цикла, или использовать поток
Если помог нажми на весы
Dеlphi вне форума Ответить с цитированием
Старый 19.08.2011, 16:25   #4
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Цитата:
Сообщение от Dеlphi Посмотреть сообщение
Application.ProcessMessages нужно вставить в тело цикла, или использовать поток
Поскольку у него в коде Sleep(6000), ProcessMessages не поможет)
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 19.08.2011, 18:39   #5
Anfall
Форумчанин
 
Регистрация: 10.02.2009
Сообщений: 181
По умолчанию

Кроме как через поток никак.
Anfall вне форума Ответить с цитированием
Старый 19.08.2011, 19:33   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от chertovich
Поскольку у него в коде Sleep(6000), ProcessMessages не поможет)
угу. +1

это ожидание готовой капчи надо как-то интеллектуальнее сделать, ну, что-то в цикле проверять, готово/не готово..
ну, или на крайний случай, замутить как-то так:
Код:
for i:=1 to 60 do begin
   Sleep(100);
   Application.ProcessMessages;
end;

Цитата:
Сообщение от mss
достаточно шмякнуть на форму компонент IdAntifreeze.
+1
Как утверждают знающие коллеги, это тоже не помешает.

Последний раз редактировалось Serge_Bliznykov; 19.08.2011 в 19:49.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.08.2011, 00:37   #7
webber9989
dimgunkin
Форумчанин
 
Аватар для webber9989
 
Регистрация: 06.05.2010
Сообщений: 112
По умолчанию

Спасибо за помощь.

IdAntifreeze не помог особо, сделал через поток.
Ещё раз всем большое спасибо.
mail: dimgunkin@gmail.com
skype: dimgunkin
icq: 684-795-212
webber9989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПОМОГИТЕ РЕШИТЬ ПРОБЛЕМУ !!!!!!!!!!!! ЛиЛу Помощь студентам 5 29.12.2008 15:36
Помогите решить проблему nismo Microsoft Office Excel 7 12.09.2008 08:59
помогите решить проблему 1234 Общие вопросы Delphi 2 04.07.2008 11:52
помогите решить проблему ... alexey7 Microsoft Office Excel 2 16.10.2007 13:25