Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Duda existencial (https://www.clubdelphi.com/foros/showthread.php?t=35955)

MaMu 27-09-2006 08:44:26

Duda existencial
 
Hola, tengo una duda existencial, a ver si me logro explicar bien

Yo tengo un Form, con 10 Label, que van de Label1 a Label10 respectivamente, hay alguna forma en la que yo pueda asignar el caption a todas ellas en un solo procedimiento? pongo un ejemplo:

Código:

procedure RellenaCaptions(Texto:string);
var n:integer;
begin
 for n:=1 to 10 do
  Label[n].caption:=Texto;
 end;
end;

Ya que, podria hacer lo siguiente

Código:

procedure RellenaCaptions(Texto:string);
var n:integer;
begin
 for n:=1 to 10 do
  TLabel(components[n]).caption:=Texto;
 end;
end;

Y lo tendria resuelto, pero mi problema es que, los Labels estan todos cambiados de nombre a desc1,desc2,desc3......desc10 y no se me ocurre como hacerlo.

Saludos

Bicho 27-09-2006 09:17:52

Hola mamu, si sólo tienes esos labels y no hay ninguno más en el form puedes probar ha hacer algo como esto:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
begin
  For i := 0 to ComponentCount - 1 do
    If Components[i] is TLabel then TLabel(Components[i]).Caption := 'kkkk';
end;

Si hay más labels pero todos tienen esa parte del nombre en común y la otra parte es numérica puedes hacer algo como esto:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var i, x : integer;
begin
  For i := 0 to ComponentCount - 1 do begin
    for x := 1 to 10 do begin //diez lo substituyes por el numero de labels que quieras modificar.
    If (Components[i] is TLabel) and (TLabel(Components[i]).Name = 'Label'+IntToStr(x))   then
      TLabel(Components[i]).Caption := 'kkkk';
    end;
  end;
end;

Esperto te sirva,

Saludos

MaMu 27-09-2006 09:33:55

Gracias Bicho, es justo lo que queria hacer, pero no daba en la tecla.
Gracias again.

Saludos.

jachguate 27-09-2006 15:37:40

Buen día.

Quiero recordar que no poner títulos descriptivos a los mensajes es una falta a la guia de estilo, que explica perfectamente por que ha de hacerse.

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 00:39:37.

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