Показать сообщение отдельно

  #2  
Старый 30.04.2010, 03:40
1n0y
Участник форума
Регистрация: 09.05.2009
Сообщений: 186
С нами: 8951426

Репутация: 102
По умолчанию

пишу код на коленке, думаю разберёшся сам

Код:
p = class(tthread)
 private
 //переменные
 proxy:striing;
 otver:tstringlist;
  procedure getprx;
  procedure checkprx;
 protected
 procedure execute; override;
end;


var
form1..
p1,p2,p3,p4,p5,p6,p7:tthread;
i:integer;
pr:bool;


//процедура чека проксей

procedure p.checkprx;
begin
 otver:=tstringlist.create;
 // тут подставляешь прокси в инди(или что там у тебя). прокси - переменная proxy
 try
  otver.text:=http.get(somesite);
  if length(otver)<>0 then // наверное можно только except юзать
   прокси валидный
  else 
   прокси не валидный
 except 
  прокси не валидный
 end;
end;


//создаёшь процедуру, которая будет выдавать каждому потоку проксю

procedure p.getprx;
begin
 //чтото типо того
 proxy:= form1.memo1.lines[i];
 i:=i+1;
 if i=form1.memo1.lines.count // если прокся последняя - завершать проверку
 then pr:=false;
end;

procedure p.execute;
begin

//тутсоздаёшь все компоненты инди, или что там у тебя

 Synchronize(getprx); //берёш проксю
 repeat 
   checkprx;   //чекаешь
 until pr=false; 
end;


procedure tform1.button1click(sender: tobject);
begin
pr:=true;
i:=0;
 p1 := tnew.create(true);
 p1.freeonterminate := true;
 p1.priority := tpnormal;
 p1.resume;
p2 := tnew.create(true);
 p2.freeonterminate := true;
 p2.priority := tpnormal;
p2.resume;
// и так до p7

end;
 
Ответить с цитированием