2012-07-17 64 views
1

我正在準備申請。 IDHTTP:使用Get方法。但是有一些問題。我想創建一個代理列表並單擊列表框項目(代理地址)IDHTTP添加。對不起,我很少認識英語。從列表框中選擇代理(IDHTTP)

我的代碼;

procedure TForm1.CheckBox1Click(Sender: TObject); 
begin 
if CheckBox1.Checked then 
begin 
LabeledEdit1.Enabled:= true; 
LabeledEdit2.Enabled:= true; 
IdHTTP1.ProxyParams.ProxyServer:=LabeledEdit1.Text; 
IdHTTP1.ProxyParams.ProxyPort:=StrToInt(LabeledEdit2.Text); 

CheckBox1.Caption:='Kendi IP adresimi kullan.'; 

end 
else 
begin 

LabeledEdit1.Enabled:= false; 
LabeledEdit2.Enabled:= false; 
IdHTTP1.ProxyParams.ProxyServer:=''; 
IdHTTP1.ProxyParams.ProxyPort:=StrToInt('0'); 

CheckBox1.Caption:='Proxy kullan.'; 

end; 
end; 

procedure TForm1.BitBtn2Click(Sender: TObject); 
begin 
IdHTTP1.Get(Edit1.Text); 
MessageDlg('Mission complated.', mtinformation,[mbOK],0); 
end; 

我想要;

我添加Listbox1代理..稍後..點擊Listbox1項目。稍後.. BitBtn2點擊。

謝謝。

+1

你已經有了邏輯需要指定一個代理服務器'TIdHTTP',那麼什麼是您所遇到的實際問題?在分配代理信息時,只需將代碼更改爲使用「TListBox」而不是「TLabeledEdit」。 – 2012-07-17 23:47:25

+0

@RemyLebeau,我*想*問題是關於如何將所有可用的代理服務器添加到列表框,並允許用戶從列表框中選擇'TIdHTTP.ProxyParams'中使用的代理服務器。 – 2012-07-18 00:36:29

+0

有很多代理。 1.1.x.2.1:80,1.2.x.x.5:60 .....作爲一個一個來避免? Listbox1.itemadd(Proxy +:+ Port)as?...對不起。 – user1424940 2012-07-18 00:46:42

回答

3
Listbox1.Items.Add('1.1.x.2.1:80'); 
Listbox1.Items.Add('1.2.x.x.5:60'); 
... 

procedure TForm1.Listbox1Click(Sender: TObject); 
var 
    I: Integer; 
    S: String; 
begin 
    I := Listbox1.ItemIndex; 
    if I <> -1 then 
    begin 
    S := Listbox1.Items[I]; 
    IdHTTP1.ProxyParams.ProxyServer := Fetch(S, ':'); 
    IdHTTP1.ProxyParams.ProxyPort := StrToInt(S); 
    end 
    else 
    begin 
    IdHTTP1.ProxyParams.ProxyServer := ''; 
    IdHTTP1.ProxyParams.ProxyPort := 0; 
    end; 
end; 

procedure TForm1.BitBtn2Click(Sender: TObject);   
begin   
    IdHTTP1.Get(Edit1.Text);   
    MessageDlg('Mission complated.', mtinformation,[mbOK],0);   
end;  
+0

謝謝,但.. [Error] Unit1.pas(139):Undeclared標識符:'Fetch'錯誤? – user1424940 2012-07-18 08:34:58

+0

@ user1424940你基本上以「ip:port」的形式解析字符串,所以你需要抓取ip,「:」之前的部分,然後是端口,「:」之後的部分,在「s」變量之前的所有內容並在「:」後面留下該部分,同時傾倒它,這是一個很好的練習。 – ComputerSaysNo 2012-07-18 12:04:38

+0

我添加了IdGlobal使用。問題解決了。如果錯誤407然後showmessage()? – user1424940 2012-07-18 12:09:19