Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 23-11-2005
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 22
Héctor Randolph Va por buen camino
Hola Jesús.

Bueno, me ha confundido bastante tu mensaje, de hecho no entiendo tu pregunta, lo que es más no veo ninguna pregunta.

Así que ahora pregunto yo, ¿Lo que realmente quieres es utilizar un formulario personalizado para mostrar la vista previa de un reporte?

Porque, según el título tu pregunta es referente a QRCreateList


Bueno responderé a la cuestión del formulario personalizado:

Tienes que crear una interfaz para mostrar el formulario, esto lo consigues derivando de la clase TQRPreviewInterface y creando los métodos Show y ShowModal

Paso 1:
Código Delphi [-]
TQRCustomPreviewInterface = class(TQRPreviewInterface)
  public
    function Show(AQRPrinter : TQRPrinter) : TWinControl; override;
    function ShowModal(AQRPrinter : TQRPrinter): TWinControl; override;
  end;

no olvides incluir a QRPrntr en uses.

Después implementas los métodos Show y ShowModal
Paso 2

Código Delphi [-]
function TQRCustomPreviewInterface.Show(AQRPrinter: TQRPrinter): TWinControl;
var
  frm : TCustPreview;
begin
  frm := TCustPreview.Create(Application, AQRPrinter);
  frm.Show; 
  Result := frm;
end;

function TQRCustomPreviewInterface.ShowModal(AQRPrinter: TQRPrinter): TWinControl;
var
  frm : TCustPreview;
begin
  frm := TCustPreview.Create(Application, AQRPrinter);
  frm.ShowModal; 
  Result := frm;
end;

En el código anterior donde aparece TCustPreview coloca el nombre de tu formulario personalizado.

Esto lo puedes guardar un una unit por separado.

Después tienes que registrar la interface con la función RegisterPreviewClass que se encuentra en la unidad QRPrntr no olvides incluirla en uses.

Paso 3:

Código Delphi [-]
RegisterPreviewClass(TQRCustomPreviewInterface);

Este código lo pones al iniciar tu aplicación, con esto lográs que cada vez que invoques al método Preview o PreviewModal se hace una llamada a tu formulario.

Una cosa más, debes redefinir el constructor de tu formulario personalizado para que responda correctamente, esto lo lográs con el siguiente código.

Código Delphi [-]
{$WARNINGS OFF}
  TCustPreview = class(TForm)
    QRPreview1: TQRPreview;
    procedure CustPreviewClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    fQRPrinter : TQRPrinter;
  public
    { Public declarations }
    constructor Create(AOwner : TComponent; AQRPrinter : TQRPrinter); virtual;
  end;
{$WARNINGS ON}


constructor TCustPreview.Create(AOwner: TComponent;AQRPrinter: TQRPrinter);
begin
  inherited Create(AOwner);
  fQRPrinter := AQRPrinter;
  QRPreview1.QRPrinter := AQRPrinter;
end;

procedure TCustPreview.CustPreviewClose(Sender: TObject;var Action: TCloseAction);
begin
  fQRPrinter.ClosePreview(Self);
  Action := caFree;
end;

Espero que sea útil, un saludo
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 03:38:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi