开发控件,如何在不隐藏父类事件的情况下加入自己的操作(由开发CdsDjmx模块想到的)

新类写一个新事件: property OnSocketClientRead:TServerSocketClientRead read FOnSocketClientRead write FOnSocketClientRead;(新类实例事件指针就保存在这里)

原始控件的OnClientRead指向这个新类的一个新方法(SSockets[i].OnClientRead:=Self.ClientRead;),在这里:运行了新类加入的操作,如果新类实例事件有指向也一样运行。

procedure TTCPHashListView.ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  RecvLen:=Socket.ReceiveBuf(RecvBuf[0],4096);
  try
    if Socket.Data<>nil then
    begin
      try
        TGPSInfo(Socket.Data).LastDataTime:=GetTickCount;
      except
      end;
    end;
    if Assigned(FOnSocketClientRead) then
    begin
      FOnSocketClientRead(Socket.SocketHandle,Socket.Data,RecvBuf,RecvLen);
    end;
  except
  end;
end;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值