FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Uso de codigo dinámico
Buenas, les tengo una pregunta...
Necesito la forma de poder recorrer(iterar) los elementos de un objeto de una clase creada por mi y poder asignarles valores en forma dinamica. Yo he vuelto de VB y lo hacia de esta forma Código:
public sub Asignar(pObjeto as TCliente) for each mPropiedad as Object in pObjeto.Gettype.PropertyList callbyname(pObjeto, mPropiedad.Name, "Juan Perez") next end sub Y como recorrer todas las propiedades . Y si es posible un ejemplo. Se entiende? Les agradezco de antemano, saludos Eduardo Última edición por dec fecha: 12-11-2005 a las 23:41:39. Razón: ¡¡Encerrad el código fuente entre las etiquetas [CODE] ... [/CODE]!! |
#2
|
|||
|
|||
Alguna idea?? pliss
|
#3
|
||||
|
||||
Es un tema que salió hace unos días en los foros (y algunas otras veces anteriormente); Lo que necesitas se puede hacer vía RTTI.
En éste truco tienes el código para obtener todas las propiedades de un componente y cómo asignarles un valor a partir del nombre. De todas formas busca información sobre RTTI por internet y encontrarás más opciones.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
||||
|
||||
http://www.clubdelphi.com/foros/show...hlight=typinfo
Despues de leer en ese hilo, ya podrás buscar por el foro por cosas más concretas. saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#5
|
|||
|
|||
No quiere...
Probe el código y funciona perfectamente para componentes pero lo necesito para objetos creados de clases hechas por mi.
Tambien probe con las funciones de TypInfo, pero creo los objetos bien y cuando le voy a asignar cualquier propiedad, me dice q la propiedad no fue encontrada, debe la clase heredar o implementar alguna interfase? Ejemplo: Teniendo las siguientes clases TPaciente = Class Nombre : String; end; TMate = Class TieneBombilla : boolean; end; Necesito algo asi: function AsignarPropiedad(pObjeto : TObject; pPropiedad: String; pValor:TObject); begin pObjeto.pPropiedad := pValor; //eso como se hace???? end; y correrlo de la siguiente forma: begin Mate := TMate.Create; //para mate AsignarPropiedad(Mate, 'TieneBombilla', 0); Pacietne := TPaciente.Create; AsignarPropiedad(Paciente, 'Nombre', 'Pablito'); end; Muchas gracias y los felicito por la calidad del soporte y la calidad de las respuestas. Saludos! |
#6
|
||||
|
||||
Hola edalmasso, no entiendo por que repetir aqui el mismo mensaje ya publicado por vos en este otro hilo
Te invito a elegir uno de los dos hilos para que permanezca tu mensaje y borrar el que no salga favorecido. En todo caso, si los dos hilos tienen relación, crear un vínculo entre ellos. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#7
|
|||
|
|||
Este es el q queda, me confundi y lo repondi primero en el otro hilo
Saludos |
#8
|
||||
|
||||
Cita:
Si tienes propiedaes de tus clases definidas como public, pásalas a published y con eso será suficiente.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
|
|