Programowanie w języku Delphi

$SCOPEDENUMS

  • 2016-06-15 14:09
  • 0 komentarzy
  • 271 odsłon
  • Oceń ten tekst jako pierwszy
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