【问题标题】:Prevent Delphi 10.2 from auto adding properties to TForm防止 Delphi 10.2 自动向 TForm 添加属性
【发布时间】:2018-08-23 13:17:09
【问题描述】:

我正在编写一个代码库,可以在 Delphi 5 和 Delphi 10.2 中运行,直到我们将所有内容都转换为 D10。

每当我在 10.2 中打开 DFM 文件并保存它时,它都会自动将 DesignSize 属性添加到 TForm。 D5 中不存在此属性,因此每次在 D5 中打开相同的 DFM 时都会出错。

有什么方法可以防止 D10 自动更新 DFM?或者这不可能?

【问题讨论】:

  • 如何将 DFM 设为只读?只有当您将某些子组件设置为 Align = alNone 和 Anchors [akLeft, akTop] 时,才会编写 DesignSize 属性。也许你可以避免这种组合。
  • @Uwe 这是个好主意。我能想到的唯一问题是在对 dfm 进行更改时必须使其可写,这并不经常这样做。
  • @UweRaabe:这种组合很难避免!我一直使用它来使对话框在调整大小时表现良好。

标签: delphi dfm


【解决方案1】:

您可以在需要时使用实用程序清除它们。 JVCL 包含一个名为 DFM Cleaner 的实用程序,可以执行此操作。安装 JVCL 后,在 $(JVCL)\DevTools 中结束。

DFMCleaner 是一种从 DFM 中删除不受支持的属性的工具。如果 您将 dfm 文件保存在一个版本的 Delphi 中,并希望在 早期版本,可能有一些不受支持的属性 它,在 Delphi 中打开表单时会产生错误。甚至是什么 更糟糕的是,如果 dfm 是设计时包的一部分,Delphi 将 安装软件包时没有错误,但是当您尝试访问表单时 在设计时(如果表单由属性编辑器使用,则为前),Delphi 而是生成一个 AV。

【讨论】:

    猜你喜欢
    • 2017-05-10
    • 2023-04-08
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 2014-04-01
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    相关资源
    最近更新 更多