Mega Code Archive

 
Categories / Delphi / Compiler Directives
 

$minenumsize - sets the minimum storage used to hold enumerated types

1 {$MinEnumSize 1} 2 {$MinEnumSize 2} 3 {$MinEnumSize 4} Description The $MinEnumSize compiler directive sets the minimum storage size, in bytes, that enumerated types will take. This is set to 1 byte by default, thereby providing capacity for 256 enumerations. If you exceed the current storage size, by either defining rather a lot of enumeration values (over 256), or, more likely, defining enumeration values exceeding 256, then a larger storage size is used. The $MinEnumSize directive simply defines the minimum number of bytes to use (see the example). Notes $MinEnumSize is equivalent to $Z. It can be set many times in your code. The default value is $MinEnumSize 1. Related commands $Z Sets the minimum storage used to hold enumerated types Example code : Various enum type sizes type {$MinEnumSize 1} TCars1 = (Rover, Jaguar, Honda); // Will fit into 1 byte TFruit1 = (Banana=255, Apple, Pear); // Will exceed one byte {$MinEnumSize 4} TCars2 = (Ford, Nissan, Vauxhall); // Now uses 4 bytes TFruit2 = (Orange=255, Plum, Grape); // Now uses 4 bytes begin ShowMessage('TCars1 size = '+IntToStr(SizeOf(TCars1))); ShowMessage('TFruit1 size = '+IntToStr(SizeOf(TFruit1))); ShowMessage('TCars2 size = '+IntToStr(SizeOf(TCars2))); ShowMessage('TFruit2 size = '+IntToStr(SizeOf(TFruit2))); end; Show full unit code TCars1 size = 1 TFruit1 size = 2 TCars2 size = 4 TFruit2 size = 4