![]() |
Asignar dinámicamente valores a propiedades sin conocer previamente cuáles
Hola amigos:
Necesito leer datos de un XML de configuración que contiene básicamente la siguiente estructura: <parametros> <edPuerto> <Text>80</Text> ... ... </edPuerto> ... ...</parametros> El tag "edPuerto" es de un tipo TEdit en la aplicación y el nodo hijo "Text" es la propiedad que necesito asignar. Al ejecutarse, la app leerá el archivo de configuración XML y asignará el valor "80" a la propiedad "Text" de "edPuerto". Se podrían ir añadiendo propiedades al XML y la idea es asignar aquellas propiedades que se definan en el archivo de configuración. ¿Cómo lo puedo hacer? Muchas gracias de antemano. |
Si estás trabajando con Delphi 2010 o superior, puedes hacerlo fácilmente usando la unit RTTI, mediante el objeto TRttiContext. Busca en google más info sobre éste y encontrarás mucha información sobre él, cómo leer / escribir propiedades por nombre, etc...
Por ejemplo:
Sólo deberás tener cuidado con el tipo de la propiedad. Si es string, deberás pasarle un string a value, si es int, deberás pasarle un int, etc... Si estás trabajando con una versión anterior, la cosa se complica un poco, pero sigue siendo posible. Google te lanzará mucha información si buscas "RTTI". En cuanto a encontrar componentes en un form, simplemente sería haciendo Un saludo, LoPiTaL |
Hola.
Con Delphi 7 y superior podrías hacer algo como:
Ejemplo de uso:
Saludos. |
Hola amigos,
Gracias por su respuesta. Estoy usando Delphi 2010. Lo voy a probar y les cuento cómo me fue. Saludos. |
Gracias LoPiTaL y ecfisa. Los ejemplos que me han pasado me han funcionado super bien.
Saludos |
La franja horaria es GMT +2. Ahora son las 22:05:53. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi