前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我们总是梦想着对象化(九)

我们总是梦想着对象化(九)

作者头像
加菲猫的VFP
发布2021-08-16 11:40:55
1530
发布2021-08-16 11:40:55
举报
文章被收录于专栏:加菲猫的VFP

我相信,凡是按照前面步骤实践的看客,应该可以理解这套控制机制了。下面,我们详细展开。

当我们执行增删改时,那真的是五花八门的,怎么可能将它们抽象为一套控制机制呢?好吧,我们把这些五花八门的各种操作留给 MyCursor 来处理。先来看看其他的自定义类应该怎样设计。

首先,我们在 MyFomr 增加九个自定义方法:BeforeAdd、Add、AfterAdd、BeforeDelete、Delete、AfterDelete、BeforeEdit、Edit、AfterEdit。

在 BeforAdd、BeforeDelete、BeforeEdit方法中,写入以下语句:

代码语言:javascript
复制
Return .T.

我们以 Add 自定义方法为例,Delete、Edit 方法雷同:

代码语言:javascript
复制
With Thisform
 If .BeforeAdd() = .T.
 Private loDE
 Local loDE As DataEnvironment
 m.loDE = Evaluate([This.] + This.DEClass)
 m.loDE.Add()
 .AfterAdd()
 Endif
Endwith

当我们需要进行增加操作时,仅需要在对应的 Command 的 Click 事件中写入:

代码语言:javascript
复制
Thisform.Add

至此,我们已经完成了界面和数据操作的分离。

我们在实际使用时,可以在 BeforeAdd 方法中依据实际情况写入一定的代码,如果条件满足,返回逻辑值真,否则,返回逻辑值假,这样,我们就可以有条件的控制是否可以进行数据添加的操作。当然,如果你无需做前置条件的检测,那么你也可以忘记它的存在。而AfterAdd 方法,则为自己在增加数据后需要执行的界面元素操作提供了一个接口。

你可以依据以上的代码自行完善其他的自定义方法。需要说明的是,BeforeXXX 和 AfterXXX自定义方法,被称之为钩子方法。

你的反馈是我写作的动力,欢迎评论,未完待续。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲猫的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档