我正在将我们的项目从 XE7 更新到 XE8。目前他们仍需要使用 XE7,因此需要一些条件。比如ImageList换了单位,所以XE8中的Vcl.ImgList就是Syste.ImageList。为了使它适用于两个 Delphi 版本,uses 子句看起来像这样:
uses
System.SysUtils, System.Classes, Vcl.Controls
{$IF CompilerVersion >= 29.0}
,System.ImageList
{$else}
,Vcl.ImgList
{$endif}
,cxGraphics;
有时这很好用。然而,Delphi 经常会自动重新添加 System.Imagelist 单元,即使它已经存在,尽管是在有条件的情况下,例如
uses
System.SysUtils, System.Classes, Vcl.Controls
{$IF CompilerVersion >= 29.0}
,System.ImageList
{$else}
,Vcl.ImgList
{$endif}
,cxGraphics, System.ImageList;
编译后,XE8 会报错。
[dcc32 Error] dmImagesU.pas(13): E2004 Identifier redeclared: 'System.ImageList'
a) Delphi 为什么要加单位?b)有人知道解决方法吗?