Buenas, tengo una duda curiosa...
No estoy muy familiarizado con estas nuevas características helpers y me asalta la duda. Trato de leer sobre el tema, y se que es posible hacer un record helper para un enumerativo, y gracias a éste implementar un método como ToString() o ToChar() para tener una representación "texto" del tipo en cuestión:
TMiEnum = (meUno, meDos, ....); TMiEnumHelper = record Helper for TMiEnum function ToChar: char; end; function TMiEnumHelper.Tochar: char begin case Self of meUno: result := 'U'; meDos: result := 'D'; // ... end;
Entonces con esto es posible esta gracia:
procedure MostrarTextoEnum; var MiEnum: TMiEnum; begin MiEnum := meUno; ShowMessage(MiEnum.ToChar); end;
Ahora bien. Si yo quisiera (y necesitara) hacer lo inverso, ¿Es posible? Es decir, dado un carácter, texto, o un número entero si se quiere, ¿Es posible obtener el tipo enumerativo correspondiente? ¿O necesariamente debe recurrirse a la vieja escuela?
No se, imaginaba algo como esto:
MiEnum := TMiEnumHelper.ToEnum('U');
Pero como que parece algo raro... no encuentro una bibliografía que me aclare dudas. De si es "legal" esta vía o no.
Esto me lo pregunto porque justamente tengo unos tipos enumerativos y guardo en la base de datos una versión numerica o char de los mismos. Al momento de recuperar este valor me resultaría de interés materializar el tipo enumerativo.
Y justamente la idea es que ya que existen los helper pues... evitarme una función CharToEnum "suelta" a la vieja escuela.
Saludos,