新类写一个新事件: 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;