Delphi DFM 检查器

3

我有一个问题。其他团队更改(删除)了组件的属性,现在一些表单打开时会出现消息"Error reading form property .... does not exists"。我该如何检查 Delphi 项目中 dfm 文件的正确性?


1
你想找到错误还是移除它们?要移除错误,只需打开使用该组件的表单或数据模块,忽略错误,然后再次保存即可。 - teran
我有一千万行代码和许多表单。我想检查所有的表单。 - YoungMaster
1
如果您使用的是Win Vista/7系统,请将“dfm”文件作为纯文本添加到搜索索引器中,并尝试使用“*.dfm”掩码按组件类名在项目目录中进行搜索。这个话题可能会有用:https://dev59.com/fWHVa4cB1Zd3GeqPjRRM。 - teran
通过组件类名搜索(而不是已删除的属性名),您将获得所有具有该组件的dfm。 - teran
5
或许 Andreas Hausladen 的 DFMCheck 可以帮到你。 - Uli Gerhardt
显示剩余2条评论
1个回答

2

你需要更多的 dfm 检查器。

如果对象读取了它不认识的属性,就会出现错误。你可能已经更新了一组(外部)控件,并且它们删除了一些属性。

如果这些是外部控件,你可以可能获取一个被删除属性的列表。

接下来,你可以使用像 grep(或其他搜索工具)这样的工具来查找具有该属性的 dfm 文件。这样你就知道要打开和测试哪些表单。

还有一些其他原因可能导致出现此错误:

  • 有人手动编辑了 dfm 文件并犯了一个错误。
  • TForm 的后代被改变为 TFrame 的后代。

2
OP写道,他们(或第三方)组件开发人员删除了一个组件属性,而这个属性是OP使用的。因此,原因是组件属性集已更改,他知道这些属性。 - teran

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接