有一个线程里,我用到了CLIENTSOCKET,我想在ONCONNECT事件发生时写入一些代码,因为没有用到VCL组件,所以ONCONNECT事件的函数要自己写,我按照procedure TEtlthread.ClientSocket2Connect(Sender: TObject;  Socket: TCustomWinSocket);,可是事件总不能触发,是不是这种写法有问题,请问正确的函数原型应该怎么写?谢谢

解决方案 »

  1.   

    光定义事件函数还不行
    在创建CLIENTSOCKET对象的时候,在它下面绑定你定义的事件函数
    CLIENTSOCKET.ONCONNECT:=ClientSocket2Connect;
      

  2.   

    Tthread = class(TThread)
    procedure ClientSocket2Connect(Sender: TObject;
          Socket: TCustomWinSocket);Tthread.create()
      ClientSocket2:= TClientSocket.Create(nil);
      ClientSocket2.Onconnect := ClientSocket2Connect;Tthread.execute()
      ClientSocket2.Active:= False;
      ClientSocket2.address:= '192.168.1.173';   
      ClientSocket2.port:= 8888;
      ClientSocket2.Active:= True;procedure TEtlthread.ClientSocket2Connect(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
      showmessage('connected');
    end;请问哪里还有问题呢?
      

  3.   

    有没有人知道,delphi7 的 socketconnection 在 client端的时候,怎样捕捉由于 scksrv 的 inactive timeout 产生的错误?我想把错误显示改为自己定义的提示?