FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
nombre de variables de una clase
Hola a todos, mi pregunta de hoy es la siguiente, tengo una clase que define algunas variables por ejemplo FNombre, Nombre lo tengo en una variable del tipo string, y lo que necesito hacer es poder formar 'F' + Nombre y que lo tome como la variable, para poder asignarle un valor. Es posible hacer esto?
Gracias a todos. |
#2
|
||||
|
||||
Si en lugar de variable lo defines comno una propiedad published podrás hacerlo utilizando RTTI.
En la Unit TypInfo (al menos en Delphi6) tienes unas cuantas rutinas, entre ellas ésta que te pueden ser útiles: procedure SetStrProp(Instance: TObject; const PropName: string; const Value: string); overload; Revisa éste hilo: http://www.clubdelphi.com/foros/show...highlight=rtti
__________________
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. |
#3
|
|||
|
|||
Gracias Neftali por tu ayuda, el hilo que me recomendas es lo que me habias contestado en otra oportunidad y me sirvio. pero este no es el caso.
Lo que necesito, y tal vez no lo detalle bien, es formar el nombre de una variable en un string, y luego que ese string sea entendido como la variable a la cual le puedo asignar un valor. por ejemplo: tengo una varible: FXX d:='XX'; 'F'+d ---> que sea la variable se entiende? |
#4
|
||||
|
||||
Convendría que explicaras un poco más lo que deseas hacer, dar un poco de contexto. Hay que recordar que Delphi, a diferencia de VB, no es un lenguaje interpretado por lo que, normalmente, cosas como la que buscas no se pueden hacer. En algunas situaciones se puede usar RTTI tal como te sugiere Neftali, pero en general no es algo que se pueda. El nombre de una variable es sólo válido para la escritura del código. El compilador cambiará todos esos nombres por referencias numéricas o direcciones de memoria.
Pero si contextualizas tu duda, es muy posible que alguien te pueda indicar alguna alternativa viable. // Saludos |
#5
|
||||
|
||||
Hola,
A mí se me ocurre a bote pronto que podría hacerse, pero, tal como te han comentado Neftali y roman. Lo que me intriga es saber el por qué es necesario... quiero cómo has llegado a la conclusión de que tienes que logar algo así, qué sentido tiene, bueno, que me harías muy feliz. |
#6
|
||||
|
||||
Sí lo he entendido, pero sólo se puede hacer con propiedades Published o con componentes, pero no con variables.
Otra opción es usar algun sistema de Scripts en Delphi, pero no estoy seguro de que sea eso lo que necesitas. ¿Exactamente qué tienes que hacer luego con esa variable?
__________________
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. |
#7
|
|||
|
|||
Yo una vez tuve que hacerlo
recuerdo hace como quince años utilizaba FoxPro y si mal no recuerdo ponías algún caracter que interpretaba el string como un nombre de variable. En mi experiencia en Delphi he pasado por algunas veces en que me ha parecido útil (por lo menos me ahorraría mucho código) y siempre pensé que no se podía hacer.
X ej. en mi caso (usando Delphi), hace un tiempo hice un software de instrumentación donde se mantenían y modificaban (en memoria) unas 20 actividades (variables activ1,activ2...etc.) sobre un instrumento físico, en las que uno podia actualizar el valor independientemente de cada una (es medio complejo de explicar). Finalmente esos datos terminaban en una base de datos. El caso era que si la actividad que cambiaba era activ1, todas las demas tomaban también su valor. En ese caso hubiera sido útil modificarlas todas juntas con un for... next. Como esto además se reiteraba con varios "asuntos" en el programa. Al final opté por trabajar directamente sobre tablas de la base de datos, que es lo que yo recomendaría. Lo que le puedo decir a Mariana es que si trabaja cobre campos de una tabla sí se puede hacer ya que utilizando: Tabla1.FieldValues['campo1'] los campos se ponen como un String y se aceptan variables de tipo string entre los paréntesis. |
#8
|
|||
|
|||
Gracias a todos, es como dice Neftali son variables privadas de la clase y no se puede formar el nombre, la intención era esa ya que en la BD tengo el nombre sin la F, y luego poder asignarles valor.
Nuevamente gracias a todos |
|
|
|