我厌倦了一遍又一遍地编写相同的代码;我想创建一个包含组件,代码等的(主)表单,它将成为我创建的每个应用程序的一部分。 (想想视觉形式的继承。)......你会包括哪些功能?
例如,我喜欢通过配置文件保存位置和大小的表单,因此我将包含该功能。我可能还包括使用F11键将表单全屏显示的功能。
你还包括什么?
答案 0 :(得分:2)
设置AutoScroll = False
以强制Delphi将表单的客户端大小(而不是绑定大小)存储到DFM,以便在不同的操作系统上获得相同的客户端表单维度。
并引用同一篇文章中的Ian Boyd:
因为我试图成为一名优秀的开发人员,所以我的表单尊重用户的字体偏好。在我所有表单的
OnCreate
期间,我调用StandardizeForm(Self)
函数:
- 缩放表单以匹配用户的默认字体大小
- 将表单上所有控件上的字体更改为用户的首选项
如果表单设置错误地设置为Scaled
,则- 发布ODS
- 如果
,则会发出ODS和断点AutoScroll
为false(并将其设置为true)- 如果
,则会发出ODS和断点ShowHint
为假(并将其打开)- 等
答案 1 :(得分:0)
我有一个Delphi框架经历了D5-D2007的几个版本......我想我有一个2007版本。我确实有这个东西的SDI / MDI版本......这里有一个简短的功能列表。
主窗体具有用于所有数据导航和交互的数据源属性。 所有标准菜单项(编辑:剪切,复制;文件:关闭,分机;帮助:等..) 有一个“主”数据模块有一个用于登录的抽象用户对象...后代数据模块用于特定的数据库类型,MQSQL,IB等。 主数据模块具有通用的“PrepareDataset”方法,后代将使用正确的连接对象设置每个数据集类型。
我还有一个通用的“维护表单”,用于编辑表单上带网格的所有基本查找表,如“PhoneNumberTypes”或“States”。
框架的工厂做了以下...... - 主表单包含一个用于子表单的虚拟工厂。 - 每个表单都必须在初始化时调用“FormFactory.RegisterForm” 单位。 - 注册呼叫包括路径,priv,标题 参数 - 路径:(即'File \ Open \ Contacts')主窗体创建一个 该位置的菜单项 - 标题:菜单项的标题 - Priv :(即'TContanctForm')工厂对用户进行检查 允许表单的创建。
......好了这个名单......但是真的很棒。我认为它的设计最好的部分是每个开发人员都能够开发一个“表单”,而不需要或拥有最新的框架代码。只要他们进行了注册调用,以及来自TFrameWorkChild表单的后代......这一切都正常工作。