procedure TForm1.BitBtn1Click(Sender: TObject);
var
  str,str1 : string;
begin  
  str := richedit2.Text;  
  try
    str1 := listview1.Selected.SubItems.Text ; 
    showmessage(str1); //str1(本机IP)
    idudpserver1.Binding.SendTo(str1, 2020, str[1], length(str));  //这里老出错,过不去.
  except
    on exception do
    begin
      exit;
    end;
  end;
end;

解决方案 »

  1.   

    idudpserver1.Binding.SendTo(str1, 2020, str[1], length(str));  //这里老出错,过不去. 
    这里是取字符串长度还是,第一个字符?
      

  2.   

    procedure TIdSocketHandle.SendTo(const AIP: string; const APort: Integer; var ABuffer; const ABufferSize: Integer);1. sendto参数依次为: IP,端口,buffer,buffer长度
    2.看看你的string是否包含什么非法字符idudpserver1.Binding.SendTo(str1, 2020, str[1], length(str));  //这里老出错,过不去. 你的str[1], length(str)不对应
      

  3.   

    要么 idudpserver1.Binding.SendTo(str1, 2020, str, length(str));  
    要么 idudpserver1.Binding.SendTo(str1, 2020, str[1],  length(str[1])); str[1]的长度和 length(str)取得的值不相同,发送出错
      

  4.   

    不行..错误是..10 ' is not a valid integer value  
      

  5.   

    不法字符?? 你说不法字符突然想起来,我的字符串里有<@>,,这个是我用来POS('@',str)的,难道跟这有关?
      

  6.   

    ABinding.SendTo(ABinding.PeerIP,ABinding.PeerPort,Str[1],Length(Str));
    这句话在在在delphi7中行,但是在delphi2009,中不行,如何改呀