【发布时间】:2012-08-21 21:49:55
【问题描述】:
我想在自动生成的表单 (dfm) 文件中添加一些 cmets。在 pas 中,我们可以使用 // 或 {} 进行评论,但如何在 dfm 中添加评论?
是否可以添加评论?我尝试在 dfm 末尾添加评论,但是当我重新打开评论时,评论被删除了。
谢谢或帮助。
【问题讨论】:
标签: delphi
我想在自动生成的表单 (dfm) 文件中添加一些 cmets。在 pas 中,我们可以使用 // 或 {} 进行评论,但如何在 dfm 中添加评论?
是否可以添加评论?我尝试在 dfm 末尾添加评论,但是当我重新打开评论时,评论被删除了。
谢谢或帮助。
【问题讨论】:
标签: delphi
不,这是不可能的。 DFM 文件只不过是对象结构的表示。通常,您不应该直接读取或写入任何 DFM 文件(除非您确切知道自己在做什么)。早期版本的 Delphi 对 DFM 文件使用内部二进制格式,这仍然可以通过更改设置来实现。那里也没有 cmets 的位置。
更新: 您仍然可以在 PAS 文件中控件声明的正上方编写文档。
【讨论】:
已发布的组件属性被写入 DFM 文件,IDE 管理整个过程。 DFM 中任何不受支持的内容都将在 IDE 下次打开表单时被丢弃,您已经观察到了这一点。
解决方法:如果您只想将 cmets 添加到少量组件,您可以轻松编写组件包装器并添加一个新的已发布属性,您可以在其中通过属性编辑器添加注释。一种作弊的解决方法,但可行...缺点是您的 cmets 将被编译到 EXE 中。
【讨论】:
在 Delphi 7 之前,您可以在其中放置 cmets 的基本设计表面。它被保存为单独的文件。我忘记了名字,以及它是否仅适用于非视觉设计师或表单/框架设计师。
从 Delphi 2005 及更高版本开始,这已经不复存在了。
最简单的方法是编写一个小的非可视组件TComment,它有一个TStrings 类型的Lines 属性,您可以在其中存储cmets,甚至可能还有一个可以链接到目标组件的Component 属性评论的内容。
每个 DFM 都被编译成链接到您的 EXE 的二进制版本(这是 IDE 仍然支持二进制 DFM 文件的原因之一;另一个是向后兼容)。
这意味着像这样的 cmets 也会出现在您的 EXE 中。
【讨论】: