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.
Class TBUTTONBMP
Class TBUTTONBMP
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Antonio, las he escrito en mayusculas, es más, en el preprocesado ya realizas el UPPER().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.
Code: Select all
..
[ <cPostext: TEXTTOP, TEXTBOTTOM, TEXTLEFT, TEXTRIGHT> ] ;
=>....
<cPrompt>, <.lCancel.>, <cBitmap>, [ Upper(<(cPostext)>) ], <cToolTip> )
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Rafa,
Si revisas el código fuente del método Paint() verás que se tiene en cuenta:
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