スコープのある列挙型(Object Pascal)

提供: Appmethod Topics
移動先: 案内検索

Object Pascal コンパイラ指令のリスト:インデックス への移動


スイッチ

構文

{$SCOPEDEUNMS ON} または {$SCOPEDENUMS OFF}

デフォルト

{$SCOPEDENUMS OFF}

範囲

ローカル



詳細情報

$SCOPEDENUMS 指令では Object Pascal コードでスコープのある列挙型の使用を有効(または無効)にします。すなわち、$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 値を明示的に解決できます。

関連項目