delphi - 如何在 Delphi 6 - 2007 中保持表单和框架的可编译性?

标签 delphi forms multiple-versions

我们最近将长期运行的 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/

相关文章:

delphi - 将新表单添加到模板库(对象存储库)Delphi Xe2

windows - 如何获取 NtQueryInformationProcess 所需的缓冲区大小?

javascript - 什么时候需要服务器端验证?

jenkins - 使用 Jenkins Pipeline 共享库上的版本

perl - 我应该如何安装多个版本的 Perl?

Python wave 模块仅适用于 v2.7,不适用于 v3.4 linux

delphi - FinalBuilder:添加内部版本号、当前日期、时间和 Subversion 修订版以输出可执行版本信息

mysql - 在 MySQL 主从表对中插入记录的最佳方式

php - 这段代码中定义的表单的 `submit()` 函数在哪里?

javascript - 通过 JQUERY 检查单选按钮组的值?