如何重新编译对VCL源文件(Menus.pas)的修改?

时间:2012-05-06 13:35:57

标签: delphi compiler-errors delphi-xe

我们修改了menus.pas。

uses ...,Controls,...;

编译器引发致命错误:

  

[DCC致命错误] Menus.pas(*):F2051单位控制是用。编译的   不同版本的Menus.TPopupMenu

尝试:

删除了项目中的所有dcu。

构建

构建所有

尝试将文件添加到库路径,这导致添加db文件夹(也来自vcl),然后添加到

  

[DCC错误] jpeg.pas(872):E2065不满意的前向或外部声明:'jpeg_save_markers'

这是一个死胡同。

删除了controls.dcu(全部3个)并且delphi不知道自动重新编译它们,而是报告控制器丢失了。

2 个答案:

答案 0 :(得分:14)

以下是我处理对VCL源文件的修改的方法:

  • 复制项目结构中的文件。将文件添加到项目中,或确保搜索路径找到修改后的文件。
  • 进行修改,但仅限于实施部分。如果您使用自己使用正在修改的单元的任何其他单元,则无法修改接口部分。
  • 在修改后的源文件的顶部显式设置编译器选项。使用默认的Delphi选项,通过在默认的vanilla项目中按CTRL + O O找到。

我猜最后两个要点之一就是绊倒你。

答案 1 :(得分:1)

在Delphi XE7(及更低版本)中,主题和样式完全不可用。

因此,我修补了文件(Delphi XE7 \ source \ vcl \ Vcl.Themes.pas),将其添加到项目文件中,对其进行编译并得到了DCU。我用新的替换了旧的DCU(Delphi XE7 \ lib \ win32 \ release \ Vcl.Themes.dcu-与“ debug”文件夹相同)。现在一切正常。我什至不必将PAS文件链接到我的项目。