No logro definir tamaño de papel

No logro definir tamaño de papel

Postby jpcavagnaro » Fri Aug 09, 2024 12:46 pm

Hola Gente, hace rato que estoy dando vueltas con esto.

Por ejemplo pongo una comandera como predeterminada y chau hace cualquier cosa.

Tengo definido así

printer oPrn file xnombrenota preview
* oPrn:setpage( 9 ) // tama¤o de papel A4
oPrn:setsize( 2098, 2970 )

que estoy haciendo mal, de ninguna de las 2 maneras responde
Jorge
Saludos.
jpcavagnaro
 
Posts: 155
Joined: Tue Oct 11, 2016 1:02 pm
Location: Luján, bs. as.

Re: No logro definir tamaño de papel

Postby karinha » Fri Aug 09, 2024 12:56 pm

Hola, mira se ayuda,

Code: Select all  Expand view

// C:\FWH\SAMPLES\IMPDIRET.PRG EN TPRINTER.PRG

#Include "FiveWin.ch"

STATIC oWnd

FUNCTION Main()

   DEFINE WINDOW oWnd FROM 1, 1 TO 20, 60 TITLE "Printing Direct"

   @ 3, 3 BUTTON "&Print me" OF oWnd SIZE 80, 20 ACTION( PrintMe() )

   ACTIVATE WINDOW oWnd CENTERED

RETURN NIL

FUNCTION PrintMe()

   FIELD STREET

   LOCAL oPrn, nAltPag, cTexto, nWidt, nFtHi, oFont, oFont2
   LOCAL nTckCol := 3 // Tabulação - 3 espaços - Coluna
   LOCAL nLinha, cAlias

   USE CUSTOMER
   GO TOP

   cAlias := ALIAS()

   cTexto  := "Impressão dos Produtos"

   nLinha  := 1 // Linha Inicial

   PRINT oPrn NAME "Test" PREVIEW

      DEFINE FONT oFont  NAME "Courier New" SIZE 0, - 12 BOLD OF oPrn
      DEFINE FONT oFont2 NAME "Courier New" SIZE 0, - 8  BOLD OF oPrn

      oPrn:SetPage( 256 )

      nWidt := oFont2:nWidth + ( oFont2:nWidth / 4 )
      nFtHi := oFont2:nHeight  // Altura da FONT

      // Altura da página: (60 * Altura da fonte) * 1.3
      nAltPag := ( 60 * nFtHi ) * 1.3

      oPrn:SetSize( 1000, nAltPag )  // 5200.00

      PAGE

        oPrn:Say( nLinha*nFtHi,000, SPACE(nTckCol)+"--------------------------" + ;
                                                   "--------------", oFont2 )
        nLinha := nLinha + 1

        oPrn:Say( nLinha*nFtHi,000, SPACE(nTckCol)+cTexto, oFont2 )

        nLinha := nLinha + 1

        oPrn:Say( nLinha*nFtHi,000, SPACE(nTckCol)+"--------------------------" + ;
                                                  "--------------", oFont2 )

        nLinha := nLinha + 2

        // Produtos
        WHILE( .NOT. EOF() )

           SYSREFRESH()

           IF EOF()

              EXIT

           ENDIF

           oPrn:Say( nLinha*nFtHi,000, SPACE(nTckCol) + ( cAlias )->STREET, oFont2 )

           nLinha := nLinha + 1

           IF( nLinha * nFtHi ) >= ( 180 * nFtHi )

               oPrn:EndPage()

               oPrn:StartPage()

               nLinha := 1

           ENDIF

           SKIP

        ENDDO

      ENDPAGE

   ENDPRINT

   oFont:End()
   oFont2:End()

RETURN NIL

// FIN / END - kapiabafwh@gmail.com
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7824
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: No logro definir tamaño de papel

Postby jpcavagnaro » Fri Aug 09, 2024 1:35 pm

Hola gracias por responder, no me funciona.

https://drive.google.com/file/d/1UFcIwi ... drive_link
Jorge
Saludos.
jpcavagnaro
 
Posts: 155
Joined: Tue Oct 11, 2016 1:02 pm
Location: Luján, bs. as.

Re: No logro definir tamaño de papel

Postby karinha » Fri Aug 09, 2024 2:06 pm

jpcavagnaro wrote:Hola gracias por responder, no me funciona.

https://drive.google.com/file/d/1UFcIwi ... drive_link


Explique lo que quiere hacer y lo que no puede hacer. Si es posible, publique el código fuente.

https://forums.fivetechsupport.com/viewtopic.php?t=12647

https://forums.fivetechsupport.com/viewtopic.php?f=6&t=30612&p=175834&hilit=SETPAGE

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7824
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: No logro definir tamaño de papel

Postby jpcavagnaro » Fri Aug 09, 2024 2:23 pm

Lo que quiero es imprimir un informe en hoja A4 y que se respete el tamaño sin que tenga en cuenta la impresora predeterminada.

El tema es que se usa en varias pc y tienen distintas impresoras y tamaños de papel predeterminados y sale en algunas bien y en otras mal, porque no se respeta el A4 que necesito.

xnombrenota = "c:\archivos pdf\Informe de Auditorias - " + str( xnrocli, 6 ) + "-" + strzero( xnAudit, 8 ) + ".pdf"
lvalorizada = .F.
publ xhoja := 0
printer oPrn file xnombrenota preview
oPrn:setpage( 9 ) // tama¤o de papel A4
Jorge
Saludos.
jpcavagnaro
 
Posts: 155
Joined: Tue Oct 11, 2016 1:02 pm
Location: Luján, bs. as.

Re: No logro definir tamaño de papel

Postby karinha » Fri Aug 09, 2024 3:24 pm

Simples, D+

Code: Select all  Expand view

// C:\FWH\SAMPLES\BOXROUND.PRG - kapiabafwh@gmail.com

#include "FiveWin.ch"

#define PAD_LEFT            0
#define PAD_RIGHT           1
#define PAD_CENTER          2

FUNCTION BoxRed() // CAIXA REDONDA - BOXROUND.

   LOCAL oPrn, oFont, oFont2, oFont3, oPen, oPen1, oPen2, oPen3
   LOCAL oBrush, oFondo
   LOCAL ResLinha, ResColuna, nLinha, nColuna
   LOCAL nLinBox, nColBox, nAltBox, nTamBox, lBorEsq, lBorDir
   // 60 caracteres en el maximo
   LOCAL cTxt1 := "Lo que quiero es imprimir un informe en hoja A4 y que se"
   LOCAL cTxt2 := "respete el tamaño sin que tenga en cuenta la impresora  "
   LOCAL cTxt3 := "predeterminada. El tema es que se usa en varias pc y    "
   LOCAL cTxt4 := "tienen distintas impresoras y tamaños de papel          "
   LOCAL cTxt5 := "predeterminados y sale en algunas bien y en otras mal,  "
   LOCAL cTxt6 := "porque no se respeta el A4 que necesito.                "
   LOCAL cTxt7 := "Cómo imprimir en centímetros en cualquier impresora     "
   LOCAL cTxt8 := "                                     jpcavagnaro - Jorge"

   PRINT oPrn NAME "Ejemplo de caja redondeada" PREVIEW

      DEFINE BRUSH oBrush   COLOR nRGB(250,213,174) // Bello
      DEFINE BRUSH oFondo   COLOR CLR_GRAY  // HGRAY

      DEFINE PEN oPen  WIDTH 2  COLOR CLR_CYAN                    OF oPrn
      Define Pen oPen1 Width 25 COLOR nRgb( 192, 192, 192 )       OF oPrn
      DEFINE PEN oPen2 WIDTH 2  COLOR CLR_BROWN                   OF oPrn
      DEFINE PEN oPen3 WIDTH 50 COLOR nRgb( 192, 192, 192 )       OF oPrn

      DEFINE FONT oFont  NAME "Arial" SIZE 0, - 6  BOLD           OF oPrn
      DEFINE FONT oFont2 NAME "Arial" SIZE 0, - 12 BOLD Underline OF oPrn
      DEFINE FONT oFont3 NAME "Arial" SIZE 0, - 16 BOLD           OF oPrn

      oPrn:SetPage( 9 )   //-> A4 //9
      oPrn:SetPortrait()  //-> Vertical(Retrato)

      // Cómo imprimir en centímetros en cualquier impresora
      ResLinha  := oPrn:nLogPixely() / 2.54
      ResColuna := oPrn:nLogPixelx() / 2.54

      PAGE

        nLinha  := 2.25
        nColuna := 9.50

        nLinBox := 1.60  // Linha que Inicia o Box
        nColBox := 5.50  // Coluna que inicia o Box
        nAltBox := 3.50  // Altura do Box
        nTamBox := 13.60 // Tamanho(Largura) do Box horizontal
        lBorEsq := 90    // Bordas arredondadas esquerda.
        lBorDir := 90    // Bordas arrendondadas direita.

        Box_Round( nLinBox , nColBox , nAltBox, nTamBox, oPrn, lBorEsq, lBorDir, oPen, oFondo )

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                    ;
           + "DESCRIZIONE DOCUMENTO", oFont2,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + .80

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                    ;
           + "FiveWin is invincible.", oFont,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 2.50

        oPrn:Say( nLinha * ResLinha, nColuna + 10 * ResColuna,               ;
           + cTxt7, oFont3,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 1.50

        oPrn:Say( nLinha * ResLinha, nColuna + 10 * ResColuna,               ;
           + cTxt1, oFont3,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 0.80

        oPrn:Say( nLinha * ResLinha, nColuna + 10 * ResColuna,               ;
           + cTxt2, oFont3,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 0.80

        oPrn:Say( nLinha * ResLinha, nColuna + 10 * ResColuna,               ;
           + cTxt3, oFont3,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 0.80

        oPrn:Say( nLinha * ResLinha, nColuna + 10 * ResColuna,               ;
           + cTxt4, oFont3,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 0.80

        oPrn:Say( nLinha * ResLinha, nColuna + 10 * ResColuna,               ;
           + cTxt5, oFont3,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 0.80

        oPrn:Say( nLinha * ResLinha, nColuna + 10 * ResColuna,               ;
           + cTxt6, oFont3,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 1.50

        oPrn:Say( nLinha * ResLinha, nColuna + 10 * ResColuna,               ;
           + cTxt7, oFont3,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 10.00

        oPrn:Say( nLinha * ResLinha, nColuna + 10 * ResColuna,               ;
           + cTxt8, oFont3,, METRO_VIOLET,, PAD_CENTER )

      ENDPAGE

   ENDPRINT

   oBrush:End()
   oFondo:End()
   oPen:End()
   oPen:Release()

RETURN nil

FUNCTION Box_Round( nArriba, nIzq, nAbajo, nDerecha, oPrn, a, b, oPen, oBrush )

   LOCAL hOldPen, xCor := {} , yCor := {}
   LOCAL hOldBrush

   // Pasamos coordenadas de cms a pixel
   xCor := oPrn:Cmtr2Pix(nArriba,nIzq)
   yCor := oPrn:Cmtr2Pix(nAbajo,nDerecha)

   // Guardamos el Lapiz y la brocha que teniamos
   hOldPen   := SelectObject( oPrn:hDcOut, oPen:hPen )
   hOldBrush := SelectObject( oPrn:hDcOut, oBrush:hBrush )

   //Dibujamos el rectangulo redondeado
   roundrect(oPrn:hdcOut,xCor[2],xCor[1],yCor[2],yCor[1],a,b)

   // y  seleccionamos el que habiamos guardado
   selectObject( oPrn:hDcOut, hOldPen )
   selectObject( oPrn:hDcOut, hOldBrush )

RETURN NIL

#IFDEF __HARBOUR__
   DLL FUNCTION RoundRect( hDC AS LONG, ;
              iLeft AS _INT , iTop AS _INT, ;
              iRight AS _INT, iBottom AS _INT, ;
              iWidth AS _INT, iHeight AS _INT ) AS BOOL PASCAL LIB "GDI32.DLL"
#ELSE
   DLL FUNCTION RoundRect( hDC AS WORD, ;
              iLeft AS _INT , iTop AS _INT, ;
              iRight AS _INT, iBottom AS _INT, ;
              iWidth AS _INT, iHeight AS _INT ) AS BOOL PASCAL LIB "GDI.EXE"
#ENDIF
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7824
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: No logro definir tamaño de papel

Postby jpcavagnaro » Fri Aug 09, 2024 6:10 pm

No, sigue sin funcionar, puede ser que me falte alguna librería o dll
Jorge
Saludos.
jpcavagnaro
 
Posts: 155
Joined: Tue Oct 11, 2016 1:02 pm
Location: Luján, bs. as.

Re: No logro definir tamaño de papel

Postby karinha » Fri Aug 09, 2024 6:13 pm

jpcavagnaro wrote:No, sigue sin funcionar, puede ser que me falte alguna librería o dll


No es posible, lo uso así desde hace años y funciona bien en varias impresoras. ¿Cuál es la marca y modelo de la impresora, por favor?

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7824
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: No logro definir tamaño de papel

Postby jpcavagnaro » Sun Aug 11, 2024 1:32 pm

Hola, en principio definiendo así se soluciona, pero me genero otros problemas, por ej. tuve que anular Box_Round porque da error:

TPrinter():lUseHaruPDF := .t.
PRINT oPrn PREVIEW FILE "jorge.pdf"

Sigo intentando, pero es una alternativa
También tuve problemas con oPrn:FillRect entre otros, no entiendo porque pero bueno si se supone que no tiene que modificar tanto
Jorge
Saludos.
jpcavagnaro
 
Posts: 155
Joined: Tue Oct 11, 2016 1:02 pm
Location: Luján, bs. as.

Re: No logro definir tamaño de papel

Postby nageswaragunupudi » Sun Aug 11, 2024 2:37 pm

Please try
Code: Select all  Expand view
TPrinter():lUseHaruPDF := .F.
PRINT oPrn PREVIEW FILE "jorge.pdf"
 

What is the problem?
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10641
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: No logro definir tamaño de papel

Postby jpcavagnaro » Mon Aug 12, 2024 2:51 pm

Tengo definido así:

TPrinter():lUseHaruPDF := .f.
PRINT oPrn PREVIEW FILE "jorge.pdf"
oPrn:setpage( 9 ) // tama¤o de papel A4


publ xAncho := ( ( oPrn:nHorzRes() / 25.4 ) / 10 ) //-1
publ xAltocm := ( ( oPrn:nVertRes() / 25.4 ) / 10 ) // -1.5

? xaltocm, xancho

los valores que muestra xAncho y xAltocm sin los valores que tiene la impresora predeterminada y no los valores del setpage(9)
Jorge
Saludos.
jpcavagnaro
 
Posts: 155
Joined: Tue Oct 11, 2016 1:02 pm
Location: Luján, bs. as.

Re: No logro definir tamaño de papel

Postby karinha » Mon Aug 12, 2024 3:07 pm

Jorge, show the lines where you generate the TEXT/PDF, pls.

Jorge, muestra las líneas donde generas el TEXTO/PDF, por favor.

Y no dijiste la marca y modelo de la impresora con problemas.

And you didn't say the brand and model of the printer with problems.

Tks.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7824
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: No logro definir tamaño de papel

Postby jpcavagnaro » Mon Aug 12, 2024 7:10 pm

Hola, no me hago entender, ahí donde muestro los datos del ancho y alto de la hoja no me toma el set page(9)

Igual la impresora es una hp deskjet 3050 que le puse como ejemplo A5

Tambien lo probre con una comandera SAM4S GIANT-100 y tambien con una Brother HL-1200

Con cualquiera que pruebe los comandos oPrn:nHorzRes() y oPrn:nVertRes() me devuelven los valores que tiene la impresora predeterminada que no tiene nada que ver con el pdf que quiero generar con una hoja A4

no copio el listado porque es muy grande pero imprimos con oPrn:cmsay(........
Jorge
Saludos.
jpcavagnaro
 
Posts: 155
Joined: Tue Oct 11, 2016 1:02 pm
Location: Luján, bs. as.

Re: No logro definir tamaño de papel

Postby karinha » Mon Aug 12, 2024 7:32 pm

NO

Code: Select all  Expand view

 oPrn:cmsay
 


cambie a:

Code: Select all  Expand view

 oPrn:say
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7824
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: No logro definir tamaño de papel

Postby karinha » Wed Aug 14, 2024 12:31 pm

Code: Select all  Expand view

// C:\FWH\SAMPLES\BOXROUND.PRG - kapiabafwh@gmail.com - 14/08/2024 - Joao.

#include "FiveWin.ch"

#define PAD_LEFT            0
#define PAD_RIGHT           1
#define PAD_CENTER          2

FUNCTION BoxRed() // CAIXA REDONDA - BOXROUND.

   LOCAL oPrn, oFont, oFont2, oFont3, oPen, oPen1, oPen2, oPen3
   LOCAL oBrush, oFondo
   LOCAL ResLinha, ResColuna, nLinha, nColuna
   LOCAL nLinBox, nColBox, nAltBox, nTamBox, lBorEsq, lBorDir
   // 60 caracteres en el maximo
   LOCAL cTxt1 := "Lo que quiero es imprimir un informe en hoja A4 y que se"
   LOCAL cTxt2 := "respete el tamaño sin que tenga en cuenta la impresora  "
   LOCAL cTxt3 := "predeterminada. El tema es que se usa en varias pc y    "
   LOCAL cTxt4 := "tienen distintas impresoras y tamaños de papel          "
   LOCAL cTxt5 := "predeterminados y sale en algunas bien y en otras mal,  "
   LOCAL cTxt6 := "porque no se respeta el A4 que necesito.                "
   LOCAL cTxt7 := "Cómo imprimir en centímetros en cualquier impresora     "
   LOCAL cTxt8 := "                                     jpcavagnaro - Jorge"
   LOCAL xAncho, xAltocm

   PRINT oPrn NAME "Ejemplo de caja redondeada" PREVIEW

      DEFINE BRUSH oBrush COLOR nRGB(250,213,174) // Bello
      DEFINE BRUSH oFondo COLOR CLR_GRAY          // HGRAY

      DEFINE PEN oPen  WIDTH 2  COLOR CLR_CYAN                    OF oPrn
      Define Pen oPen1 Width 25 COLOR nRgb( 192, 192, 192 )       OF oPrn
      DEFINE PEN oPen2 WIDTH 2  COLOR CLR_BROWN                   OF oPrn
      DEFINE PEN oPen3 WIDTH 50 COLOR nRgb( 192, 192, 192 )       OF oPrn

      DEFINE FONT oFont  NAME "Arial" SIZE 0, - 6  BOLD           OF oPrn
      DEFINE FONT oFont2 NAME "Arial" SIZE 0, - 12 BOLD Underline OF oPrn
      DEFINE FONT oFont3 NAME "Arial" SIZE 0, - 16 BOLD           OF oPrn

      oPrn:SetPage( 9 )   //-> A4 //9
      oPrn:SetPortrait()  //-> Vertical(Retrato)

      /*
      // Cómo imprimir en centímetros en cualquier impresora
      ResLinha  := oPrn:nLogPixely() / 2.54
      ResColuna := oPrn:nLogPixelx() / 2.54
      */


      /* MEJOR, SIEMPRE USAR LOCAL.
      publ xAncho := ( ( oPrn:nHorzRes() / 25.4 ) / 10 ) //-1
      publ xAltocm := ( ( oPrn:nVertRes() / 25.4 ) / 10 ) // -1.5
      */


      // USANDO: oPrn:Say
      xAncho    := ( ( oPrn:nHorzRes() / 25.4 ) )
      xAltocm   := ( ( oPrn:nVertRes() / 25.4 ) )

      ResLinha  := xAncho
      ResColuna := xAltocm

      PAGE

        nLinha  := 2.25
        nColuna := 9.50

        nLinBox := 1.60  // Linha que Inicia o Box  // 1.60
        nColBox := 7.40  // Coluna que inicia o Box // 7.50
        nAltBox := 3.50  // Altura do Box
        nTamBox := 15.60 // Tamanho(Largura) do Box horizontal // 13.60
        lBorEsq := 90    // Bordas arredondadas esquerda.
        lBorDir := 90    // Bordas arrendondadas direita.

        Box_Round( nLinBox , nColBox , nAltBox, nTamBox, oPrn, lBorEsq, lBorDir, oPen, oFondo )

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                    ;
           + "DESCRIZIONE DOCUMENTO", oFont2,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 1.50

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                    ;
           + "FiveWin is invincible.", oFont,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 3.50

        oPrn:Say( nLinha * ResLinha, nColuna + 8.9 * ResColuna,              ;
           + cTxt7, oFont3,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 1.50

        oPrn:Say( nLinha * ResLinha, nColuna + 8.9 * ResColuna,              ;
           + cTxt1, oFont3,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 1.50

        oPrn:Say( nLinha * ResLinha, nColuna + 8.9 * ResColuna,              ;
           + cTxt2, oFont3,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 1.50

        oPrn:Say( nLinha * ResLinha, nColuna + 8.9 * ResColuna,              ;
           + cTxt3, oFont3,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 1.50

        oPrn:Say( nLinha * ResLinha, nColuna + 8.9 * ResColuna,              ;
           + cTxt4, oFont3,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 1.50

        oPrn:Say( nLinha * ResLinha, nColuna + 8.9 * ResColuna,              ;
           + cTxt5, oFont3,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 1.50

        oPrn:Say( nLinha * ResLinha, nColuna + 8.9 * ResColuna,              ;
           + cTxt6, oFont3,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 1.50

        oPrn:Say( nLinha * ResLinha, nColuna + 8.9 * ResColuna,              ;
           + cTxt7, oFont3,, CLR_BLACK,, PAD_CENTER )

        nLinha := nLinha + 15.00

        oPrn:Say( nLinha * ResLinha, nColuna + 8.9 * ResColuna,              ;
           + cTxt8, oFont3,, METRO_VIOLET,, PAD_CENTER )

      ENDPAGE

   ENDPRINT

   oBrush:End()
   oFondo:End()
   oPen:End()
   oPen:Release()

RETURN nil

FUNCTION Box_Round( nArriba, nIzq, nAbajo, nDerecha, oPrn, a, b, oPen, oBrush )

   LOCAL hOldPen, xCor := {} , yCor := {}
   LOCAL hOldBrush

   // Pasamos coordenadas de cms a pixel
   xCor := oPrn:Cmtr2Pix(nArriba,nIzq)
   yCor := oPrn:Cmtr2Pix(nAbajo,nDerecha)

   // Guardamos el Lapiz y la brocha que teniamos
   hOldPen   := SelectObject( oPrn:hDcOut, oPen:hPen )
   hOldBrush := SelectObject( oPrn:hDcOut, oBrush:hBrush )

   //Dibujamos el rectangulo redondeado
   roundrect(oPrn:hdcOut,xCor[2],xCor[1],yCor[2],yCor[1],a,b)

   // y  seleccionamos el que habiamos guardado
   selectObject( oPrn:hDcOut, hOldPen )
   selectObject( oPrn:hDcOut, hOldBrush )

RETURN NIL

#IFDEF __HARBOUR__
   DLL FUNCTION RoundRect( hDC AS LONG, ;
              iLeft AS _INT , iTop AS _INT, ;
              iRight AS _INT, iBottom AS _INT, ;
              iWidth AS _INT, iHeight AS _INT ) AS BOOL PASCAL LIB "GDI32.DLL"
#ELSE
   DLL FUNCTION RoundRect( hDC AS WORD, ;
              iLeft AS _INT , iTop AS _INT, ;
              iRight AS _INT, iBottom AS _INT, ;
              iWidth AS _INT, iHeight AS _INT ) AS BOOL PASCAL LIB "GDI.EXE"
#ENDIF

// FIN / END
 



Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7824
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Next

Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 40 guests