我有各种定义语句来处理包含文件中的不同 Delphi 版本。该包含文件被“包含”在一个单元中。编译器遵守包含文件中给出的定义,但 IDE 不遵守。这导致向uses 子句添加某些单元,这些单元可能已经存在 - 包含在 DEFINE 编译器指令中。
因此,如果添加了一个在 Delphi XE3 之前不可用的单元,您将遇到一个大问题,因为如果您让 IDE 添加该单元并且无法使用没有该单元的 Delphi XE3 之前的版本编译它。
例如,一个项目有一个单元,上面有一个 TActionList。
MYINCLUDE.INC
只有一个定义{$DEFINE DELPHIXE3}
样本单元可能看起来像
unit Unit1; {$I MYINCLUDE.INC} uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, {$IFDEF DELPHIXE3} System.Actions, {$ENDIF} Vcl.ActnList; ...
保存后 IDE 添加
System.Actions
添加使用列表的末尾,这反过来会导致标识符重新声明的编译器错误。如果您删除它,IDE 将在下次保存时再次添加它。
我刚刚向QC #111178报告了这一点。
该错误是否有解决方法?
基督教