首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有快速禁用/启用所有事件处理程序的方法

是否有快速禁用/启用所有事件处理程序的方法
EN

Stack Overflow用户
提问于 2015-10-24 20:05:01
回答 1查看 713关注 0票数 1

通常在我的应用程序中,我有一个地方可以“加载”内存中的数据集(TClientDataSet或DevEx TdxMemData)。在加载它之前,我会这样做:

代码语言:javascript
复制
CDS1.BeforeUpdate := nil;
CDS1.AfterUpdate := nil;
CDS1.AfterPost := nil;

..。诸若此类。然后在加载之后(例如,LoadData(CDS1))

代码语言:javascript
复制
CDS1.BeforeUpdate := CDS1BeforeUpdate;
CDS1.AfterUpdate := CDSAfterUpdate;
CDS1.AfterPost := CDS1AfterPost;

这非常乏味,特别是因为并不是所有的事件处理程序都是在每个应用程序的每个上下文中分配的,有时我会错过一个在运行时会回来咬我的事件处理程序。

如果我能打电话给你

代码语言:javascript
复制
CDS1.DisableallEventHandlers;
LoadData(CDS1);
CDS1.EnableallEventHandlers; // which were assigned at design-time, that is
EN

回答 1

Stack Overflow用户

发布于 2015-11-26 19:41:16

我建议使用DisableallEventHandlersEnableallEventHandlers方法创建一个类帮助器,而每个方法都使用RTTI枚举事件处理程序属性,并从映射中存储/检索事件处理程序指针。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33317979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档