Delphi - espero que me entiendan

 
Vista:

espero que me entiendan

Publicado por Sonia (5 intervenciones) el 12/02/2003 21:14:21
Como puedo hacer para cambiar la propiedad name de los componentes en tiempo de ejecucion?

yo que no existe este codigo pero mas o menos para que me entiendan quiero hacer algo asi

por ejm teniendo un 3 botones.. que se llaman. button1, button2, button3

deseo cambiarle el caption....

button(1).caption:=\'que va\';

como un array.. visual basic tiene ese.. pero en delphi no se como hacerlo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:espero que me entiendan

Publicado por Diego Romero (636 intervenciones) el 13/02/2003 02:03:50
Prueba esto:
for i:=0 to ComponentCount - 1 do
if (Components[i] is TButton) then (Components[i] as TButton).Caption:='Nuevo Caption';

Y no, no puedes cambiar la propiedad Name de un componente en tiempo de ejecución, equivaldría a prentender cambiarle el nombre a una variable en tiempo de ejecución.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:espero que me entiendan

Publicado por Sonia (5 intervenciones) el 13/02/2003 12:49:18
Muchas gracias Dieguito.. un beso
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

La ultima

Publicado por Sonia Caldera (3 intervenciones) el 13/02/2003 13:05:34
Hola diego el codigo que me diste esta a la perfeccion..a hora te pido al ultima ayuda
Como haria si yo quiero cambiar el caption de esos botones.. pero desde otro formulario

frmForm1.(Components[2] as TButton).caption:='Caption';

de esa forma no funciona .. como seria????
disculpa por ser tan ignorante, pero recien comienzo a programar :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:La ultima

Publicado por Diego Romero (636 intervenciones) el 13/02/2003 17:03:59
A ver...
procedure TForm2.CambiarCaptionsDelOtroFormulario;
var
i:Integer;
begin
For i:=0 to Form1.ComponentCount - 1 do
if (Form1.Components[i] is TButton) then (Form1.Components[i] as TButton).Caption:='Este es el nuevo Caption';
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Me da un error

Publicado por Sonia Caldera (3 intervenciones) el 14/02/2003 05:25:22
Hola diego disculpa que te moleste.. pero me aparece un error
"Invalid type class"

Mira lo que pasa es que suponte que el componente que quiero cambiar el caption es u tspeedbutton.. ese estaria en el form1..
y lo cambio de acuerdo a tu codigo desde el form2.. en ese form o sea el form2 no esta el tspeedbutton.. podra ser ese el error?

te aviso.. por ahi quizas eso este mal
al procedure ese lo declare en private
Private
Procedure cambiarcaption;

y luego lo llamo

procedure TForm2.Button1Click(Sender: TObject);
begin
CambiarCaptionsDelOtroFormulario;
end;

y bueno me aparece ese error..
por fis.. ayuda

y gracias por tu tiempo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Listo!!! lo solucione!!!

Publicado por Sonia (5 intervenciones) el 14/02/2003 05:32:23
Hola diego.. ya lo solucione.. solo tenia que pensar un poquito..
bueno un besoo y gracias por tu tiempo...

bueno recorda este nombre asi seas mi angel de la programacion (guarda) jejeje muackk thank!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar