Problema al declarar ancho con CMSAY

Problema al declarar ancho con CMSAY

Postby jllinas » Mon Mar 10, 2008 2:34 am

Hola Foro,

Buscaré explicarlo de la mejor manera, para darme a entender...

Utilizo desde hace años oPrn:CmSay() muy bien para imprimir todo, a través de la clase tPrinter. Siempre utilizo como parametros las coordenadas en centimetros, el string que se imprimira y la fuente, y listo todo ! Imprime de maravilla.

Aqui viene el cambio: he tenido la necesidad de utilizar otro parametro que NUNCA había tenido necesidad. Para una rutina de imprimir texto justificado en ambos márgenes, se requiere tambien utilizar EL ANCHO DE LA LINEA (nWidth), que no esta mal, porque imprime de maravilla tambien, PERO.... sucede que en el ALTO de la linea hay un problema: Cuando se imprime en mayusculas, o cuando se imprimen letras que no tienen "rabo" hacia abajo (p.e. las letras a,b,c,d,e,f) no hay problemas. Cuando se imprime las letras g,j,q,p (o sea, que si tienen un "rabo" hacia abajo), esta parte es cortada.

Localice el problema, y está en el método SAY de la clase tPrinter (linea 558):
Code: Select all  Expand view  RUN
      ExtTextOut( ::hDCOut, nRow, nTemp,;
                  { nRow, nCol, nRow+oFont:nHeight, nCol+nWidth },;
                  cText, ETO_CLIPPED )


pues el ALTO de la linea es de solo oFont:nHeight, y parece que "corta" la parte de abajo de estas letras...

Lo que no se es como solucionarlo....

¿Alquien me ayuda?
¿Antonio?
¿Es que ya se planteo esto?

Gracias anticipadas...
Julio Llinás
Visita mi Blog en http://mangucybernetico.blogspot.com/
xHarbour 1.1.0 + FWH810 + Borland 5.5.1
User avatar
jllinas
 
Posts: 189
Joined: Fri Oct 14, 2005 12:33 am
Location: Santo Domingo, Dominican Republic

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 32 guests