반응형
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, typinfo, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TNumberType = (Zero, One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten);
var
Form1: TForm1;
implementation
{$R *.DFM}
function NumberName(Numb: TNumberType): String;
begin
// 컴파일러에 의해 생성된 run-time type information 을 읽는다
Result := GetEnumName(TypeInfo(TNumberType), Ord(Numb));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(NumberName(Seven));
// TNumberType은 내부적으로 0 ~ 10 으로 처리됨
ShowMessage(NumberName(TNumberType(0))); // type casting
end;
end.
반응형