Enumérations de portée (Delphi)

De RAD Studio
Aller à : navigation, rechercher

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.

Voir aussi