如何在将单元保留在项目中的同时从单元中删除表单?
How to remove a form from a unit while keeping the unit in the project?
我用的是Delphi7,遇到一件很烦人的事。我的一个项目已经变得相当大,我在其中一个单元中使用的表格已经过时了。我决定摆脱它。看来我做不到。 IDE 总是要求提供 .dfm 文件,无论我尝试了什么(而且我认为我非常彻底)。
这是我所做的:
首先,我使用 IDE 的“从项目中删除”将整个项目从项目中删除。然后我注释掉了该单元中使用任何内容的所有部分和 compiled、bulit 和 运行 项目。它没有任何错误或警告。我 保存了所有文件 并关闭了 Delphi IDE,启动了记事本并从单元中删除了表单声明,然后删除了所有相关文件,除了 . pas(有了这个,它变得像任何其他常规单位一样)。
然后我用 Total Commander 搜索了项目文件夹中的每个文件,看是否有任何文件包含被删除单元的名称。 None 做到了。
我启动了 Delphi 并加载了项目。
有了这个我感到满意并将单位的名称添加到 uses 列表并按下 Compile.
它仍在寻找该死的 DFM!!
如果有人知道,请给我解释一下。我错过了什么?
如果编译器正在查找 .dfm 文件,那是因为编译器包含一个包含以下内容的单元:
{$R *.dfm}
这就是告诉编译器 link 与单元同名的 .dfm 文件。
您似乎仍会在项目的某处引用该单元。编译器必须为您的单元找到 .pas 文件或已编译的 .dcu 文件。搜索名为 <UnitName>.pas
和 <UnitName>.dcu
的所有文件。删除这些文件。然后,只要您有尝试使用这些单元的代码,就会遇到编译器错误。通过从命名它的 uses 子句中删除该单元来处理这些问题。那你应该完成了。
我用的是Delphi7,遇到一件很烦人的事。我的一个项目已经变得相当大,我在其中一个单元中使用的表格已经过时了。我决定摆脱它。看来我做不到。 IDE 总是要求提供 .dfm 文件,无论我尝试了什么(而且我认为我非常彻底)。
这是我所做的:
首先,我使用 IDE 的“从项目中删除”将整个项目从项目中删除。然后我注释掉了该单元中使用任何内容的所有部分和 compiled、bulit 和 运行 项目。它没有任何错误或警告。我 保存了所有文件 并关闭了 Delphi IDE,启动了记事本并从单元中删除了表单声明,然后删除了所有相关文件,除了 . pas(有了这个,它变得像任何其他常规单位一样)。
然后我用 Total Commander 搜索了项目文件夹中的每个文件,看是否有任何文件包含被删除单元的名称。 None 做到了。 我启动了 Delphi 并加载了项目。 有了这个我感到满意并将单位的名称添加到 uses 列表并按下 Compile.
它仍在寻找该死的 DFM!!
如果有人知道,请给我解释一下。我错过了什么?
如果编译器正在查找 .dfm 文件,那是因为编译器包含一个包含以下内容的单元:
{$R *.dfm}
这就是告诉编译器 link 与单元同名的 .dfm 文件。
您似乎仍会在项目的某处引用该单元。编译器必须为您的单元找到 .pas 文件或已编译的 .dcu 文件。搜索名为 <UnitName>.pas
和 <UnitName>.dcu
的所有文件。删除这些文件。然后,只要您有尝试使用这些单元的代码,就会遇到编译器错误。通过从命名它的 uses 子句中删除该单元来处理这些问题。那你应该完成了。