A veces nos interesaría acceder a los componentes a través de un bucle For...Next. Por ejemplo, Button[i].caption:='hola'. Hay quien prefiere hacerlo creando array de controles. Esta bien, pero te obliga a programarlo todo. En este ejemplo, cambiaremos los captions de 5 botones con un bucle.
Pon 5 TButtons en tu form, Button1...Button5
Pon este código en el OnCLick del Button1:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=1 to 5 do
TButton( FindComponent('Button'+IntToStr(i)) ).Caption:='Hola';
end;
|
Otra manera:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=1 to 5 do
(FindComponent('Button'+IntToStr(i)) as TButton).Caption:='Hola';
end;
|
Si los componentes estuvieran en otra form, por ejemplo en la form2:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=1 to 5 do
(Form2.FindComponent('Button'+IntToStr(i)) as TButton).Caption:='Hola';
end;
|
|