Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-04-2004
Avatar de Nuria
Nuria Nuria is offline
Miembro
 
Registrado: may 2003
Posts: 531
Poder: 24
Nuria Va por buen camino
Hola Pablo!

Y qué mensaje de error te da?

Saludos...
Responder Con Cita
  #2  
Antiguo 29-04-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Acabo de comprobar que si ocurre, haces una vista previa incluso con un programa finalizado haces doble clic en el icono impresora y te salta un error, la solución la tienes el la Web de Cadetill, es decir hazte un previsualizador personalizado.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 29-04-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 27
__cadetill Va por buen camino
Cita:
Empezado por marcoszorrilla
Acabo de comprobar que si ocurre, haces una vista previa incluso con un programa finalizado haces doble clic en el icono impresora y te salta un error
Hacía mucho que no usaba el Preview del QR, pero es que me ha picado la curiosidad y he querido hacer la prueba.

Delphi 6 Ent. + QR 3.0.9 + W2k

y ninguna de las impresoras (la de configuración y la de impresión) me hace saltar ningún error

Cómo lo has logrado Marcos??

PD: no obstante, recomiendo personalizar el Previsualizador del QR a uno propio, se puede controlar mucho mejor
Responder Con Cita
  #4  
Antiguo 29-04-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Pues mira un programa para control de cursos que casualmente estoy utilizando ahora, por lo que no me puedo extender, hago vista previa doble clic sobre la impresora y me lanza el famoso "Access violation".

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 29-04-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 27
__cadetill Va por buen camino
pues sí, Marcos, es que yo sólo lo probaba con un simple clic, no con un doble clic.

El doble clic hace fallar tb a mi previsualizador

No se como lo hará el Preview del QR, pero en el mio hace lo siguiente

Código Delphi [-]
procedure TPrevi.ImprimirExecute(Sender: TObject);
begin
    Preview.QRPrinter.Print;
end;

Bueno, hacía, porqué lo que cambiado por esto

Código Delphi [-]
procedure TPrevi.ImprimirExecute(Sender: TObject);
  procedure HabilitaBotones(Estado: boolean);
  var
    i: integer;
  begin
    for i := 0 to ComponentCount - 1 do
      if Components[i] is TSpeedButton then
        TSpeedButton(Components[i]).Enabled := Estado;
    Application.ProcessMessages;
  end;
begin
  HabilitaBotones(false);
  try
    Preview.QRPrinter.Print;
  finally
    HabilitaBotones(true);
  end;
end;

El problema: Que el método Print no hace que el programa "se pare" en esa linea y vuelve a desbloquear los controles

Miraré a ver como se puede controlar el tema
Responder Con Cita
  #6  
Antiguo 29-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Seguramente print se ejecuta en otro hilo.

La printer no tiene alguna propiedad printing o algo similar??

con esto fácilmente se podria hacer algo como:

Código Delphi [-]
  if not Preview.qrPrinter.printing Then  // o lo que sea
    Preview.QRPrinter.Print;
  else
    ShowMessage('No se puede imprimir mientras se esta imprimiendo ');

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #7  
Antiguo 30-04-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 27
__cadetill Va por buen camino
Hola

He investigado por la linea que indicaba Juan Antonio pero claro, tan fácil no podía ser

Entonces he probado con la propiedad Status de TQRPrinter que, según una documentación antigua que he encontrado por internet (QR para D1) una impresión pasaba por estos estados

Código Delphi [-]
TQRPrinterStatus = (mpReady, mpBusy, mpFinished, mpPrinting, mpPreviewing);
Veo que en aquel entonces tenía el estado mpPrinting, y pienso, "de coña, un bucle mientras esté en este estado y listo!!!". Pues no, tampoco, lo señores de QuSoft tenían que quitar este estado. De hecho, almenos desde la versión que biene en Delphi 3, sólo quedan 3 de los 5 estados (encontré unos fuentes antiguos de la versión de D3)

Código Delphi [-]
TQRPrinterStatus = (mpReady, mpBusy, mpFinished);

Por lo que sólo veo una solución y es "apoderarme" del evento AfterPrint del Report y lanzar el mio propio para volver a habilitar los botones. Total que hago lo siguiente

Código Delphi [-]
....
    property AfterPrt: TQRAfterPrintEvent read FAfterPrt write FAfterPrt;
.....

procedure TPrevi.ImprimirExecute(Sender: TObject);
begin
  HabilitaBotones(false);
  if Assigned(Preview.QRPrinter.AfterPrint) then
    AfterPrt := Preview.QRPrinter.AfterPrint;
  Preview.QRPrinter.AfterPrint := AfterPrintReport;;

  Preview.QRPrinter.Print;
end;
Es decir, miro si estaba asignado el evento para lanzarlo despues del mio y al evento le asigno mi procedure. Pero, el problema es que no me captura mi procedure y sigue lanzando el suyo (el del componente TQuickReport)

No se por donde falla la lógica, pero debería de funcionar, no? O estoy muy espesito ya?

Ala, un saludo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 12:48:59.


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