TODOPIC

Lenguajes de programación para PC => Delphi => Mensaje iniciado por: Rseliman en 13 de Enero de 2019, 15:21:38

Título: Label[1].caption , label[2].caption etc etc
Publicado por: Rseliman en 13 de Enero de 2019, 15:21:38
Hola a todos , seguramente a muchos les paso que tienen que definir muchos labels los cuales son todos correlativos , y es tedioso cuando se trata de 50 por ejemplo ..la pregunta es la siguiente

como puedo hacer esto ??
Código: [Seleccionar]
for x:= 1 to 50 do
label[x].caption := label[x+1].caption;
Muchas gracias
Título: Re:Label[1].caption , label[2].caption etc etc
Publicado por: miquel en 13 de Enero de 2019, 17:22:13
Prueba con este código, coloca en el caption de cada Label el número de control que tiene dentro de la Form.
No sé si es esto lo que querías hacer.


procedure TForm1.BitBtn1Click(Sender: TObject);
var
  Cnt:integer;
begin
for Cnt := 0 to ControlCount -1 do
   begin
   if Controls[Cnt] is TLabel then
      begin
      TLabel(Components[Cnt]).Caption:='Label '+inttostr(Cnt);
      end;
   end;
end;

Saludos,

Miquel

Título: Re:Label[1].caption , label[2].caption etc etc
Publicado por: Rseliman en 13 de Enero de 2019, 17:28:51
Prueba con este código, coloca en el caption de cada Label el número de control que tiene dentro de la Form.
No sé si es esto lo que querías hacer.


procedure TForm1.BitBtn1Click(Sender: TObject);
var
  Cnt:integer;
begin
for Cnt := 0 to ControlCount -1 do
   begin
   if Controls[Cnt] is TLabel then
      begin
      TLabel(Components[Cnt]).Caption:='Label '+inttostr(Cnt);
      end;
   end;
end;

Saludos,

Miquel


Antes que nada ..mil gracias por laa respuesta , ahi arregle el codigo estaba mal puesto , lo que pretendo es hacer que un label sea igual al siguiente y este al siguiente y asi sucecivamente hasta 30 en mi caso o sea que con cada pulsacion cambie el .caption premero por el segundo , el segundo por el tercero , etc hasta el 30

Código: [Seleccionar]
//Unitlcd.Form2.BCLabel10.Caption := Unitlcd.Form2.BCLabel9.Caption;
         //Unitlcd.Form2.BCLabel9.Caption := Unitlcd.Form2.BCLabel8.Caption;
         //Unitlcd.Form2.BCLabel8.Caption := Unitlcd.Form2.BCLabel7.Caption;
         //Unitlcd.Form2.BCLabel7.Caption := Unitlcd.Form2.BCLabel6.Caption;
         //Unitlcd.Form2.BCLabel6.Caption := Unitlcd.Form2.BCLabel5.Caption;
         //Unitlcd.Form2.BCLabel5.Caption := Unitlcd.Form2.BCLabel4.Caption;
         //Unitlcd.Form2.BCLabel4.Caption := Unitlcd.Form2.BCLabel3.Caption;
         //Unitlcd.Form2.BCLabel3.Caption := Unitlcd.Form2.BCLabel2.Caption;
         //Unitlcd.Form2.BCLabel2.Caption := Unitlcd.Form2.BCLabel1.Caption;


Mil Gracias voy a ver si entiendo lo que escribiste

Título: Re:Label[1].caption , label[2].caption etc etc
Publicado por: Rseliman en 13 de Enero de 2019, 17:37:34
Prueba con este código, coloca en el caption de cada Label el número de control que tiene dentro de la Form.
No sé si es esto lo que querías hacer.


procedure TForm1.BitBtn1Click(Sender: TObject);
var
  Cnt:integer;
begin
for Cnt := 0 to ControlCount -1 do
   begin
   if Controls[Cnt] is TLabel then
      begin
      TLabel(Components[Cnt]).Caption:='Label '+inttostr(Cnt);
      end;
   end;
end;

Saludos,

Miquel



Estimado Miguel , lo solucione de la siguiente manera ...y funciona ...mil gracias

Código: [Seleccionar]
for i := 10 downto 2 do TBCMaterialDesignButton( UnitLcd.Form2.FindComponent('BCLabel'+IntToStr(i)) ).Caption:= TBCMaterialDesignButton(UnitLcd.Form2.findcomponent('BCLabel'+IntToStr(i-1)) ).Caption ;