【问题标题】:How to keep forms and frames compilable in Delphi 6 - 2007?如何在 Delphi 6 - 2007 中保持表单和框架可编译?
【发布时间】:2010-01-27 21:21:35
【问题描述】:

我们最近将长期运行的 Delphi 项目转换为开源项目。很多人已经贡献了补丁,这很好,但不幸的是,使用 Delphi 2006(及更高版本)保存的表单和框架在 .dfm 中包含旧版本无法处理的新属性。 IDE 可以非常优雅地处理表单(“忽略属性?”),但帧是在运行时加载的并导致错误。就我而言,这不是一个选择。

我现在手动从 .dmf 文件中删除了这些属性,但我真的想知道是否有更优雅的解决方案。没有办法从新的 IDE 中以向后兼容的格式保存,是吗?是否有现有工具可以从 .dfm 中去除不支持的属性?我还缺少任何其他优雅的解决方案吗?

通常,对于商业项目,我只是将项目升级到适用的最新版本......但由于这是开源的,我真的不想放弃那些仍在使用 Delphi 7 的开发人员。实际上,这包括我自己。

【问题讨论】:

    标签: delphi forms multiple-versions


    【解决方案1】:

    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
    

    【讨论】:

    • 你打字太快了。 我几乎一直在发布相同的信息;你打败了我。
    【解决方案2】:

    你可以试试安迪的DFMCheck。它可以自动打开和关闭项目中的所有窗体和框架,这使得 IDE 可以删除未知属性(如 Marco wrote)。

    【讨论】:

    • 很好 - 我不知道这个。谢谢。
    【解决方案3】:

    好吧,为了完整起见:

    在支持的最旧的 Delphi 中打开 dfms,让它删除所有未知属性,更改属性并保存。

    出于您的目的,Warren 的解决方案更好,但它可能是一种解决方法。当我们双 D7-D2006 时,我做过一段时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-15
      • 1970-01-01
      相关资源
      最近更新 更多