![]() |
![]() |
| 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
|
||||
|
||||
|
El enunciado y código de la pregunta parece orientado a C++ luego esta es la respuesta correcta.
En realidad un Template expande las funciones para cada clase, el programador escribe una función y el compilador escribe tantas como sean necesarias. Saludos. |
|
#2
|
|||
|
|||
|
Para ver si con esto me pueden ayudar.
Lo que quiero hacer es poder obtener el nombre del dato del enumerado que se le pasa como parámetro a la función y no el valor del mismo. Se que con GetEnumName() se obtiene el nombre, pero lo que me falta es poder pasar genéricamente los enumerados para no tener que hacer cada vez que lo necesite una nueva función por cada enumerado. Lo que haria es tener en los enumerados como cada uno de los datos los nombres de los campos de las tablas y pasarlos a una función para armar una sentencia SQL para la parte del Where. Esto además de otros datos que recibirá la función en cuestión. Si lo pensamos abría que escribir la misma funcón para cada una de las tablas y eso es lo que no quiero hacer. Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
|
#3
|
||||
|
||||
|
En ese caso, creo que la opción del método con parámetro de tipo sería lo más indicado. Aplicando la función TypeInfo sobre T para obtener el PTypeInfo que GetEnumName necesita.
![]() |
|
#4
|
|||
|
|||
|
Gracias gente por sus respuestas...
Veré de hacerlo usando el TypeInfo. Si llego a lograr algo les comentare que solución le dí por si a alguien le puede servir. Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
|
#5
|
||||
|
||||
|
elrayo76,
Cita:
Cita:
Cita:
Cita:
![]() Revisa este código: El código anterior en Delphi XE7 sobre Windows 7 x32, Permite obtener el nombre y valor de un tipo enumerado por medio de un tipo genérico, como se muestra en la siguiente imagen: ![]() Notas: 1- El código esta basado en un ejemplo del Capítulo 3 (Understanding Generics) del libro Coding in Delphi de Nick Hodges. 2- Los tipos genéricos en Delphi no cuentan por el momento de un constraint que verifique que el tipo pasado corresponda a un tipo enumerado. 3- Hasta donde entiendo, no existe en Delphi el equivalente a System.enum de C#. 4- El código propuesto fue probado en Delphi XE4 bajo Windows 7 Professional x64, funcionando correctamente según lo esperado. 5- Si se le asignan valores a la enumeración, el método TEnum.AsInteger< T > falla, funciona correctamente con los valores por default de la enumeración. Espero sea útil ![]() Nelson. Última edición por nlsgarcia fecha: 15-06-2015 a las 17:46:14. |
|
#6
|
||||
|
||||
|
De nada, elrayo76.
El ejemplo de Nelson me parece excelente, creo que es exactamente lo que necesitas. ![]() Cabe agregar que Antonio Castillo escribió un artículo muy relacionado con esto a principios del año anterior. Ambas aportaciones me parecen muy valiosas. Saludos. |
|
#7
|
||||
|
||||
|
Hola.
Leyendo un poco sobre la cuestión, encontre esta información delphi - how to get type of enum y al parecer hay limitantes con el uso de genericos y enumerados. Según menciona el segundo mensaje del enlace, no se puede obtener información de tipo mediante TTypeInfo cuando las enumeraciones son discontinuas o no comienzan en cero. Sería interesante que quien tuviera una versión que soporte el uso de generics verificara dicha aserción. Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
![]() |
| 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 |
|