我们最近将长期运行的 Delphi 项目转换为开源项目。许多人已经贡献了补丁,这很好,但不幸的是,使用 Delphi 2006(及更高版本)保存时的表单和框架在 .dfm 中包含旧版本无法处理的新属性。 IDE 可以非常优雅地处理表单(“忽略属性?”),但框架是在运行时加载的,并会导致错误。就我而言,这不是一个选择。
我现在手动从 .dmf 文件中删除了这些属性,但我真的想知道是否有更优雅的解决方案。没有办法从新的 IDE 中以向后兼容的格式保存,不是吗?是否有现有工具可以从 .dfm 中去除不支持的属性?我还缺少其他优雅的解决方案吗?
通常,对于商业项目,我只需将项目升级到适用的最新版本...但由于这是开源的,我真的不想放松那些仍在使用 Delphi 7 的开发人员。实际上,这包括我自己。
最佳答案
JEDI JVCL项目使用了一个小实用程序 dc.exe(delphi 清理器)和 DFM 中的属性列表,这些属性在旧版本的 delphi 中不存在,我的包含以下文本:
*.PopupMode
*.PopupParent
*.ExplicitLeft
*.ExplicitTop
*.ExplicitWidth
*.ExplicitHeight
*.BevelKind
*.BufferDocument
*.DoubleBuffered
*.ParentDoubleBuffered
*.DisableHyperlinks
*.AlwaysEnquoteFloats
*.PixelsPerInch
我从批处理文件运行此 dc.exe 实用程序,该实用程序在提交之前清理我的 dfms 改变到颠覆。我的批处理文件中的语法是:
dc.exe -s -fd10.txt *.dfm -i
您可以在以下位置获取我的东西:
http://sites.google.com/site/warrenpostma/files
关于delphi - 如何在 Delphi 6 - 2007 中保持表单和框架的可编译性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2150332/