我就是想在TClientSocket来检测能不能连上服务端,不能就不用他自己的错误提示,用我自己设置的,温馨提示,哈哈
我的代码    try
      clntsckt1.Open;
    except      Exit;    end;
不管连没有连上服务端,都不会执行exit 语句,没有连上,还会弹出他自己的那个错误提示。
如果我要用这个控件,他的这个错误怎么捕捉。
比如客户端没有网络,就提示网络不通。
谢谢,很简单的。
自己比较笨

解决方案 »

  1.   

    异步Socket
    执行了Open就继续向下执行了,不会出异常。出现了错误会产生OnError事件,在这个事件里判断ErrorCode来分别处理。
      

  2.   

    procedure TForm2.clntsckt1Error(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    begin
      if ErrorCode<>0 then
      begin
        ShowMessage('haha');
        Application.Terminate;
      end;
    end;这样可以么?执行 出现 haha 对话框,也出现咯他自己的那个异步错误对话框,而且程序:
        try
          clntsckt1.Open;
        except      Exit;    end;
    还是把这后面的内容给执行出来咯,
    貌似我在OnError中的结束程序代码没有用?
    注释掉 ShowMessage('haha'); 程序在 异步错误后结束。
    errorcode :=10061
    然后程序改成
    procedure TForm2.clntsckt1Error(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    begin
      if ErrorCode=10061 then
      begin
    //    ShowMessage('haha');
        Application.Terminate;
    //    ShowMessage(IntToStr(ErrorCode));
      end;
    end;
    还是有那个该死的提示框。
    怎么办呢?
      

  3.   

    ErrorCode:=0;就不会出现异常提示了。
      

  4.   

    procedure TForm2.clntsckt1Error(Sender: TObject; Socket: TCustomWinSocket; 
      ErrorEvent: TErrorEvent; var ErrorCode: Integer); 
    begin 
      ErrorCode :=0; 
    end; 
      

  5.   

    好的,errorCode:=0,解决咯吧。
    就这样了,反正人也少了,没有多少人回答,结贴