XE7 でコンパイルするように Delphi 2010 コードを変更しようとしています (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 が 2 回宣言され (以下を参照)、エラー メッセージが表示されます[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