본문 바로가기

Delphi/간단하게

간단하게 Helper로 Enumerated Types 맘대로 변환하기

사용할 Enum Type을 만듭니다.

type
  TMyType = (mtType1, mtType2, mtType3);

 

TMyType의 Helper를 만들어줍니다.

type
  TMyTypeHelper = record Helper for TMyType
    function ToIndex: Integer; inline;
    function ToName: string;
  end;

implementation

{ TMyTypeHelper }

function TMyTypeHelper.ToIndex: Integer;
begin
  Result := Integer(Self);
end;

function TMyTypeHelper.ToName: string;
const
  arrMyType: array[TMyType] of string = ('타입1', '타입2', '타입3');
begin
  case Self of
    mtType1: Result := '타입1';
    mtType2: Result := '타입2';
    mtType3: Result := '타입3';
  end;
  
  //또는 열거형의 index가 순차적일 경우
  Result := arrMyType[Self];
end;

 

사용법

var
  MyType: TMyType;
begin
  MyType := mtType1;

  ShowMessage(MyType.ToName);
  ShowMessage(TMyType.mtType2.ToName);
  ShowMessage(MyType.ToIndex.ToString);
end;
반응형