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.
"Fix" it like this:
TYPE
TSingleChar= AnsiChar;
CONST
Const_noData = '.';
noData: TSingleChar= Const_noData;
Ambiguity= ['x'];
DNA_Ambig= ['x', Const_noData]+ Ambiguity;
The Const_noData
is a true const as far as the compiler's concerned, allowing you to initialize both noData
and DNA_Ambig
using it. And you still respect the DRY principle, ie, there's only one definition for noData
, the Const_noData
.