This is awesome! It can be defined outside of class, too:   type THTMLType = (htTemplate, htStatic, htHeader, htCustom); TGEnums = class type HTML = THTMLType; end; procedure DoIt(aHtml: TGEnums.HTML); begin end; procedure TForm2.FormCreate(Sender: TObject); var x: TGEnums.HTML; begin x := TGEnums.HTML.htTemplate; DoIt(x); DoIt(TGEnums.HTML.htTemplate); end;