Ver Mensaje Individual
  #19  
Antiguo 27-06-2015
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Cita:
Empezado por elrayo76
El tema es que nadie me dice como...
El tema es que no se puede porque has/han complicado tanto las cosas que ahora estás en un callejón sin salida. El problema es por un mal diseño de los tipos, no por el lenguaje. Delphi es así para obligarte a pensar las cosas bien desde un principio. Todo ordenado y cada animal en su jaula.

El hecho de tener un Tipo de Datos (piensa en un "Tipo" como si fueran jaulas de distinto tamaño para distintos animales) y ahora quieres meter un Elefante en la jaula de una tortuga [...]. Eso es la señal que estás haciendo las cosas mal. Lo siento, toca pensar las cosas de nuevo.

En C++ no hay "tamaños de jaulas", agrandas la jaula a voluntad y la disminuyes sobre la marcha...eah! todo junto y revuelto . Y esto mismo es lo que evita Delphi por el fuerte tipificado de datos. Te obliga a separar churras (TEnum1) de meninas (TEnum2).

¿te das cuenta que tienes la solución con un simple número entero y descripción? Así como se hacía en los años 80:
- del 0 al 100 son errores de base de datos (TEnum1)
- del 101 al 200 son errores de memoria (TEnum2)

Código Delphi [-]
procedure ( Enum : integer);
begin 
//  con un array de string donde el indice es el parámetro Enum, 
// y el texto es el otro valor que quieres, lo tienes solucionado
end;

Pero no, quieres tener 2 tipos de datos (que al final son números enteros de 0 hasta 255) para después, por técnicas complejas (como RunTime Type Information), volver a tener el nombre/texto de ese valor... WTF!! o mejor dicho: KISS (Keep It Simple Stupid!)


Todo esto viene porque los requerimientos que estás pidiendo, fuerzan a cambiar las especificaciones iniciales. YA No necesitas un Tipo enumerado, quizás una clase que tenga dos cosas como "código de error" y "Descripción", o quizás "valor" y "clase de error" ... Incluso puede que sirva un "Array de record"

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita