我使用IdTCPClinet做了一个客户端程序。点击按钮,可以建立与服务器的连接。但是再点按钮或者关闭程序都会出错。提示某某地址出现了违规操作。如果再运行,就提示SOCKET错误,10048地址已经被使用,要把服务器断开一次才可以再次连接上。是不是我在关闭的时候没有关线程什么的?但是我不会做这些,请指点。
  //设置Client1属性,建立虚链路
  IdTCPClient1.Port:=StrToInt(Edit2.Text);
  IdTCPClient1.Host:=Edit1.Text;
    if trim(Button2.Caption)='连接?' then
    begin
      IdTCPClient1.Connect;
      Button2.Caption:='断开?';
      Button3.Enabled := true;
      Shape1.Brush.Color:=clRed;
    end else
    begin
      if IdTCPClient1.Connected then     //关闭连接
      begin
        ClientHandleThread.Terminate;
        IdTCPClient1.Disconnect;
      
        Button2.Caption:='连接?';
        Button3.Enabled := False;
        Shape1.Brush.Color:=clSilver;
      end;
    end;正确的程序应该是怎么建立连接和断开连接?