FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Bug en TBtnBmp
Posts: 458
Joined: Tue Mar 14, 2006 07:26 PM
Bug en TBtnBmp
Posted: Mon Sep 22, 2014 06:19 PM
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.

Un Saludo,

Joaquín Martínez
Posts: 458
Joined: Tue Mar 14, 2006 07:26 PM
Re: Bug en TBtnBmp
Posted: Mon Sep 22, 2014 06:25 PM

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
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Bug en TBtnBmp
Posted: Mon Sep 22, 2014 06:30 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 458
Joined: Tue Mar 14, 2006 07:26 PM
Re: Bug en TBtnBmp
Posted: Mon Sep 22, 2014 06:32 PM

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

Continue the discussion