Type Parameter
Syntax {$Z1} or {$Z2} or {$Z4}
{$MINENUMSIZE 1} or {$MINENUMSIZE 2} or {$MINENUMSIZE 4}
Default {$Z1}
{$MINENUMSIZE 1}
Scope Local
The $Z directive controls
the minimum storage size of enumerated types.
An enumerated type is stored as an
unsigned byte if the enumeration has no more than 256 values, and if the type
was declared in the {$Z1} state (the default). If an enumerated type has
more than 256 values, or if the type was declared in the {$Z2} state, it
is stored as an unsigned word. Finally, if an enumerated type is declared in
the {$Z4} state, it is stored as an unsigned double-word.
The {$Z2} and {$Z4}
states are useful for interfacing with C and C++ libraries, which usually
represent enumerated types as words or double-words.
Note: For backwards compatibility withearlier versions of Delphi and Borland Pascal, the directives {$Z-} and {$Z+} are also supported. They correspond to {$Z1} and {$Z4}, respectively.