Delphi的DFM在不同版本之间是否兼容?

时间:2014-03-19 16:21:02

标签: delphi delphi-xe2 delphi-7

我正在从D7迁移到XE2,并且IDE已经更改了一些DFM文件。

在某些文件中,更改只是一些简单的属性,例如删除ItemHeight或添加ExplicitLeft = 0

但是,在其他文件中,更改比删除整个object声明更大,我可以在将dfm文件与D7进行比较时检查。

当我在XE2中从D7添加DFM的缺失部分时,它会保存而不会出现错误:

找不到类TGenReglas。忽略错误并继续?

我已经检查过并且TGenReglas在项目中,我甚至将其文件夹添加到项目路径中,以防万一。

保存并重新打开项目后,我的所有更改都不会保存。

我可以将DFM文件从D7复制到XE2中以解决这个问题或我该怎么做?

1 个答案:

答案 0 :(得分:8)

基本的DFM格式在Delphi版本之间兼容。它是一个序列化的对象树,每个对象都有一组属性。

但是,保存的属性可以从一个版本更改为另一个版本。通常,将DFM从早期版本加载到较新版本是安全的,但不一定相反。 Explicit*属性是Delphi 7之后添加的新内容的一个示例。

如果表单设计者抛出“未找到类”错误,则表示该表单是使用尚未在IDE中注册的组件保存的,因此IDE无法加载它。您需要找到该组件所在的包,并在IDE中找到它Install