PDA

Ver la Versión Completa : Identificar objeto


rruffino
08-03-2008, 02:10:47
Hola gente, buenas a todos!
Una consulta, estoy con un problemita. Tengo en mi aplicacion un reporte en quick report, desde mi form uso ese reporte. Dentro del reporte tengo varios qrlabel. Lo que necesito hacer es segun ciertas condiciones en los datos que ingresa el usuario debo trabajar con uno u otro qrlabel del reporte. Ese proceso lo pensaba hacer con un ciclo, es decir, que de alguna forma tengo que obtener el componente qrlabel para poder asignarle o no algo. Los qrlabel estan nombrados de la forma Impreso1, Impreso2, etc, entonces pensaba desde delphi generar una variable string la cual tiene siempre el valor Impreso y segun el indice por el cual voy en el while termino de armar la variable de la forma Impreso+valor_del_indice. Entonces asi ya se como se llama el componente con el que tengo wue trabajar en el reporte, pero no se como referenciarlo, o sea identificarlo con esa variable.
Si alguien me tira una mano se lo agradeceré.
Saluos, Román.-:rolleyes:

egostar
08-03-2008, 02:17:11
Hola rruffino

Si entiendo lo que quieres hacer yo hago esto:


Procedure TLector.ImprimeRecibo;
begin
Case StatusRoom[1] Of
'2' : FQRecibo.TipoExt.Caption := 'VOZ ';
'3' : FQRecibo.TipoExt.Caption := 'DATOS';
end;
Report := FQRecibo.QRecibo;
Report.Print;
end;


Salud OS

rruffino
14-03-2008, 13:37:11
Hola amigo, gracias por la respuesta.
En realidad no entiendo que haces alli. Lo que yo necesito es armar en una variable el nombre del componente que quiero identificar para luego modificarle sus propiedades. Por ejemplo, en el reporte tengo un qrlabel llamado impreso_1, entonces desde delphi yo necesito armar una variable string a la cual siempre le asigno el valor impreso_, al numero lo saco segun el indice de un arreglo para poder terminar de armar el nombre. Una vez que ya tengo en la variable el nombre del componente necesito poder identificarlo en el reporte para modificar por ej, su caption.
Desde ya muchas gracias por tu respuesta.
Román.-

Lepe
14-03-2008, 13:58:53
Algo así:

var s:string;
c:Tcomponent;
begin
s := 'impreso_1';
c := form1.Findcomponent(s);
if Assigned(c) then // tú sabes que será un qrlabel, aplicas el moldeo
with TqrLabel(c) do
begin
Caption := 'mmmm';
end;

Supongo que el informe, está situado sobre el Form1. Ahora mismo no recuerdo si el TQuickRep tiene el método FindComponent.

Saludos