Brush... pero de TEXTO ?

Brush... pero de TEXTO ?

Postby Adolfo » Thu Jun 28, 2007 4:03 pm

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
----------
Asus TUF F15, 32GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1650
User avatar
Adolfo
 
Posts: 846
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile

Postby antolin » Thu Jun 28, 2007 4:33 pm

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
antolin
 
Posts: 492
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Postby sysctrl2 » Thu Jun 28, 2007 6:34 pm

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
sysctrl2
 
Posts: 971
Joined: Mon Feb 05, 2007 7:15 pm

Postby Adolfo » Fri Jun 29, 2007 4:45 pm

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
----------
Asus TUF F15, 32GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1650
User avatar
Adolfo
 
Posts: 846
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile

Postby antolin » Fri Jun 29, 2007 9:26 pm

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: 492
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Postby antolin » Fri Jun 29, 2007 9:31 pm

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.
antolin
 
Posts: 492
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Postby sysctrl2 » Fri Jun 29, 2007 9:46 pm

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 "
User avatar
sysctrl2
 
Posts: 971
Joined: Mon Feb 05, 2007 7:15 pm

Postby antolin » Fri Jun 29, 2007 9:53 pm

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
antolin
 
Posts: 492
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Postby Adolfo » Tue Jul 03, 2007 3:29 pm

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
----------
Asus TUF F15, 32GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1650
User avatar
Adolfo
 
Posts: 846
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: JoseAlvarez and 32 guests