![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Imprimiendo un StringGrid
Estoy armando un procedimiento de Impresión para imprimir un presupuesto, cuyo origen es un StringGrid.
He logrado que calcule la cantidad de hojas que necesitará imprimir, que se pueda seleccionar el intervalo de impresión, que se adecue mínimamente al tamaño de la hoja, etc. Cuando parecía que estaba listo, me doy cuenta que el procedimiento siempre calcula el tamaño de hoja con respecto a la impresora predeterminada (por ejemplo, una de las impresoras está definida con hoja A4 y otra en un tamaño personalizado). Si bien mediante el PrintDialog me deja elegir e imprimir en cualquiera de las dos impresoras, me encuentro con dos problemas: - por más que elija la otra impresora, siempre intentará imprimir en el tamaño de hoja de la impresora predeterminada - no encuentro manera de actualizar las opciones a mostrar en el PrintDialog acorde a la impresora elegida en el mismo. Les dejo el código del procedimiento:
Desde ya muchas gracias de antemano! Saludos! ![]()
__________________
https://www.youtube.com/DexterBass |
#2
|
||||
|
||||
Hola Dexter182.
Mediante el componente TPrinterSetupDialog podes configurar el tamaño de la página y otras características de la impresora seleccionada, pero los cambios no son permanentes, se pierden al salir de la aplicación. Para configurar la impresora por defecto revisa este enlace: ...get / set the default printer? Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
||||
|
||||
¡Muchas gracias ecfisa por contestar!
![]() Reconozco que no me expliqué bien. ![]() Voy a intentar explicarlo con un ejemplo: Supongamos que el StringGrid tiene 40 filas. Al darle imprimir, el procedimiento Imprimir verificará en la impresora predeterminada que tamaño de hoja tiene definido y en base a eso calculará cuantas hojas necesitará y actualizará las opciones correspondientes en el PrintDialog (propiedades FromPage, MinPage, ToPage y MaxPage). Supongamos que la impresora predeterminada tiene definido una A4 y la otra impresora tiene una hoja más pequeña. En una A4 las 40 filas entrarían sin problemas; en cambio en la otra hoja me llevaría dos páginas. La idea sería que si en el PrintDialog elijo la otra impresora, el procedimiento vuelva a hacer los cálculos y actualice las opciones en el PrintDialog automáticamente (al ser una hoja más chica deberían cambiar MaxPage y ToPage). Digamos, se como cambiar esas propiedades antes de que aparezca el diálogo, pero no como hacerlo en "vivo y en directo". ![]() Espero que se entienda. Muchas gracias de nuevo! Saludos! ![]()
__________________
https://www.youtube.com/DexterBass |
#4
|
||||
|
||||
Ahora también descubrí otro error...
![]() Si mando a imprimir lo mismo varias veces, el valor de las variables AltRenglon y CantRenglon difiere de la primera vez que mando a imprimir al de todas las posteriores. Cada vez entiendo menos. ![]() He estado mirando ejemplos en Internet y todos se parecen a mi procedimiento. No entiendo en que estoy fallando... Saludos! ![]()
__________________
https://www.youtube.com/DexterBass |
#5
|
||||
|
||||
Hola Dexter182.
Creo que el problema radica en que llamas al TPrintDialog después de haber asignado valores de la impresora asignada. Ejemplo:
Te pongo este código (el tuyo con algunos cambios) para que lo pruebes:
Llamada de prueba:
Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#6
|
||||
|
||||
¡Muchas gracias por contestar!
![]() Cita:
![]() Te comparto unas pruebas de impresión para que veas lo que me hace: https://www.dropbox.com/sh/b6kga2ki9ys5uey/3E3aklMxCQ Siempre me sigue tomando la impresora predeterminada para calcular el tamaño de hoja. Igual lo que más me está preocupando ahora es que la primera impresión hace una cosa y todas las siguientes son idénticas, pero diferentes a la primera. ![]() Sinceramente ya no se que hacer. Por si sirve de algo, estoy usando Delphi 7 en Windows XP. Agradezco enormemente tu tiempo. Saludos y gracias! ![]()
__________________
https://www.youtube.com/DexterBass |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Imprimiendo labels y facturas | principiante22 | Varios | 6 | 12-11-2008 21:27:31 |
Problemas imprimiendo informes.. | Paradiso | Varios | 7 | 07-03-2008 18:56:57 |
Mensaje Imprimiendo En Crystal | JULIOCTORRESG | Internet | 0 | 06-03-2007 20:49:43 |
Problema imprimiendo con QuickReport 3.0 | gamez2809 | Impresión | 2 | 22-02-2007 11:21:05 |
Imprimiendo un listbox....... | Rafe | Impresión | 1 | 09-08-2005 02:42:04 |
![]() |
|