Amigos, necesito generar un texto VERTICAL desde recursos, lo estoy intentando con la clase TSay y el Font con NESCAPEMENT, se ve como la imagen.
Alguna sugerencia y/o comentario?
Mil gracias de antemano
Saludos
méxico.sureste
William:
A menos de que se trate de un texto variable te sugiero utilices una imágen creada con PaintShop o Corel.
Si es obligatorio el texto, "Juega" con la alineación (Izquierda, Centrado, Derecho, Ajustado) del texto en WS.
Saludos, Armando
Si mal no recuerdo la clase del señor MERCADO no hacia texto en cualquier angulo? Tsay creo o algo asi.
Saludos
William :
Esta funcion te puede ayudar, pertenece a Cesar Lozada.
Function Test
Local oDlg, oFont1, oFont2
DEFINE FONT oFont1 NAME "Arial" SIZE 0,-36 NESCAPEMENT 9010
DEFINE FONT oFont2 NAME "Arial" SIZE 0,-24 BOLD NESCAPEMENT 4510
DEFINE DIALOG oDlg FROM 0,0 TO 20,40 COLOR CLR_BLACK,CLR_WHITE;
TITLE "Textos rotados"
ACTIVATE DIALOG oDLg CENTERED;
ON PAINT( SayRotated(oDlg,235,0,"90 grados 3D",oFont1,,,.t.),;
SayRotated(oDlg,125,50,"45 grados",oFont2,CLR_HRED,CLR_YELLOW,.f.))
RELEASE FONT oFont1
RELEASE FONT oFont2
return
Function SayRotated(oWnd,Y,X,cPrompt,oFont,nClrText,nClrPane,l3D)
Local hDC:=oWnd:hDC
DEFAULT nClrText:=CLR_BLUE, l3D:=.T.
IF l3D
DrawRotated(hdc, cPrompt, Y + 1, X + 1, CLR_BLACK,nClrPane,oFont)
DrawRotated(hdc, cPrompt, Y - 1, X - 1, nClrText,nClrPane,oFont)
ENDIF
DrawRotated(hdc, cPrompt, Y , X , nClrText,nClrPane,oFont)
return
Static Function DrawRotated(hDC,cPrompt,Y,X,nClrText,nClrPane,oFont)
Local hOldFont, nOldMode, nOldClrText, nOldClrPane
nOldClrText:=SetTextColor(hDC,nClrText)
if nClrPane<>nil
nOldClrPane:=SetBkColor(hDC,nClrPane)
else
nOldBkMode:=SetBkMode(hDC,1)
endif
hOldFont:=SelectObject(hDC,oFont:hFont)
TextOut(hDC,Y,X,cPrompt,Len(cPrompt))
SelectObject(hDC,hOldFont)
if nClrPane<>nil
SetBkColor(hDC,nOldClrPane)
else
SetBkMode(hDC,nOldBkMode)
endif
SetTextColor(hDC,nOldClrText)
return
Ya la he probado y funciona muy bien.
Espero te sirva.
Saludos
Gracias a todos por contestar, haré las pruebas.
Siempre es bueno saber que contamos con ustedes, gracias por estar.