手动升级Delphi控件时,修改inc文件的办法

时间:2022-04-22 16:07:07

以MustangPeakCommonLib.exe控件为例,想让它支持Delphi2010,就需要在D:\Program Files\Common Library\Mustangpeak\Common Library\Source\Compilers.inc文件里手动增加:

{$ifdef VER210}
{$define COMPILER_14}
{$endif VER210}

{$ifdef COMPILER_14}
{$define COMPILER_1_UP}
{$define COMPILER_2_UP}
{$define COMPILER_3_UP}
{$define COMPILER_4_UP}
{$define COMPILER_5_UP}
{$define COMPILER_6_UP}
{$define COMPILER_7_UP}
{$define COMPILER_8_UP}
{$define COMPILER_9_UP}
{$define COMPILER_10_UP}
{$define COMPILER_11_UP}
{$define COMPILER_12_UP}
{$define COMPILER_14_UP}
// Backwards compatibility
{$define DELPHI_2_UP}
{$define DELPHI_3_UP}
{$define DELPHI_4_UP}
{$define DELPHI_5_UP}
{$define DELPHI_6_UP}
{$define DELPHI_7_UP}
{$define DELPHI_8_UP}
{$define DELPHI_9_UP}
{$define CPPB_3_UP}
{$define CPPB_4_UP}
{$define CPPB_5_UP}
{$define CPPB_6_UP}

{$ifdef BCB}
{$define CPPB}
{$else}
{$define DELPHI}
{$endif}

{$endif}

说明:VER210是内嵌在编译器中的,为了让编译器认识当前这个控件,就必须增加$define COMPILER_14这句话,这个标记用来管理后面的详细情况。

如果修改完了,编译器还是不认,这是怎么回事?原因还在于要把Compilers.inc文件的路径加到Lib路径里,否则Delphi连这个文件都找不到,又怎么会认识你的控件呢?

当然,还得把

EasyListviewD12.dpk
EasyListviewD12D.dpk

分别复制一份,把它们的名字改成:

EasyListviewD14.dpk
EasyListviewD14D.dpk

然后用记事本分别打开它的内容,见到12就换成14,就行了!

有时候,同一个控件,还要改多次Compilers.inc,比如:

D:\Program Files\Mustangpeak\EasyListview\Design\Compilers.inc
D:\Program Files\Mustangpeak\EasyListview\Source\Compilers.inc

都要改,否则Design下的源文件还是不认识这个编译器,因为它们都只认当前目录下的Compilers.inc文件,它们是这样写的:{$I Compilers.inc} 完全不带任何路径。