I had this constants in a Delphi 7 program. They are not compiling under Delphi XE.
TYPE
TSingleChar= AnsiChar;
CONST
noData: TSingleChar= '.';
Ambiguity= ['x'];
DNA_Ambig= ['x', noData]+ Ambiguity;
[DCC Error] E2026 Constant expression
expected.
- What was changed in XE that my old code does not compile?
- I suppose that the code, as it is, is interpreted as Unicode. Am I correct?
“Fix” it like this:
The
Const_noDatais a true const as far as the compiler’s concerned, allowing you to initialize bothnoDataandDNA_Ambigusing it. And you still respect the DRY principle, ie, there’s only one definition fornoData, theConst_noData.