$SCOPEDENUMS
woolfik
Składnia: | `{$SCOPEDENUMS OFF}` lub `{$SCOPEDENUMS ON}` |
Wartość domyślna: | `{$SCOPEDENUMS OFF}` |
Dyrektywa umożliwia włączenie lub wyłączenie wymuszenia podania nazwy typu przed jego wartością.
Dokładniej, {$SCOPEDENUMS OFF}
dotyczy tylko definicji typów wyliczeniowych i kontroluje dodanie nazwy typu przed wartością typu wyliczeniowego w zasięgu globalnym.
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)); // Tu podczas kompilacji pojawi się wyjątek E2003 Undeclared identifier: 'Bar'
end;
Mimo, iż w powyższym przykładzie TFoo zostało zdefiniowane bez dyrektywy {$SCOPEDENUMS ON}
wywołanie WriteLn(Integer(TFoo.A))
również jest dopuszczalne