PDA

Ver la Versión Completa : Como recorrer los todos los QRLabels de un Qreport ???


QuarkBcn
31-10-2007, 10:53:33
Hola Grupo !!!

Necesito recorrer todos los QRlabels de un Qreport y en funcion del valor del TAG, cambiar el caption de algunos QRlabels.

Alguien tiene algun ejemplo o idea de como hacerlo y en que evento del Qreport se debe poner la carga para cambiar estos captions ??

Gracias a todos de antemano !!!

Saludos !!!

Ivanzinho
31-10-2007, 11:55:59
var
i : integer;
componente : TComponent;
begin
for i := 0 to QReport.ComponentCount - 1 do
begin
componente := QReport.Components[i];
if componente is QRLabel then
if (componente as QRLabel).Tag = 1 then
(componente as QRLabel).Caption := 'Caption';
end;
end;

Un saúdo

QuarkBcn
31-10-2007, 13:11:42
Hola ivanzhino

El tema me sigue sin funcionar ... he tenido que cambiar ComponentCount por ControlCount ya que sino me retorna un 0. Y evidentemente cambiar QReport.component[i] por QReport.control[i]. Pero de todas formas, nunca me encuentra las QRlabels del report. Solo me encuentra 3 QRLabels que no están dentro del cuerpo del report. Es decir están fuera de las "lineas" que Qreport te presenta para representar los margenes del report. El resto de QRlabels no las encuentra nunca, y tiene unas cuantas :confused:. Y evidentemente jamas encuentra las QRlabels con el tag asignado.

Alguna idea ???

Gracias de nuevo !!!

Ivanzinho
31-10-2007, 13:44:50
Prueba mirando los componentes del formulario donde está contenido el QReport. En el código que te pasé antes cambia el QReport por el formulario.

Espero que te sirva.

Un saúdo.

QuarkBcn
31-10-2007, 13:53:42
Hola de nuevo ... haciendo pruebas, he realizado los siguientes cambios y ahora funciona.



Código Delphi [-] (http://www.clubdelphi.com/foros/#)
var
x : integer;
begin
For x := 0 To ComponentCount - 1 Do begin
If Components[x] Is TQRlabel Then begin
if TQRlabel(Components[x]).Tag = 1 then
TQRlabel(Components[x]).Caption :='HOLA';
end;
end;

end;










Muchas gracias por tu ayuda !!!

Saludos !!!