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.