スコープのある列挙型(Delphi)
Delphi コンパイラ指令のリスト:インデックス への移動
型 |
スイッチ |
構文 |
{$SCOPEDENUMS ON} または {$SCOPEDENUMS OFF} |
デフォルト |
{$SCOPEDENUMS OFF} |
範囲 |
ローカル |
詳細情報
$SCOPEDENUMS 指令では Delphi コードでスコープのある列挙型の使用を有効(または無効)にします。すなわち、$SCOPEDENUMS は新しい列挙型の定義だけに影響し、列挙型の値シンボルをグローバル スコープに追加することだけを制御します。
{$SCOPEDENUMS ON} 状態では、列挙型にスコープがあり、列挙型の値はグローバル スコープに追加されません。スコープのある列挙型のメンバを指定するには、列挙型を追加して指定する必要があります。次に例を示します。
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)); // エラー end;
次の場合も有効であることに注意してください。
Writeln(Integer(TFoo.A));
TFoo が $SCOPEDENUMS ON で宣言されていない場合でも、列挙型名を指定して A 値を明示的に解決できます。