Enum Type/fr
│
Deutsch (de) │
English (en) │
français (fr) │
Plage de valeurs:
Celle d'un Longword.
Besoins en mémoire:
par défaut, un énuméré est stocké dans un Longword et nécessite 4 octets.
Mais en fonction de la bascule {$PACKENUM x} (abrégée {$Zx}) et de la plage de valeur du type de données, elle peut être ajustée.
Valeur maximale de l'énuméré | <= 255 | <= 65535 | > 65535 |
aucune bascule ou {$PACKENUM DEFAULT} ou {$PACKENUM 4} ou {$Z4} |
4 | 4 | 4 |
{$PACKENUM 2} ou {$Z2} | 2 | 2 | 4 |
{$PACKENUM 1} ou {$Z1} | 1 | 2 | 4 |
On note immédiatement que, par défaut, le compilateur ne cherche pas à optimiser l'occupation mémoire.
Propriétés:
Les données de type Enum type sont une énumération d'entiers non signés constantes.
Par défaut, la valeur d'une des constantes énumérées est égale à celle de la précédente augmentée de 1, la première vaut 0.
Type
{$PACKENUM 2}
LargeEnum = (Null, Eins, Zwei);
Il est possible de donner une autre valeur à l'une des constantes, les suivantes poursuivent alors l'incrémentation à partir de cette valeur.
Type
{$PACKENUM 4}
SmallEnum = (Sechs := 6, Sieben, Acht);
Type
{$PACKENUM 1}
MiddleEnum = (Null, Zehn := 10, Elf, Zwoelf);
Avertissement: Dans une telle énumération, l'emploi de Succ et Pred n'est plus permis, le compilateur signale une erreur.
Exemples d'affectation de valeurs du type Enum:
Var
S : SmallEnum;
M : MiddleEnum;
L : LargeEnum;
Exemples de conversion d'Enum en autre de type de donnée:
Application.MessageBox(PChar(IntToStr(Qword(Ord(Sechs)))),'Konvertierung',MB_OK);
Application.MessageBox(PChar(IntToStr(Qword(Ord(S.Sechs)))),'Konvertierung',MB_OK);