Justificado de texto

Justificado de texto

Postby Mike Serra » Wed Mar 07, 2007 6:46 pm

Buenas foro!!

Me han planteado una cosilla que no se como solucionar, y es que con la función memoline voy escribiendo un texto en un listado de un cliente, entonces el texto que son lineas de 40 caracteres me lo imprime perfectamente, pero el cliente quiere que el texto salga justificado, pero no quiere que use el tipo de letra Courier New( :( ). ¿Podéis orientarme?

MUCHAS GRACIAS,

Fw 2.8 + xHarbour
Mike Serra
 
Posts: 297
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Postby Antonio Linares » Thu Mar 08, 2007 11:21 am

Podrias ir añadiendo espacios al texto y llamando al método oPrinter:GetTextWidth( cText, oFont ) hasta que devuelva el ancho deseado
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42053
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Alfredo Arteaga » Thu Mar 08, 2007 7:03 pm

Aquí el código a colocar en el método Say() de TPrinter:

IF nPad=PAD_BOTH .AND. " "$cText // Justificado a ambos lados
nP:=1
DO WHILE ::GetTextWidth( cText, oFont ) < nWidth
FOR nI=nP TO Len(cText)
nP++
cC:=SubStr(cText,nI,1)
IF cC=" "
cText:=Substr(cText,1,nI)+Substr(cText,nI,Len(cText))
nI:=Len(cText)+1
nP++
ENDIF
NEXT nI
IF nP>=Len(cText)-1
nP:=1
ENDIF
ENDDO
ENDIF
User avatar
Alfredo Arteaga
 
Posts: 326
Joined: Sun Oct 09, 2005 5:22 pm
Location: Mexico


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 21 guests