Page 1 of 1

FILLRECT y Tprint

PostPosted: Wed Dec 08, 2010 4:06 am
by goosfancito
hola.

Tengo un dato (especifico) que necesito que sea COLOREADO el fondo. como lo hago? porque yo intento esto:

oTp:cmsay(nRow, 17.0, oRs:FIELDS(13):VALUE, aFont[3])

Pero no se como utilizar el fillrect para pintar eso./

FillRect( :hdcout, LAS COORDENADAS NO SE COMO CALCULLARLAS, oBCGris:hBrush )

Utilizo ese FillRect cuando pinto los encabezados que son fijos, pero no se como ir haciendo
para pintar " el dato" que va cambiando. No necesito una columna o linea completa solo un dato.

gracias.

Re: FILLRECT y Tprint

PostPosted: Thu Dec 09, 2010 1:03 pm
by antolin
goosfancito, te pongo un pequeño ejemplo que a mi me funciona

Code: Select all  Expand view

LOCAL oPrn,oPen,oFont[5]
LOCAL hBrush,hOldBrs

PRINT oPrn NAME "...." PREVIEW    // CREA EL OBJETO PRINTER

hBrush := CreateSolidBrush( RGB(...,...,...) )   // CREA LOS BRUSHS CON LOS COLORES QUE NECESITES
DEFINE PEN oPen WIDTH 2 OF oPrn  // CREA LOS PENS NECESARIOS

DEFINE FONT oFont[1] NAME "...." SIZE ...   // CREA LOS FONTS A UTILIZAR
DEFINE FONT oFont[2] NAME "...." SIZE ...
DEFINE FONT oFont[3] NAME "...." SIZE ...
DEFINE FONT oFont[4] NAME "...." SIZE ...
DEFINE FONT oFont[5] NAME "...." SIZE ...

oPrn:SetPage(9)     // PAGINA TAMAÑO DIN A4
oPrn:SetPortrait()  // PAGINA VERTICAL

PAGE  // INICIA PAGINA


hOldBrs := SelectObjct(oPrn:hDCOut,hBrush)  // CARGA EL BRUSH
CAJA(oPrn,5.8,7.2,5.8,16.5,oPen)   // DIBUJA UNA CAJA CON ESE COLOR
CAJA(...)  // DIBUJA MAS CAJAS
...
SelectObject(oPrn:hDCOut,hOldBrs)  // RECUPERA EL BRUSH DEL SISTEMA

oPrn:CmSay( ....)  // ESCRIBE ALGUNAS LINEAS
...

ENDPAGE  // FIN DE LA PAGINA

DeleteObject(hBrush)   // BORRA LOS BRUSHS CREADOS POR TI

oFont[1]:end()   // BORRA LOS FONTS
oFont[21]:end()
oFont[3]:end()
oFont[4]:end()
oFont[5]:end()

oPen:End()   // BORRA LOS PENS

ENDPRINTER  // FIN IMPRESION
SysRefresh()
RETURN NIL

FUNCTION Caja(oPrn,X1,Y1,X2,Y2,oPen)  // RUTINA PARA DIBUJAR CAJAS EN CENTIMETROS
   oPrn:Cmtr2Pix(@X1,@Y1)
   oPrn:Cmtr2Pix(@X2,@Y2)
   oPrn:Box(X1,Y1,X2,Y2,oPen)
RETURN NIL
 


Espero que te sirva.

Un saludo.

Re: FILLRECT y Tprint

PostPosted: Fri Dec 10, 2010 1:19 am
by goosfancito
gracias.