Dúvida ao fazer um For...

Delphi

23/03/2004

Fala turma.

É o seguinte:

tenho 9 QRlabels no meu Relatório como os Respectivos nomes:
QRLDescricao01, QRLDescricao02, QRLDescricao03, QRLDescricao04, QRLDescricao05, QRLDescricao06, QRLDescricao07, QRLDescricao08, QRLDescricao09. Bom, estes valores serão preenchidos por um For que a cada Loop deverá jogar o valor em seu QrLabel. Assim:

For I := 1 to 9 do
Begin
QrLabelDescricao0+i.Caption := Texto;
end;

Só que quando fiz referência para o I (QrLabelDescricao0+i.Caption) deu erro pois o QrLabel não é uma Variável. como Faria neste caso para passar o I como parâmetro e não precisar ficar repetindo Todos os QrLabels para jogar os Textos?

Obrigado ...


Giovani

Giovani

Curtidas 0

Respostas

Lucas Silva

Lucas Silva

23/03/2004

Isto não tem jeito mesmo, você pode fazer da seguinte forma.
Mude os tags destes qrlabel´s pra 2;

 for i:= 0 to  ComponentCount - 1
  if Components[i].Tag = 2 then
    (Components[i] as TQRLabel).Caption := Texto; 



GOSTEI 0
Giovani

Giovani

23/03/2004

[quote:b9d31021fe=´Lucas Alves Silva´]Isto não tem jeito mesmo, você pode fazer da seguinte forma.
Mude os tags destes qrlabel´s pra 2;

 for i:= 0 to  ComponentCount - 1
  if Components[i].Tag = 2 then
    (Components[i] as TQRLabel).Caption := Texto; 
[/quote:b9d31021fe]

não entendi o componentCount!!!! Como utilizaria no meu caso...


GOSTEI 0
Lucas Silva

Lucas Silva

23/03/2004

não entendi o componentCount!!!! Como utilizaria no meu caso...


componentcount é a qtde de componentes do seu form.

pode usar deste jeito que eu te passei que dá certo!


GOSTEI 0
Giovani

Giovani

23/03/2004

[quote:53b3d8c2b7=´Lucas Alves Silva´]
não entendi o componentCount!!!! Como utilizaria no meu caso...


componentcount é a qtde de componentes do seu form.

pode usar deste jeito que eu te passei que dá certo![/quote:53b3d8c2b7]

A seguinte linha está dando erro :
(Components[i] as TQRLabel(neste componente)).Caption := Texto;


GOSTEI 0
Lucas Silva

Lucas Silva

23/03/2004

tenta fazer assim..;.

for i:= 0 to componentCount - 1 do
  if components[i].tag = 2 then
   if components[i] as TQRLabel then
    (components as TQRLabel).CAption := Texto



GOSTEI 0
Adilsond

Adilsond

23/03/2004

For I := 1 to 9 do 
 TQrLabel(FindComponent(´QrLabelDescricao0´ + IntToStr(I))).Caption := Texto; 



GOSTEI 0
POSTAR