Page 1 of 1
Class TBUTTONBMP
Posted: Wed Jan 16, 2008 9:01 am
by thefull
Antonio, si coges el ejemplo TestBubm.prg, y indicas TEXTBOTTOM, NO FUNCIONA!
Tampoco el TEXTTOP.
Usando el SendMessage que te comento en el otro hilo, se realiza correctamente, intentando hacer lo mismo con esta clase, no es posible.
Posted: Wed Jan 16, 2008 10:30 am
by Antonio Linares
Rafa,
Escribe esas claúsulas en mayúsculas. La clase no estaba comprobando si estaban escritas en mayúsculas.
Ya lo hemos arreglado para la próxima versión.
Posted: Wed Jan 16, 2008 10:44 am
by thefull
Antonio Linares wrote:Rafa,
Escribe esas claúsulas en mayúsculas. La clase no estaba comprobando si estaban escritas en mayúsculas.
Ya lo hemos arreglado para la próxima versión.
Antonio, las he escrito en mayusculas, es más, en el preprocesado ya realizas el UPPER().
Code: Select all
..
[ <cPostext: TEXTTOP, TEXTBOTTOM, TEXTLEFT, TEXTRIGHT> ] ;
=>....
<cPrompt>, <.lCancel.>, <cBitmap>, [ Upper(<(cPostext)>) ], <cToolTip> )
Por lo tanto, algo ocurre porque no se posiciona ni arriba ni abajo, sale en medio.
Posted: Wed Jan 16, 2008 6:27 pm
by Antonio Linares
Rafa,
Si revisas el código fuente del método Paint() verás que se tiene en cuenta:
Code: Select all
if ! Empty( ::hBitmap )
if ::cPosText == "TEXTBOTTOM"
nTop = 7
elseif ::cPosText == "TEXTTOP"
nTop = ::nHeight() - 6 - nBmpHeight( ::hBitmap )
else
nTop = ( ::nHeight() / 2 ) - ( nBmpHeight( ::hBitmap ) / 2 )
endif
if ::cPosText == "TEXTRIGHT"
nLeft = 7
elseif ::cPosText == "TEXTLEFT"
nLeft = ::nWidth() - 6 - nBmpWidth( ::hBitmap )
else
nLeft := ( ::nWidth() / 2 ) - ( nBmpWidth( ::hBitmap ) / 2 )
endif
if ::lActive
DrawMasked( ::hDC, ::hBitmap, nTop + If( lPressed, 1, 0 ),;
nLeft + If( lPressed, 1, 0 ) )
else
DrawGray( ::hDC, ::hBitmap, nTop + If( lPressed, 1, 0 ),;
nLeft + If( lPressed, 1, 0 ) )
endif
endif
Posted: Thu Jan 17, 2008 8:30 am
by thefull
Antonio, si, pero si el PREPROCESADOR ya lo pasa a mayúsculas.
Asi, si lo pruebas no funciona correctamente.