如何阻止 C++Builder XE 自动编辑 .dfm 文件?
我目前正在将一个相当大的代码库从 BCB5 移植到 XE。旧代码中使用了很多外部组件,但尚未为新环境安装(因为我需要找到工作替代品或自己移植它们)。现在,Builder 删除/更改了我的 dfm 文件中这些 UI 组件的定义。如果 IDE 没有找到组件的实现,则将其完全删除。对于已知组件,大小会多次更改一个很小的值。我怎样才能改变这种烦人的行为?
如何阻止 C++Builder XE 自动编辑 .dfm 文件?
我目前正在将一个相当大的代码库从 BCB5 移植到 XE。旧代码中使用了很多外部组件,但尚未为新环境安装(因为我需要找到工作替代品或自己移植它们)。现在,Builder 删除/更改了我的 dfm 文件中这些 UI 组件的定义。如果 IDE 没有找到组件的实现,则将其完全删除。对于已知组件,大小会多次更改一个很小的值。我怎样才能改变这种烦人的行为?
它将编辑 DFM 和头文件以删除组件。
有三个选项:
当 IDE 打开一个组件不存在的表单时,它会询问您要做什么。您可以单击“全部忽略”,它不会删除那些组件引用。
如果您使用源代码管理,您应该能够恢复这些更改。即,让 IDE 为所欲为,然后恢复或不提交这些更改。
最好的方法是实际安装这些组件。如果您在项目中打开表单但组件不存在,您要做什么?您将无法编译它们。如果您需要用不同的组件替换组件,IDE 删除旧组件有什么问题?
在您自己升级项目及其文件之前,您可能应该首先尝试安装相同组件的较新版本。然后升级项目并根据具体情况让它删除对不存在的组件的引用,并用不同的组件替换它们。
“对于已知组件,大小会多次更改一个很小的值。”
从技术上讲,这是一个不同的问题;)但如果它很小,请忽略它。一些属性喜欢ExplicitLeft
并且ExplicitTop
几乎肯定会改变,我认为这是由于不同的窗口标题栏和边缘宽度(通常在使用 XP 保存表单时使用,例如,Vista 时看到。我想。我从来没有很清楚为什么这些会不断变化,但它似乎没有影响任何东西。)确保您使用的系统与上次保存表单的系统具有相同的 DPI 设置(这是字体大小设置)您的显示属性。)
我发现 dfm 文件只有在打开相应的 cpp 或 h 文件时才由 IDE 更改。这样,我可以编译源代码,一旦找到未知的组件/属性,编译器就会抛出错误,我可以解决它们。