Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   objeto dinamicos (https://www.clubdelphi.com/foros/showthread.php?t=65910)

reivaj_bo 21-01-2010 17:50:48

objeto dinamicos
 
Holas, tengo la siguiente duda es posible manejar el nombre de los objetos (identificadores) de forma dinamica para no tener que colocar manualmente me explico:

button1.caption--------------------------------------------- button(variable 1).caption
button2.caption--------------------------------------------- button(variable 2).caption
button3.caption------------------por algo parecido----------- button(variable 3).caption
... ------------------------------------------------------------------...
button(n).caption--------------------------------------------button(variable n).caption

gracias por su ayuda..

delphi.com.ar 21-01-2010 18:03:51

El diseñandor no soporta arrays de componentes, pero puedes hacer dos cosas. La primera es recorrer la lista de componentes de un contenedor preguntando por el tipo de dato, pero si querés algo mas veloz y estático, donde se correspondan los índices con lo esperado, debes definir un array y en el constructor del formulario asignar "a mano" los componentes al array.

Saludos!

rgstuamigo 21-01-2010 18:04:20

Por supuesto que se puede ;). Podrias usar un objeto TObject, que es lo que exactamente hace delphi para manejar algunos eventos de los controles, por ejemplo el evento OnClik de un Boton:
Ejemplo:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
TButton(Sender).Caption:='Hola';//<--Aqui hago un casting a TButton y cambio su propiedad Caption ;)
end;
Saludos...:)

coso 21-01-2010 20:20:55

Hola,
existe la funcion FindComponent, el cual te encuentra un componente por su nombre. Asi, lo anterior podrias resumirlo en algo como

Código Delphi [-]
 
for i := 0 to 10 do
(FindComponent('button' + inttostr(i)) as TButton).Caption := 'Este es el boton ' + inttostr(i);

saludos y a ver si te sirve.


La franja horaria es GMT +2. Ahora son las 01:30:00.

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