delphi – “对象感知”GUI控件

前端之家收集整理的这篇文章主要介绍了delphi – “对象感知”GUI控件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些用Delphi编写的业务对象,它有一个自定义数据库持久性方案,最终可以满足我的需求.太好了.现在是GUI实现的时候了.这里开始出现问题.

如何正确地将我的对象绑定到GUI?

我无法使用Data Aware控件,因为我将所有数据访问组件分离到ORM层,所以我开始使用RTTI单元编写一些“Object Aware”控件(我正在使用Delphi 2010),但我感觉我’我走错了路……

关于如何仅使用VCL控件解决此问题的一些想法?

解决方法

您有几种将ORM与用户界面链接的模式.

例如,参见Model GUI Mediator模式.简而言之,您编写了一个观察者,它将ORM内容反映到UI组件中,反之亦然.这已经在tiOpf framework for Delphi中实现(此链接有视频).

另一种方法是在运行时映射数据:您像往常一样设计表单,然后在OnShow事件中填充内容,然后“保存”或“确定”按钮将验证然后将内容保存到ORM记录中.这就是在main Sample application of our framework中完成的.在这个简单的示例中很容易编码,但如果你有很多字段和验证操作,可能会导致意大利面条代码.

最后一种方法是让你的ORM创建表单.

在我们的框架中,您可以在专用结构中定义有关每个表的一些UI属性.然后是你的ORM对象的a single unit will create a form with all editable fields.其他记录的链接显示为组合框,布尔值显示为复选框,设置为radioBoxes等.然后,处理过滤(例如,从左侧或右侧的空间修剪文本字段)和验证(例如,确保字段值是唯一的或有效的IP地址),处理not in the UI part,but in the business logic itself,i.e. the ORM.

恕我直言,必须保持真正的多层架构.也就是说,UI必须主要依赖于业务逻辑.例如,数据验证必须是ORM的一部分,而不是UI的一部分.例如,如果您决定将Web客户端添加到Delphi客户端应用程序,则不必再次对验证进行编码:对于两个客户端而言,它们将与UI实现细节分开.

猜你在找的Delphi相关文章