Eventualmente é necessário converter um tipo enumerado para string.
Dai você provavelmente pensaria em um código mais ou menos assim:
type TMeuTipo = (mtOpcao1, mtOpcao2) function Converter(peOpcao: TMeuTipo): string; begin case peOpcao of mtOpcao1 : Result := 'mtOpcao1'; //E assim sucessivamente... end; end;
Imagine os problemas de manutenção para falar o mínimo...
Ao invés disso, use a RTTI a seu favor:
uses TypInfo; type TMeuTipo = (mtOpcao1, mtOpcao2) function Converter(peOpcao: TMeuTipo): string; begin //GetEnumName é a solução! Result := GetEnumName(TypeInfo(TMeuTipo),Ord(peOpcao)); end;
P.S.: Um ótimo artigo sobre este assunto:
http://www.techtricks.com/delphi/enumname.php