开发控件,如何在不隐藏父类事件的情况下加入自己的操作(由开发CdsDjmx模块想到的)
2013-03-29 13:58
288 查看
新类写一个新事件: 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;
原始控件的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;
相关文章推荐
- 【Visual Studio风格开发系列 - PropertyGrid控件】如何在设计时隐藏从父控件继承的属性
- Android开发之如何让父控件不拦截子空间的事件
- js在控件原有的事件方法中加入自己的方法
- 安卓开发——如何让控件充满剩余父类容器
- Android开发:如何隐藏自己的app应用
- 关于在Panel控件有滚动条时图形如何重绘以及如何加入点击滚动条事件
- Lua:如何将自己写的模块加入环境中
- 我下载了一个DNN模块的源码,如何加入我的DNN开发环境并编辑它?
- DNN4.3.3的版本开发的模块.没登陆DNN的情况下,按钮的事件有时候执行,有时候怎么点都不执行
- 要理解__doPostback函数的用法,首先我们要理解Asp.net 中服务端控件事件是如何触发的。 Asp.net 中在客户端触发服务端事件分为三种情况: 一. WebControls中
- 数据集控件 放在 数据模块 上后,如何写事件代码
- C#-WebForm-WebForm开发基础、如何给控件注册事件?——事件委托写法、http无状态性、三层结构
- 如何在子线程中操作窗体上的控件
- c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)
- java 面试,如何提升自己的实力,摘自 java web轻量级开发面试教程
- 区块链开发公司人才紧缺 企业区块链开发如何加入?
- word2007插件开发经验备忘3--如何操作文本字体
- Python 如何处理模块和包有相同名字的情况
- jQuery 相关控件的事件操作分解
- 如何在WPF项目中使用ArcEngine的控件做开发