请问在自己继承的类里如TMyClientSocket=class(TClientSocket)
重载事件
如在TClientSocket类里的OnRead类或则OnConnect事件里
protected
  procedure Read(Socket: TCustomWinSocket);override;
但这样写后提示说在基类里找不到Read。
但如果我用控件的OnRead事件时delphi是这样自动声明的
procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
beginend;
为什么会这样呢?请大家帮帮小弟解决这道难题:)

解决方案 »

  1.   

    因为基类里根本就没有Read函数
    OnRead是由TCustomSocket的Event函数触发的
    procedure TCustomSocket.Event(Socket: TCustomWinSocket; SocketEvent: TSocketEvent);
    begin
      case SocketEvent of 
        ...
       seRead: 
         if Assigned(FOnRead) then FOnRead(Self, Socket);
       ...end;
    这个Event到是可以重载
      

  2.   

    那我想问问如果我想重载一个事件,那我怎么知道哪个时间的函数是什么呢?那不是很麻烦了,像这个Event函数我怎么知道有这样一个函数,有什么办法可以不用这么麻烦呢?
      

  3.   

    那比如我现在要在TClientSocket的OnRead事件下加上一些功能,那我怎样做呢?不如举个事例,这样更容易明白,请多多指教。