我正在尝试修改我的 Delphi 2010 代码以在 XE7 中编译(并希望保留在 2010 年编译它的能力)。因此,在包含我的主窗体的单元中,我添加了条件指令。以下在 2010 年工作正常
uses
{$IF CompilerVersion >= 24}System.Actions, {$ELSE}Actnlist,{$IFEND}
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
但是 XE7 会自动System.Actions
在末尾添加一个以创建一个 uses 子句,该子句现在声明了 System.Actions 两次(见下文),并给出错误消息[dcc32 Error] MyForm.pas(10): E2004 Identifier redeclared: 'System.Actions'
。为什么 XE7 不接受条件指令中的单位?
uses
{$IF CompilerVersion >= 24}System.Actions, {$ELSE}Actnlist,{$IFEND}
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
System.Actions; // <- automatically added