Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.11.2015, 14:43
DeNiSoK12Rus DeNiSoK12Rus вне форума
Прохожий
 
Регистрация: 15.10.2015
Сообщения: 13
Версия Delphi: Delphi XE3
Репутация: 10
По умолчанию Парни, в чем ошибка ?

Код:
procedure TNewThread.Execute;
var
    HTTP: thttpsend;
    SSL : TIdSSLIOHandlerSocketOpenSSL;
    SOCKS: TIdSocksInfo;
    ath:string;
    Post,post1: Tstringstream;
    cook:TIdCookieManager;
 begin
  while Work do
  begin
   CS.Enter;
   inc(tp);
   if tp=Proxy.Count-1 then tp:=0;
   CS.Leave;
   if Work then
    begin
    HTTP:= THttpsend.Create();
    SSL:=TIdSSLIOHandlerSocketOpenSSL.Create;
    ssl.Port:=443;
    http.Timeout:=strtoint(form2.sSpinEdit2.text)*1000;
    post:= Tstringstream.Create;
    post1:= Tstringstream.Create;
    userinf:=Tstringlist.Create;
    sexe:=tstringlist.Create;
      if Proxy.Text = '' then sleep(0) else
      begin
      if Form2.sComboBox1.Text='HTTP(S)' then
    begin
     http.ProxyHost:=Copy(Proxy[tp],1,Pos(':',Proxy[tp])-1);
     http.ProxyPort:=Copy(Proxy[tp],Pos(':',Proxy[tp])+1,Length(Proxy[tp]));
    end;
    if Form2.sComboBox1.Text='SOCKS 4/5' then
    begin
     HTTP.Sock.SocksIP := Copy(Proxy[tp],1,Pos(':',Proxy[tp])-1);
     HTTP.Sock.SocksPort := Copy(Proxy[tp],Pos(':',Proxy[tp])+1,Length(Proxy[tp]));
    end;
      end;
    HTTP.MimeType:='application/x-www-form-urlencoded';
    HTTP.UserAgent:='Moblie';
    post.WriteString('sedit1.text');
    HTTP.Document.LoadFromStream(post);
    // Сам запрос
     if HTTP.HTTPMethod('post', 'site') then
     sexe.LoadFromStream(http.Document);
     if http.ResultCode<>200 then
     begin
     Rezult:=-1;
     end else
     begin
    if Pos('Link=', sexe.Text)<>0 then
    begin
    ath:= Pars('Link=', sexe.text ,'"');
    HTTP.Headers.Clear;
    HTTP.MimeType:='application/x-www-form-urlencoded';
    HTTP.UserAgent:='Mobile';
    post1.WriteString('sedit2.text');
    HTTP.Document.LoadFromStream(post1);
// Сам запрос
     if HTTP.HTTPMethod('post', 'site'+ath) then
     userinf.LoadFromStream(http.Document);
  if Pos('Utorrent', userinf.Text)<>0 then
 begin
 Rezult:=1;
end else
begin
Rezult:=0;
end;
    end;
     end;
    end;
     HTTP.Free;
     sexe.Free;
     post.Free;
     post1.Free;
     userinf.Free;
     Synchronize(Parsurl);
    end;
     dec(Thread);
     if Thread=0 then
     Form1.N6.Enabled:=true;
     Form1.N7.Enabled:=true;
     Form1.sbitbtn1.Enabled:=true;
     Form1.sbitbtn3.Enabled:=true;
     Form1.sbitbtn1.Enabled:=true;
     Form1.sbitbtn3.Enabled:=true;
     Form1.sComboBox1.Enabled:=true;
     Form1.sBitBtn5.Enabled:=true;
end;
Ошибки: http://i.imgur.com/mi9xSvC.png
Ответить с цитированием
  #2  
Старый 16.11.2015, 17:27
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Ну для начала
А точно
Код:
post.WriteString('sedit1.text');
а не
Код:
post.WriteString(sedit1.text); 

во вторых
вот это
Код:
     if Thread=0 then
     Form1.N6.Enabled:=true; 
     Form1.N7.Enabled:=true;
     Form1.sbitbtn1.Enabled:=true;
     Form1.sbitbtn3.Enabled:=true;
     Form1.sbitbtn1.Enabled:=true;
     Form1.sbitbtn3.Enabled:=true;
     Form1.sComboBox1.Enabled:=true;
     Form1.sBitBtn5.Enabled:=true;
а не нужно ли весь блок обрамить begin/end, вынести его в отдельный метод и запускать под Synchronize ?
Ответить с цитированием
Этот пользователь сказал Спасибо icWasya за это полезное сообщение:
DeNiSoK12Rus (16.11.2015)
  #3  
Старый 16.11.2015, 20:08
DeNiSoK12Rus DeNiSoK12Rus вне форума
Прохожий
 
Регистрация: 15.10.2015
Сообщения: 13
Версия Delphi: Delphi XE3
Репутация: 10
По умолчанию

Цитата:
Сообщение от icWasya
Ну для начала
А точно
Код:
post.WriteString('sedit1.text');
а не
Код:
post.WriteString(sedit1.text); 

во вторых
вот это
Код:
     if Thread=0 then
     Form1.N6.Enabled:=true; 
     Form1.N7.Enabled:=true;
     Form1.sbitbtn1.Enabled:=true;
     Form1.sbitbtn3.Enabled:=true;
     Form1.sbitbtn1.Enabled:=true;
     Form1.sbitbtn3.Enabled:=true;
     Form1.sComboBox1.Enabled:=true;
     Form1.sBitBtn5.Enabled:=true;
а не нужно ли весь блок обрамить begin/end, вынести его в отдельный метод и запускать под Synchronize ?
Не совсем понял про а не нужно ли весь блок обрамить begin/end
Ответить с цитированием
  #4  
Старый 17.11.2015, 00:42
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Если if Thread=0 , то это влияет только на один оператор-
Form1.N6.Enabled:=true;остальные выполняются безусловно - не знаю, может быть так и надо. Но обращение к компонентам на форме из другого потока делать нельзя.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:55.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter