Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-02-2010
ricardo_soria ricardo_soria is offline
Registrado
 
Registrado: mar 2007
Posts: 5
Poder: 0
ricardo_soria Va por buen camino
Reemplazar variable por su contenido

Estimados amigos:

Agradecería mucho a quien me pueda ayudar con el siguiente tema: ¿cómo reemplazar el nombre de una variable por su contenido, dentro del código fuente? Me explico, tengo una variable tipo string, dentro de la cual armo una cadena con el nombre de un componente, digamos:

Código:
.
.
.
var c: string;
.
.
.
c:='Label5';
.
.
.
Y lo que necesito hacer posteriormente es reemplazar c por su contenido, o sea 'Label5' para acceder a su vez a su propiedad caption, o sea lo que normalmente sería:

Código:
Label5.Caption := 'Hola...';
Pero son diferentes componentes y propiedades lo que habrá que ir cambiando cada vez, por tanto, en la variable c pongo primeramente el nombre del componente, y luego, deseo acceder a las propiedades del mismo, pero a través de la variable c, algo como:

Código:
c.Caption := 'Hola...';
Lo cual, desde luego es incorrecto, pero recuerdo que existe alguna forma de indicar que hay que reemplazar la variable por su contenido, en este caso, reemplazar c por Label5, tal vez es mediante directivas del compilador, no estoy seguro.

Espero que alguien me pueda ayudar con este tema. De antemano, muy agradecido...

Saludos,
Responder Con Cita
  #2  
Antiguo 23-02-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo entender que lo que quieres es algo así como:

Código:
TLabel(c).Caption := 'loquesea';
Aunque no recuerdo si eso funciona, la verdad.

Seguramente será mejor con FindComponent
Responder Con Cita
  #3  
Antiguo 23-02-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Se a que te refieres... por lo menos en php es facil de hacer...
Código Delphi [-]
  $var_name = "var";
  $$var_name = "Hola, Mundo!";
  echo $var; // imprime "Hola, Mundo"

En delphi, esto no lo puedes hacer (hasta donde se). lo que debes hacer, es crear una variable cuyo tipo de dato sea TLabel y asignar el objeto que quieres trabajar a esa variable. ( estoy hablando burradas? - por eso no posteo casi )

Código Delphi [-]
var
  aLabel : TLabel;

un pequeño ejemplo

Código Delphi [-]
procedure cambiartextoalaetiqueta(aLabel : TLabel, Texto : String);
begin
  aLabel.Caption := Texto;
end;
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #4  
Antiguo 23-02-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Creo entender que lo que quieres es algo así como:

Código:
TLabel(c).Caption := 'loquesea';
Aunque no recuerdo si eso funciona, la verdad.
Eso no funciona amiguito.

Ricardo, como te dice Casimiro debes utilizar FindComponent:

Código Delphi [-]
var
 c : String;
 Labels : TComponent;
begin
 c:='Label5';
 
 Labels := Findcomponent(c);
 if Assigned(Labels) then
  TLabel(Labels).Caption := 'Hola....';

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 23-02-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por movorack Ver Mensaje
[..]
En delphi, esto no lo puedes hacer (hasta donde se). lo que debes hacer, es crear una variable cuyo tipo de dato sea TLabel y asignar el objeto que quieres trabajar a esa variable. ( estoy hablando burradas? - por eso no posteo casi )[..]
¿Quién nace sabiendo?, nadie

La mayoría de las cosas yo no las recuerdo de memoria, casi siempre tengo que estar antes buscando mis apuntes/documentos, tampoco vayas a creer que aquí somos sabios (algunos sí que hay, sí)
Responder Con Cita
  #6  
Antiguo 23-02-2010
ricardo_soria ricardo_soria is offline
Registrado
 
Registrado: mar 2007
Posts: 5
Poder: 0
ricardo_soria Va por buen camino
Muchas Gracias!

Estimados amigos:

Muchas gracias a todos por sus respuestas y su ayuda. He probado lo de FindComponent, y funciona a la perfección.

De nuevo,

Muchas gracias!

Saludos a todos...
Responder Con Cita
  #7  
Antiguo 23-02-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Quién nace sabiendo?, nadie ... tampoco vayas a creer que aquí somos sabios (algunos sí que hay, sí)


Es que me siento ensanduchao!.... ya no tengo las dudas básicas de cuando empecé a desarrollar en delphi y cuando tengo alguna duda se como buscar en todos los recursos que pueda por tal razón no pregunto casi...

Pero tampoco se como responder y si depronto tengo idea... espero a ver las respuestas de alguno de ustedes para ver si "estaba en lo correcto"... aveces si... la mayoria de las veces aprendo mas.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #8  
Antiguo 23-02-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por movorack Ver Mensaje
[..]Pero tampoco se como responder y si depronto tengo idea... espero a ver las respuestas de alguno de ustedes para ver si "estaba en lo correcto"... aveces si... la mayoria de las veces aprendo mas.
A mí me pasaba lo mismo, me daba miedo responder por si me equivocaba, hasta que un día empecé a contestar algunas preguntas de las facilitas y así poco a poco, hasta ahora, que también hago como tú, cuando no estoy muy seguro lo que hago es esperar que algún "experto" conteste y listo, porque mis conocimientos son bastante escasos, a mí que no me saquen de las motos, de otra cosa no sé


Por cierto, 'ensanduchao', ¿eso qué es?
Responder Con Cita
  #9  
Antiguo 23-02-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Por cierto, 'ensanduchao', ¿eso qué es?
Ensanduchao! > Ensanduchado > Estar en un sanduche, sentirse en medio de algo... costeño alfin...
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Mostrar el contenido de una variable en un MessageBox tebre Varios 9 19-01-2013 12:25:40
Impresion de Contenido Variable luxus Impresión 1 18-09-2008 00:53:05
Reemplazar el contenido de un fichero Urticaria Varios 5 04-10-2006 16:40:18
Contenido de una select a una variable fjcg02 MS SQL Server 2 03-10-2005 21:23:13
reemplazar variable en richedit Ricardo Alfredo Varios 2 31-08-2004 04:23:46


La franja horaria es GMT +2. Ahora son las 11:33:15.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi