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
- Antonio Linares
- Site Admin
- Posts: 42512
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 73 times
- Contact:
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 | Expand
..
[ <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.
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
- Antonio Linares
- Site Admin
- Posts: 42512
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 73 times
- 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 | Expand
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