我有自己的 Delphi/MySQL 框架,可以让我非常快速地添加“新屏幕”。我不会分享它,但我可以描述我采取的方法:
我使用带有基于 TFrame 层次结构的选项卡式界面。我创建一个选项卡并将 TFrame 链接到其中。
我使用标准 mysql 存储过程实现来处理所有的原始管道和并发控制。客户SEL、客户GET、客户UPD、客户DEL 等...
我的主窗体本质上包含导航栏面板和包含 TPageControl 的面板
我的层次结构中的类的示例
框架
TMFrame - 我的派生,具有捕获 OnShow、OnHide 和其他一些细节的接口实现
--TWebBrowserFrame
--TDataAwareFrame
--TObjectEditFrame
--TCustomerEditFrame
--TOorderEditFrame
ETC...
--TObjectListFrame
--TCustomerListFrame
etc...
和一些对话框..
对话框
TM对话框
--TDataAwareDialog
--TObject编辑对话框
-- TContactEditDialog
ETC..
--TObject选择对话框
--TContactSelectDialog
etc...
当我添加要管理的新对象时,它可能是客户的新属性,假设我们想要跟踪客户拥有哪些车辆。
创建表 CustomerVehicles
我运行我的特殊 sproc 生成器来创建我的 SEL、GET、UPD、DEL
测试那些...
从我上面提到的基类派生,删除一些控件。将选项卡添加到 TCustomerEdit。
Delphi 始终将数据集作为抽象层,通过数据源将其公开给您的 GUI。将数据集添加到客户数据模块,然后“注册”。我的派生数据模块类 TMDataModule 中我自己的自定义函数
安全控制在框架中也得到了类似的处理。我“注册”需要安全标志可见或启用的组件。
我通常可以在一小时内添加一个新对象、构建存储过程、添加维护屏幕。
当然,这通常只是开始,通常当您添加某些内容时,您不仅仅将其用于跟踪。如果这是一个车库应用程序,我们想要添加客户带入车库的车辆,对其进行 ID 以便我们可以跟踪历史记录。但即便如此,速度也很快。
我尝试过使用“更新的开发工具”将其分包给年轻人,但当我说我可以用 Delphi 将这一切速度提高十倍时,他们似乎从来不相信我!我可以在两个小时内完成没有错误的事情,而他们似乎花了两天的时间,但他们仍然有错误......
DO - 仔细规划您的 VFI!正如有人提到的,如果您想更改父类之一的组件名称,请做好遇到麻烦的准备。您将需要打开并“编辑”层次结构中的每个子项,即使您清理了 DCU,您仍然可能会遇到一些 DFM 地狱。我可以向你保证,在 2006 年这仍然是一个问题。
不要创建一个怪物数据模块
请花点时间进行前期设计,创建大量依赖项后进行重构可能是一个有趣的挑战,但当您必须快速让新东西工作时,这就是一场噩梦!