Impresión ( prev32.dll ) con FWH 7.09
-
- Posts: 47
- Joined: Wed Oct 12, 2005 6:58 pm
Impresión ( prev32.dll ) con FWH 7.09
Al compilar los programas que ya tengo escritos y que vienen corriendo perfectamente compilados con la version anterior de FWH, me ocurre lo siguiente:
Cuando ejecuto cualquier opción que imprima con previsualización, en lugar de aparecer una ventana MDI como aparecía antes ademas de la de la aplicación, ahora me aparece una ventana HIJA que se ubica detrás del diálogo y con dimensiones reducidas y la previsualizacion distorsionada.
Si algún compañero sabe que hay que hacer para que no se produzca esto se lo agradeceria.
Saludos
Cuando ejecuto cualquier opción que imprima con previsualización, en lugar de aparecer una ventana MDI como aparecía antes ademas de la de la aplicación, ahora me aparece una ventana HIJA que se ubica detrás del diálogo y con dimensiones reducidas y la previsualizacion distorsionada.
Si algún compañero sabe que hay que hacer para que no se produzca esto se lo agradeceria.
Saludos
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
-
- Posts: 47
- Joined: Wed Oct 12, 2005 6:58 pm
Sí salía maximizada y en ventana independiente, (MDI ), aunque al cerrar el programa, también se cerraba esta si había alguna abierta.
También cuando había alguna ventana de impresión abierta y se intentaba abrir otra salía un MsgStop diciendo "Ya existe una ventana de visualización", por si esto te da alguna pista.
Muchas gracias Antonio, saludos.
También cuando había alguna ventana de impresión abierta y se intentaba abrir otra salía un MsgStop diciendo "Ya existe una ventana de visualización", por si esto te da alguna pista.
Muchas gracias Antonio, saludos.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Julio,
Una ventana independiente no es una ventana MDI. MDI es "multiple display interface", algo asi como interface de multiples ventanas.
En source\classes\rpreview.prg tienes este código. Prueba a añadirle MAXIMIZED en _:
Una ventana independiente no es una ventana MDI. MDI es "multiple display interface", algo asi como interface de multiples ventanas.
En source\classes\rpreview.prg tienes este código. Prueba a añadirle MAXIMIZED en _:
Code: Select all
if oWndMain != nil .and. Upper( oWndMain:ClassName() ) == "TMDIFRAME"
DEFINE WINDOW ::oWnd ;
TITLE cTitle ;
COLOR CLR_BLACK,CLR_LIGHTGRAY ;
ICON oIcon ;
VSCROLL HSCROLL MDICHILD MAXIMIZED
else
DEFINE WINDOW ::oWnd FROM 0, 0 TO 24, 80 ;
TITLE cTitle ;
COLOR CLR_BLACK,CLR_LIGHTGRAY ;
ICON oIcon ;
VSCROLL HSCROLL MENU ::BuildMenu() MAXIMIZED
endif
-
- Posts: 47
- Joined: Wed Oct 12, 2005 6:58 pm
Yo lo hago asi y me viene funcionando bien desde FWH de 16 bits
IF lPrevis
PRINT oPrn NAME "Impresión de facturas" PREVIEW
ELSE
PRINT oPrn NAME "Impresión de facturas"
EndIf
IF Empty( oPrn:hDC )
MsgStop( OemToAnsi( " No hay IMPRESORA para imprimir !" ))
Return NIL
EndIF
oPrn:SetCopies( nCopias )
oPrn:Setup()
...
La ventana ya aparece con este código tal y como viene en el ejemplo
TestPrn2.prg y ha funcionado siempre bien.
No se donde poner en este código esto que me dices.
Gracias y saludos
IF lPrevis
PRINT oPrn NAME "Impresión de facturas" PREVIEW
ELSE
PRINT oPrn NAME "Impresión de facturas"
EndIf
IF Empty( oPrn:hDC )
MsgStop( OemToAnsi( " No hay IMPRESORA para imprimir !" ))
Return NIL
EndIF
oPrn:SetCopies( nCopias )
oPrn:Setup()
...
La ventana ya aparece con este código tal y como viene en el ejemplo
TestPrn2.prg y ha funcionado siempre bien.
No se donde poner en este código esto que me dices.
Gracias y saludos
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
-
- Posts: 47
- Joined: Wed Oct 12, 2005 6:58 pm
Yo no lo he hecho nunca eso a ver si he entendido.
Modifico source\classes\rpreview.prg y lo enlazo con mi programa como un módulo mas o hay que hacer alguna otra cosa ?
Nunca he modificado nada de lo que viene en el directorio C:\FWH
Yo miro la ayuda Fwcmd y escribo como viene ahí, no uso recursos, uso @ nRow, nCol ... si tengo alguna duda entro en FWH\samples y busco algo parecido a lo mío y lo copio.
Si necesito usar algún método o dato, miro la ayuda de fwclass y lo hago como viene allí. Hasta ahora me ha funcionado casi todo perfectamente.
Gracias y un saludo.
Modifico source\classes\rpreview.prg y lo enlazo con mi programa como un módulo mas o hay que hacer alguna otra cosa ?
Nunca he modificado nada de lo que viene en el directorio C:\FWH
Yo miro la ayuda Fwcmd y escribo como viene ahí, no uso recursos, uso @ nRow, nCol ... si tengo alguna duda entro en FWH\samples y busco algo parecido a lo mío y lo copio.
Si necesito usar algún método o dato, miro la ayuda de fwclass y lo hago como viene allí. Hasta ahora me ha funcionado casi todo perfectamente.
Gracias y un saludo.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
-
- Posts: 47
- Joined: Wed Oct 12, 2005 6:58 pm
Imposible Antonio, he probado de un sinfin de maneras y no lo consigo.
oPrn := TPreview():New()
oPrn := TPrinter():New( "Factura", .F., .T., , .T. )
oPrn := PrintBegin( "Factura", .F., .T., , .T. )
Yo no estoy muy ducho en esto de las clases y escribo todo como los ejemplos que trae FWH.
De momento seguiré compilando con la versión que tenía y si algun día encontramos una solución cambiare a la nueva.
Gracias y un saludo.
oPrn := TPreview():New()
oPrn := TPrinter():New( "Factura", .F., .T., , .T. )
oPrn := PrintBegin( "Factura", .F., .T., , .T. )
Yo no estoy muy ducho en esto de las clases y escribo todo como los ejemplos que trae FWH.
De momento seguiré compilando con la versión que tenía y si algun día encontramos una solución cambiare a la nueva.
Gracias y un saludo.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
-
- Posts: 47
- Joined: Wed Oct 12, 2005 6:58 pm
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
-
- Posts: 47
- Joined: Wed Oct 12, 2005 6:58 pm
No no sale maximizada sale detrás del diálogo desde el que se la llama como pudiste observar en el BMP que te adjunté ayer por el correo. Además es una cosa muy rara porque sale debajo de la barra de herramientas alineada a la izquierda y arriba. Cuando intentas pinchar en ella para pasarla al frente, no te deja y el dialogo desde el que se la llama parpadea, es decir que hasta que no cierras el dialogo llamador no te deja hacer nada con la de previsualización, que una vez cerrado el dialogo llamador, si la maximizas, en lugar de cubrir toda la superficie de la pantalla, se queda dentro de la ventana principal del programa, entre la barra de herramientas y la barra de estado de la ventana principal de la aplicación.
En cuanto a la ventana principal de la aplicación el código que la genera es el siguiente:
DEFINE WINDOW oWnd MDI FROM 04, 10 TO 30, 90;
TITLE OemToAnsi( "Facturaci¢n PYME" ) ;
MENU Menu() ;
ICON oIcon ;
BRUSH oBrush
SET FONT OF oWnd TO oFont
SET MESSAGE OF oWnd TO ;
OemToAnsi('Facturaci¢n PYME Usuario = '+WNetGetUser());
TIME DATE KEYBOARD
DEFINE BUTTONBAR oBar _3D SIZE 37, 37 TOP OF oWnd
DEFINE BUTTON OF oBar FILENAME "bmps\bars\cascade.bmp" TOOLTIP ;
...
ACTIVATE WINDOW oWnd MAXIMIZED ;
ON INIT ( Set( 7, cPathEm := Empresas( oWnd, @cNomEmp ) ), ;
lActivado := IF( Veri(), .T., ( .F., oWnd:End() ) ), ;
oWnd:cTitle := cNomEmp + VERSION ) ;
VALID ( .NOT. lActivado .OR. MsgYesNo( "¿ Realmente desea salir ?", "Elija una opción" ) )
Que como ves si es MDI.
Gracias y saludos.
En cuanto a la ventana principal de la aplicación el código que la genera es el siguiente:
DEFINE WINDOW oWnd MDI FROM 04, 10 TO 30, 90;
TITLE OemToAnsi( "Facturaci¢n PYME" ) ;
MENU Menu() ;
ICON oIcon ;
BRUSH oBrush
SET FONT OF oWnd TO oFont
SET MESSAGE OF oWnd TO ;
OemToAnsi('Facturaci¢n PYME Usuario = '+WNetGetUser());
TIME DATE KEYBOARD
DEFINE BUTTONBAR oBar _3D SIZE 37, 37 TOP OF oWnd
DEFINE BUTTON OF oBar FILENAME "bmps\bars\cascade.bmp" TOOLTIP ;
...
ACTIVATE WINDOW oWnd MAXIMIZED ;
ON INIT ( Set( 7, cPathEm := Empresas( oWnd, @cNomEmp ) ), ;
lActivado := IF( Veri(), .T., ( .F., oWnd:End() ) ), ;
oWnd:cTitle := cNomEmp + VERSION ) ;
VALID ( .NOT. lActivado .OR. MsgYesNo( "¿ Realmente desea salir ?", "Elija una opción" ) )
Que como ves si es MDI.
Gracias y saludos.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Julio,
Al implementar la nueva clase TPreview hemos considerado que si la ventana principal es MDI entonces la preview debería ser MDICHILD para poder tener varias abiertas simultaneamente, por eso sale debajo del diálogo.
Podríamos modificarlo para que no salga como MDICHILD sino como una ventana aparte de la ventana principal. Es cuestión de modificar source\classes\rpreview.prg. Es solo quitar MDICHILD.
Al implementar la nueva clase TPreview hemos considerado que si la ventana principal es MDI entonces la preview debería ser MDICHILD para poder tener varias abiertas simultaneamente, por eso sale debajo del diálogo.
Podríamos modificarlo para que no salga como MDICHILD sino como una ventana aparte de la ventana principal. Es cuestión de modificar source\classes\rpreview.prg. Es solo quitar MDICHILD.