![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Gente, he visto todo lo que me pasaron para lo que necesito, pero igualmente sigo sin resolver el inconveniente.
El problema es que todo lo que dicen es solamente para obtener dle dato del enumerado su nombre. Lo que yo necesito es poder pasarle a una función ese dato que proviene de cualquier enumerado y dentro de la función utilizar cualquiera de las opciones que plantean para poder devolver el nombre del mismo. es decir:
Lo que se hace con el dato del enumerado dentro de la función es algo secundario pues todos me dieron distintas respuestas de como obtener lo que yo necesito. El tema es que nadie me dice como pasar genéricamente el dato del enumerado como parámetro de la función sin necesidad de tener que hacer nada extra antes de usar la función. Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
|
#2
|
||||
|
||||
|
elrayo76,
Cita:
![]() Te comento: 1- No existe en Delphi el equivalente a System.enum de C#, por lo tanto no es posible pasar un parámetro de una función o procedimiento como un tipo enumerado genérico, sin embargo existen los tipos genéricos. 2- Te sugiero revisar el código propuesto en el Msg #12 (tipos genéricos), quizás lo puedas adaptar a tu aplicación. Espero sea útil ![]() Nelson. Última edición por nlsgarcia fecha: 27-06-2015 a las 03:20:37. |
|
#3
|
||||
|
||||
|
Cita:
Es necesario que tu función sea un método, es decir, que esté declarada dentro de una clase o bien dentro de un tipo record, y además tener un parámetro de tipo (es esa letra T que ves entre símbolos de menor y mayor que, en el ejemplo de Nelson). Aprovecha estas nuevas capacidades de Delphi, son precisamente para resolver casos especiales como el tuyo. Saludos.
__________________
Tras casi seis años de trabajar para una empresa alemana como desarrollador Delphi, se vieron forzados a dejarme ir (temas presupuestales). Así que ahora estoy abierto a escuchar nuevas ofertas. |
|
#4
|
||||
|
||||
|
Alberto,
Cita:
![]() Nelson. |
|
#5
|
||||
|
||||
|
Cita:
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)
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. |
|
#6
|
||||
|
||||
|
A las bravas, mira este ejemplo de casting forzado:
Usando el cast de punteros puedes forzar la conversión a cualquier cosa, como en C. Saludos. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Imprimir reporte enumerado no desde 1 | zugazua2001 | Impresión | 1 | 20-04-2009 11:42:02 |
| procedimiento de asignación genérico | gushynet | OOP | 23 | 09-09-2008 10:50:15 |
| Enumerado | Guillermo80 | Varios | 8 | 09-03-2008 18:06:57 |
| enumerado | bosterito | Varios | 3 | 15-01-2007 20:42:53 |
| reporte generico | piyugo | Impresión | 8 | 07-05-2004 18:20:03 |
|