Enumérations de portée (Delphi)
Remonter à Liste des directives de compilation Delphi - Index
Type |
Commutateur |
Syntaxe |
{$SCOPEDENUMS ON} ou {$SCOPEDENUMS OFF} |
Par défaut |
{$SCOPEDENUMS OFF} |
Portée |
Locale |
Remarques
La directive $SCOPEDENUMS active ou désactive l'utilisation des énumérations de portée dans le code Delphi. Plus particulièrement, $SCOPEDENUMS affecte seulement les définitions des nouvelles énumérations, et contrôle seulement l'addition des symboles de valeur de l'énumération à la portée globale.
Dans l'état {$SCOPEDENUMS ON}, les énumérations sont des énumérations de portée et les valeurs des énumérations ne sont pas ajoutées à la portée globale. Pour spécifier un membre d'une énumération de portée, vous devez inclure le type de l'énumération. Par exemple :
type TFoo = (A, B, Foo); {$SCOPEDENUMS ON} TBar = (A, B, Bar); {$SCOPEDENUMS OFF} begin Writeln(Integer(Foo)); Writeln(Integer(A)); // TFoo.A Writeln(Integer(TBar.B)); Writeln(Integer(TBar.Bar)); Writeln(Integer(Bar)); // Erreur end;
Sachez que ceci est aussi valide :
Writeln(Integer(TFoo.A));
Bien que TFoo n'a pas été déclaré avec $SCOPEDENUMS ON, la valeur A peut toujours être explicitement résolue en utilisant le nom de l'énumération.