我有不同的定義語句來處理包含文件中的不同Delphi版本。這個包含文件是「包含」在一個單元中的。編譯器尊重包含文件中給出的定義,但不支持IDE。這導致在uses語句中增加了某些單元,這些單元可能已經存在 - 被包含在DEFINE編譯器指令中。如何有條件地包含一些單元
因此,如果添加一個在Delphi XE3之前不可用的單元,您將遇到很大的問題,因爲如果您讓IDE添加該單元並且無法用預先創建的Delphi XE3版本進行編譯有這個單位。
E.g.一個項目帶有一個單位,其上有一個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。
有沒有解決該錯誤的方法?
Christian
IDE一直有點糟糕的解析條件。我希望你的質量控制報告按照設計完成。這個問題一再被提出,總是有同樣的迴應。 –
IDE總是在* .dpk文件中損壞條件,但這個問題是令人失望的新事物。 – kludg
@Serg它也一直在.pas文件中表現這種方式。這裏沒有新東西。從此永遠如此。 –