出现list index out of bounds(0)?

                            
运用Socket编写了一个客户端,不过只能连上和接收服务器的信息,不知道为何不能发送信息,而且在退出时出现这个错误list   index   out   of   bounds(0),究竟该怎么改啊?查了很多资料都不知道该如何下手,请各位帮忙看看   
  unit   Client;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   ScktComp,   StdCtrls,   ComCtrls,   Menus;  
   
  type  
      TfrmClient   =   class(TForm)  
          MainMenu1:   TMainMenu;  
          Cennect:   TMenuItem;  
          DisConnect:   TMenuItem;  
          About:   TMenuItem;  
          Exit:   TMenuItem;  
          SSent:   TMemo;  
          CSent:   TMemo;  
          btSent:   TButton;  
          StatusBar:   TStatusBar;  
          SesInfor:   TGroupBox;  
          Label1:   TLabel;  
          edIP:   TEdit;  
          Label2:   TLabel;  
          EdPort:   TEdit;  
          ClientSocket:   TClientSocket;  
          procedure   CennectClick(Sender:   TObject);  
          procedure   ClientSocketConnect(Sender:   TObject;  
              Socket:   TCustomWinSocket);  
          procedure   CSentKeyDown(Sender:   TObject;   var   Key:   Word;  
              Shift:   TShiftState);  
          procedure   ClientSocketRead(Sender:   TObject;   Socket:   TCustomWinSocket);  
          procedure   ClientSocketDisconnect(Sender:   TObject;  
              Socket:   TCustomWinSocket);  
          procedure   btSentClick(Sender:   TObject);  
          procedure   AboutClick(Sender:   TObject);  
          procedure   ExitClick(Sender:   TObject);  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      frmClient:   TfrmClient;  
      ServerSocket:TServerSocket;  
   
  implementation  
  uses   unit2;  
   
  {$R   *.dfm}  
   
  //激活客户端  
  procedure   TfrmClient.CennectClick(Sender:   TObject);  
  begin  
      ClientSocket.Address:=edIP.Text;       //设定IP  
      ClientSocket.Port:=StrToInt(edPort.Text);     //设定端口  
      ClientSocket.Active:=true;  
  end;  
   
  //建立连接  
  procedure   TfrmClient.ClientSocketConnect(Sender:   TObject;  
      Socket:   TCustomWinSocket);  
  begin  
      Statusbar.Panels.Items[0].Text:='成功连接到服务器'+ServerSocket.Name;  
  end;  
   
  //在对话框按回车发送信息  
  procedure   TfrmClient.CSentKeyDown(Sender:   TObject;   var   Key:   Word;  
      Shift:   TShiftState);  
  begin  
      ClientSocket.Socket.SendText(CSent.Lines[CSent.Lines.Count   ]);  
  end;  
  //按发送按钮发送信息  
  procedure   TfrmClient.btSentClick(Sender:   TObject);  
  begin  
      ClientSocket.Socket.SendText(CSent.Lines[CSent.Lines.Count   ]);  
  end;  
   
  //获取服务器的信息以及显示客户端本身发送的信息  
  procedure   TfrmClient.ClientSocketRead(Sender:   TObject;  
      Socket:   TCustomWinSocket);  
  begin  
      SSent.Lines.Add(Socket.ReceiveText);  
  end;  
   
  //断开连接  
  procedure   TfrmClient.ClientSocketDisconnect(Sender:   TObject;  
      Socket:   TCustomWinSocket);  
  begin  
      ClientSocket.Active:=false;  
      Statusbar.Panels.Items[0].Text:='关闭与服务器的连接';  
      CSent.Lines.Clear;  
  end;  
   
   
  //获取软件信息  
  procedure   TfrmClient.AboutClick(Sender:   TObject);  
  begin  
      Form2.Show;    
  end;  
   
  //退出程序  
  procedure   TfrmClient.ExitClick(Sender:   TObject);  
  begin  
      if   ClientSocket.Active   then  
            ClientSocket.Close;  
      frmClient.Close;  
  end;  
   
  end.  
 

查看回复