Bug en TBtnBmp

Post Reply
jmartial
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Bug en TBtnBmp

Post by jmartial »

Hola,

Hay un problema de pintado en los botones de la buttonBar, pero que en el fondo es problema de pintado de los bitmaps de la clase TBtnBmp.

Intento explicarlo:

Pong un bitmap de 16x16 en un botón TBtnBmp y un texto, si el bitmap tiene un canal alfa para transparencia, se ve muy bien pero lo alinea muy MAL.
Si el bitmap no tiene canal alfa, simplemente el borde gris, lo transparenta y lo alinea perfectamente.

¿Como lo arreglo?

Añado una imágen, el 1º es uno con canal alfa pero se lo he quitado, queda un poco más feo pero ya lo alinea bien, el 2º tiene canal alfa y lo alinea fatal, el 3º y
restantes nunca han tenido canal alfa, son con fondo gris o blanco.

Image
Un Saludo,
Joaquín Martínez
jmartial
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Re: Bug en TBtnBmp

Post by jmartial »

Antonio,

He encontrado que la línea de la clase es la 1164 y esta función es la que pinta estupendamente pero alinea mal.

ABPaint( ::hDC, nTop + If( ::lPressed, 1, 0 ),;
nLeft + If( ::lPressed, 1, 0 ), hBmp, ::nAlphaLevel() )



No sé arreglar esta línea.
Un Saludo,
Joaquín Martínez
User avatar
karinha
Posts: 7963
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 5 times
Contact:

Re: Bug en TBtnBmp

Post by karinha »

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
jmartial
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Re: Bug en TBtnBmp

Post by jmartial »

Antonio,

¡Encontrado el ERROR! A ver si pudieras cambiarlo para la próxima versión.

Las coordenabas estaban pasándose al REVÉS.

Estaba así:

ABPaint( ::hDC, nTop + If( ::lPressed, 1, 0 ),;
nLeft + If( ::lPressed, 1, 0 ), hBmp, ::nAlphaLevel() )

Y es así:

ABPaint( ::hDC, nLeft + If( ::lPressed, 1, 0 ),;
nTop + If( ::lPressed, 1, 0 ), hBmp, ::nAlphaLevel() )

Es decir: LEFT , TOP y no al revés.
Un Saludo,
Joaquín Martínez
Post Reply