Brush... pero de TEXTO ?

Post Reply
User avatar
Adolfo
Posts: 815
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile
Contact:

Brush... pero de TEXTO ?

Post by Adolfo »

Hola amigos Fivewinners....

Alguien sabe como, se le ocurre, tiene una idea de como.....

Poner un texto de brush, no puede ser un bitmap, ya que ese texto deberia cambiar de acuerdo a una funcion externa, y no puedo generar tantos bitmaps como textos voy a necesitar.

Lo intente con lo siguiente en la Clausula ON INIT FONDO(ownd)

//-----------------------------------
Function Fondo(oWnd)
Local Texto:=TraeTexto()

For x=1 TO 80
@x,1 say Texto of oWnd Color CLR_HBLUE
Next

Return Nil

... pero queda sobre mi toolbar y un bitmap que tengo centrado en la window.

Cualquier ayuda sera bienvenida...

Grax.

Desde Chile
Adolfo Lagos
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Lenovo Legion Y520, 16GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1050
antolin
Posts: 475
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Post by antolin »

Intentalo con ExTextOut() desde el pintado del dialogo/Window (el :bPainted) antes de colocar el bitmap con PalBmpDraw()
Calcula las coordenadas para poner la primera linea de texto por debajo de la toolbar.
Suerte
Saludos
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Post by sysctrl2 »

Adolfo

ACTIVATE WINDOW oWnd MAXIMIZED ON PAINT ( _miTxt(hDC) )


function _miTxt( hDC )
Local oFont
DEFINE FONT oFont NAME "ROMAN" SIZE 0,-12 BOLD
oFont:Activate( hDC )
SetBkMode(hDC,1)
SetTextColor(hDC,CLR_BLUE)
DrawText(hDC,"SysCtrl Software",{10, 20, 500, 600}, nOr( 1, 4 ) )
RETURN NIL

Espero te sirva

Saludos...
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
Adolfo
Posts: 815
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile
Contact:

Post by Adolfo »

Antolin, Syscrtl

Gracias por sus respuestas,

primero... ala funcion mitxt es llamada cada vez que paso por encima de un icono, menu etc.
Segundo, desgraciadamente no veo nada, trate de cambiar parametros como las 4 coordenadas, color, tipo y tamaño de la letra y nada.. asi que no pude hacerlo funcionar.

Sobre el ExtTextOut(), estoy rcien viendo como implementarlo.. les comunco si tuve exito

Desde Chile
Adolfo
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Lenovo Legion Y520, 16GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1050
antolin
Posts: 475
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Post by antolin »

Supongo que sería algo asi:

DEFINE FONTO oFont ...
DEFINE Bmp ....
DEFINE DIALOG oDlg ...
...
oDlg:bPainted := { |hDc| MiPaintBrush(hDc,oFont,Bmp) }
...
ACTIVATE DIALOG oDlg ...

FUNCTION MiPaintBrsuh(hDc,oFont,Bmp)
LOCAL nX,nY
LOCAL OldFont := SelectObject(hDC,oFont:hFont)

FOR nX = ... TO ... STEP ... // FOR nHorzDesde to nHorzHasta STEP AnchoTexto + Separcion Horizontal entre Textos
FOR nY = ... TO ... STEP ... // FOR nVertDesde to nVertHasta STEP AltoTexto +Separacion Vertical entre Lineas
ExTextOut(hDc,nX,nY,{nX,nY,nX+AnchoTexto,nY+AltoText},"TEXTO A DESPLEGAR")
NEXT
NEXT
SelectObject(hDC,OldFont)
PalDrawText(hDc,X..,Y..,Bmp:hBitmap, Bmp:hPalette,[AnchoBmp,AltoBmp] )
RETURN NIL

Lo más tedioso es calcular las coordenadas. Paciencia.
Saludos
antolin
Posts: 475
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Post by antolin »

Tambien puedes probar con DrawText() o WSay() en lugar de ExTextOut() son muy similares. Con fondo transparente u Opaco, Etc... Consulta las ayudas del FWH para ver el uso de esas functiones.
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Post by sysctrl2 »

Adolfo,

la funcion _MiTxt() solo puedes llarme una vez,

utilizando una variable publica,,

public lMiTxt := .t.


if lMiTxt
_miTxt()
lMiTxt := .f.
endif
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
antolin
Posts: 475
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Post by antolin »

Adolfo, en mi posta anterior, con las prisas, he puesto PalDrawText(hDc,X..,Y..,Bmp:hBitmap, Bmp:hPalette,[AnchoBmp,AltoBmp] )
en lugar de PalBmpDraw(hDc,X..,Y..,Bmp:hBitmap, Bmp:hPalette,[AnchoBmp,AltoBmp] )

Mil perdones
User avatar
Adolfo
Posts: 815
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile
Contact:

Post by Adolfo »

Gracias a Todos

Lo he podido hacer mezclando ambas partes de las soluciones que me han enviado, pero en vez de usar ExtTextOut() he utilizado WSay() ya que me permite cambio de color de letra y fondo, y si la deseo transparente o no.

Gracias
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Lenovo Legion Y520, 16GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1050
Post Reply