Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Utilizar en un QR componentes de otro formulario (https://www.clubdelphi.com/foros/showthread.php?t=58080)

lbidi 07-07-2008 20:58:29

Utilizar en un QR componentes de otro formulario
 
Tengo el siguiente problema..
Tengo un formulario MDI que tiene un boton en el cual crea y llama a un reporte Quickreport. En dicho reporte, tengo un label q lo asigno en el evento before print del reporte, con la propiedad text de un edit del formulario que lo llama..

Por lo tanto tengo en los 2 formularios ( original y reporte ) , correspondientes uses al otro..

Primer duda, de que tipo tengo que crear el formulario que contiene el reporte, si lo estoy llamando de un mdi child , otro mdi, o normal ??..

No me da error al compilar pero cuando lo ejecuto, me da un error de "violacion de acceso en la direccion...." y sigue...

Es posible asignar un qrlabel con el texto de otro componente de otro formulario??

Gracias..

Leonardo

maeyanes 07-07-2008 21:05:40

Hola...

Como es que llamas a la forma del reporte?

Por que el error que obtienes indica que tratas de usar un objeto que no ha sido creado o que ya fue destruido...

Podrías poner algo de tu código?


Saludos...

Caro 08-07-2008 05:21:35

Hola Ibidi, puedes crear el formulario que tiene el reporte como normal y antes de mostrar o imprimir pasarle lo que tienes en tu edit.

Código Delphi [-]
 Form2 := TForm2.Create(Self);
 Form2.QRLabel1.Caption := Edit1.Text;
 Form2.QuickRep1.Preview;

Saluditos

lbidi 08-07-2008 13:21:48

Hola, gracias a ambos por responder. Creo que encontre el problema y es que yo dentro de mi formulario original lo creo con la siguiente funcion.

Código Delphi [-]
procedure CrearForm( AClass: TFormClass; ATag: integer; const name : string );
//-----------------------------------------------------------------------//
var
   f: Tform;
begin
   F := Application.FindComponent(name) as tForm;
   if Assigned( F ) then
       F.Show
   else begin
       F := Aclass.Create(Application);
       F.Tag := ATag;
       F.Caption := name;
   end;
end;

entonces cuando desde el reporte hace referencia a la variable asignada al form, no la encuentra porque no esta definida..

Habria alguna manera de hacerlo de este modo ??'

Gracias..

Caro 09-07-2008 05:14:41

Hola lbidi, hice la prueba creando al formulario con tu función y si da el error que mencionas, en el evento beforePrint del reporte, nose como solucionar eso. Pero también hice la prueba de llenar el qrLabel del formulario que lo llama, que es creado con tu función y si funciona, no marca error.

Código Delphi [-]
 CrearForm(TForm3, 2, 'Form3' );
 TForm3(F).QRLabel1.Caption := Edit1.Text;
 TForm3(F).QuickRep1.Preview;

F es la variable que usas en tu funcion, pero definida de forma Global y TForm3, el formulario donde esta el reporte.

Saluditos

lbidi 09-07-2008 14:21:57

Gracias Caro por tu respuesta..
Lo probare asi..

Saludos.


La franja horaria es GMT +2. Ahora son las 18:26:57.

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