我有自己的Delphi/MySQL框架,可以快速添加“新屏幕”。我不会分享它,但是我可以描述我采取的方法:
我使用基于TFrame的分页界面层次结构。我创建一个选项卡并将TFrame链接到其中。
我通过标准的mysql存储过程实现处理所有crud管道和并发控制。如CustomerSEL,CustomerGET,CustomerUPD,CustomerDEL等…
我的主要表单实际上包含导航栏面板和包含TPageControl的面板
我的层次结构中类的示例
TFrame
TMFrame-我的派生,具有捕获OnShow、OnHide和其他特定内容的接口实现
-TWebBrowserFrame
-TDataAwareFrame
--TObjectEditFrame
---TCustomerEditFrame
---TOrderEditFrame
等等...
--TObjectListFrame
---TCustomerListFrame
等等...
还有一些对话框。。
TDialog
TMDialog
-TDataAwareDialog
--TObjectEditDialog
---TContactEditDialog
等等。
--TObjectSelectDialog
---TContactSelectDialog
等等...
当我添加一个新对象进行管理时,它可以是客户的新属性,比如我们想跟踪客户拥有哪些车辆。
创建表CustomerVehicles
运行我的特殊sproc生成器,创建我的SEL、GET、UPD、DEL
测试它们...
从我上面提到的基础类派生,放置一些控件。在TCustomerEdit中添加选项卡。
Delphi始终将数据集作为抽象层,通过DataSources将其公开到GUI。将数据集添加到客户数据模块,并“注册”它。我自己的自定义函数在我的派生数据模块类TMDataModule中。
安全控制同样在框架中处理。我“注册”需要安全标志才能可见或启用的组件。
我通常可以在一个小时内添加一个新对象、构建sprocs并添加维护屏幕。
当然,这通常只是开始,通常当你添加一些东西时,你会用它来跟踪更多东西。如果这是一个车库应用程序,我们想要添加客户带进车库的车辆,对其进行标识,以便我们可以跟踪历史记录。但即使如此,速度也很快。
我曾经试过向使用“新开发工具”的年轻人分包,他们似乎从不相信我说我可以用Delphi比他们快十倍完成所有工作!我可以在两个小时内无错误地完成他们需要两天才能完成且仍有漏洞的工作...
DO-小心计划您的VFI!正如某人所提到的,如果您想更改父类之一上组件的名称,请准备好麻烦。您需要打开和“编辑”层次结构中的每个子级,即使您清除了DCU,您仍然可能会遇到一些DFM问题。我可以向您保证,在2006年,这仍然是一个问题。
不要创建一个庞大的数据模块
在设计前端时要慢慢来,如果你已经创建了大量依赖项,重构可能会成为一个有趣的挑战,但当你需要快速让新东西运行时,它可能会成为一场噩梦!