![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
Cita:
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 ![]() |
|
#2
|
||||
|
||||
|
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:
|
|
#3
|
|||
|
|||
|
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
Bueno, hacía, porqué lo que cambiado por esto
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 |
|
#4
|
||||
|
||||
|
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:
Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#5
|
|||
|
|||
|
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 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)
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 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 |
|
#6
|
||||
|
||||
|
Muchas veces deshabilitando botones no funciona como "anti-rebote", pues si lo que hace dentro del botón es un proceso que no devuelve el control al sistema (Application.ProcessMessages), recien cuando termine este proceso se ejecutará el otro click por lo que tendras muchas impresiones (A la larga nunca sabrás si es lo que quizo el usuario)
Como prueba básica lo manejaría con una bandera:
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Última edición por delphi.com.ar fecha: 30-04-2004 a las 01:28:01. |
|
#7
|
||||
|
||||
|
es que al parecer print inicia la impresión en otro hilo... y devuelve inmediatamente el control al hilo principal. Si aún está imprimiendo y se invoca nuevamente a print, entonces la aplicación casca!!
Pa'variar... quick report ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|