如何用我自己的Vcl.Styles.pas Delphi单元替换原来的Vcl.Styles.pas单元?

如何用我自己的Vcl.Styles.pas Delphi单元替换原来的Vcl.Styles.pas单元?,delphi,delphi-xe7,Delphi,Delphi Xe7,我想修复Delphi XE7 VCL源代码中的一些错误。 最简单的方法是编辑原始文件,重新编译并使用它(用新的DCU替换原始DCU) 然而,我得到: 单元%s是用不同版本的%s编译的 有可能用这种方式“修补”Delphi吗?没有重新编译整个VCL?当然,但是(如果您在Delphi单元的接口部分进行修改),您还必须重新编译使用该修改文件的其他VCL单元-您需要确保这些单元位于搜索路径上,以便编译器可以看到并重建它们。什么单元?有些可以修改(如果你做得正确),有些不能。正如Dmitry所建议的那样,

我想修复Delphi XE7 VCL源代码中的一些错误。 最简单的方法是编辑原始文件,重新编译并使用它(用新的DCU替换原始DCU)

然而,我得到:

单元%s是用不同版本的%s编译的


有可能用这种方式“修补”Delphi吗?没有重新编译整个VCL?

当然,但是(如果您在Delphi单元的接口部分进行修改),您还必须重新编译使用该修改文件的其他VCL单元-您需要确保这些单元位于搜索路径上,以便编译器可以看到并重建它们。

什么单元?有些可以修改(如果你做得正确),有些不能。正如Dmitry所建议的那样,“最简单”的方法是复制单元,将其放在项目编译路径中,并只修改实现部分,否则就会出现问题。正如他所建议的,如果修改接口部分,则需要包含所有相关单元。它可以更准确地指出您想要解决的问题,因为它可以在根本不修改VCL源的情况下实现。因此,1。编辑源代码,但不编辑接口,2。编译,3。用新的DCU更换旧的DCU?是。如果要修改接口部件,还需要重新编译引用该部件的所有部件。