No logro definir tamaño de papel
-
- Posts: 155
- Joined: Tue Oct 11, 2016 1:02 pm
- Location: Luján, bs. as.
No logro definir tamaño de papel
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
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.
Saludos.
Re: No logro definir tamaño de papel
Hola, mira se ayuda,
Regards, saludos.
Code: Select all | Expand
// 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
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
-
- Posts: 155
- Joined: Tue Oct 11, 2016 1:02 pm
- Location: Luján, bs. as.
Re: No logro definir tamaño de papel
Jorge
Saludos.
Saludos.
Re: No logro definir tamaño de papel
Explique lo que quiere hacer y lo que no puede hacer. Si es posible, publique el código fuente.jpcavagnaro wrote:Hola gracias por responder, no me funciona.
https://drive.google.com/file/d/1UFcIwi ... drive_link
https://forums.fivetechsupport.com/view ... hp?t=12647
https://forums.fivetechsupport.com/view ... it=SETPAGE
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
-
- Posts: 155
- Joined: Tue Oct 11, 2016 1:02 pm
- Location: Luján, bs. as.
Re: No logro definir tamaño de papel
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
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.
Saludos.
Re: No logro definir tamaño de papel
Simples, D+
Regards, saludos.
Code: Select all | Expand
// 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
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
-
- Posts: 155
- Joined: Tue Oct 11, 2016 1:02 pm
- Location: Luján, bs. as.
Re: No logro definir tamaño de papel
No, sigue sin funcionar, puede ser que me falte alguna librería o dll
Jorge
Saludos.
Saludos.
Re: No logro definir tamaño de papel
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?jpcavagnaro wrote:No, sigue sin funcionar, puede ser que me falte alguna librería o dll
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
-
- Posts: 155
- Joined: Tue Oct 11, 2016 1:02 pm
- Location: Luján, bs. as.
Re: No logro definir tamaño de papel
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
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.
Saludos.
- nageswaragunupudi
- Posts: 10691
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: No logro definir tamaño de papel
Please try
What is the problem?
Code: Select all | Expand
TPrinter():lUseHaruPDF := .F.
PRINT oPrn PREVIEW FILE "jorge.pdf"
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
-
- Posts: 155
- Joined: Tue Oct 11, 2016 1:02 pm
- Location: Luján, bs. as.
Re: No logro definir tamaño de papel
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)
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.
Saludos.
Re: No logro definir tamaño de papel
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.
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
-
- Posts: 155
- Joined: Tue Oct 11, 2016 1:02 pm
- Location: Luján, bs. as.
Re: No logro definir tamaño de papel
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(........
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.
Saludos.
Re: No logro definir tamaño de papel
NO
cambie a:
Regards, saludos.
Code: Select all | Expand
oPrn:cmsay
Code: Select all | Expand
oPrn:say
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: No logro definir tamaño de papel
Code: Select all | Expand
// 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