Page 1 of 1

Cambios en BtnBmp (Manuel)

PostPosted: Tue Sep 23, 2014 3:01 pm
by jmartial
Hola Manuel,

He necesitado poner gris los botones y he visto que habíais tenido una buena idea con el código que convierte el BMP1 a gris si no se le pasa
un BMP3.

Pero he visto que habías tocado la clase TBtnBmp en loadBitmaps y creo que en algún sitio más. Le he echado un vistazo y creo que sólo hay que tocar
el método disable. Lo he probado y funciona perfectamente.

Mi pregunta es, ¿lo que se consigue con los cambios que hiciste tiene alguna ventaja con respecto a mi implementación?

Este es el cambio que he hecho, modificar el método disable():

METHOD Disable() INLINE ::hBitmap3 := IF(::hBitmap3=0, BMP2DIS(::hBitmap1) , ::hBitmap3) , ::Super:Disable(), ::Refresh()

Gracias por tus aportaciones.

Re: Cambios en BtnBmp (Manuel)

PostPosted: Tue Sep 23, 2014 7:39 pm
by mastintin
Tu implementación es mejor que la que yo hice , si quieres puedes añadir la data que yo añadí para que puedas regular aún mejor el comportamiento según lo que se desea :

Code: Select all  Expand view


METHOD Disable() INLINE   ::hBitmap3 := IF(::hBitmap3=0 , if (::ldisableBmp, BMP2DIS(::hBitmap1), ::hBitmap1 ) , ::hBitmap3 )  , ::Super:Disable(), ::Refresh()

 

Re: Cambios en BtnBmp (Manuel)

PostPosted: Tue Sep 23, 2014 9:35 pm
by jmartial
Manuel,

La Data no sè para que se usaría, porque cuando desabilito es porque lo quiero grisàceo.

Quizàs en otros casos podría ser útil, pero no se me dado el caso.


Gracias,

Re: Cambios en BtnBmp (Manuel)

PostPosted: Wed Sep 24, 2014 7:04 am
by mastintin
Buenas de nuevo ...
Perdon por el codigo anterior , las prisas ... :D
Realmente era esto :
Code: Select all  Expand view


 METHOD Disable() INLINE   if ( ::lDisableBmp,;
                                ::hBitmap3 := IF(::hBitmap3=0 , BMP2DIS(::hBitmap1),::hBitmap3 ), ), ;
                                ::Super:Disable(), ::Refresh()

 


La data lDisableBmp lo unico de pretende es poder definir si queremos el comportamiento "por defecto" de la clase o el nuevo comportamiento ...
La diferencia en :
Hablamos siempre en el caso de que no se defina un bmp3 ( para deshabilitados ) , al hacer disable() en la clase sin modificar el texto aparece en gris pero el bmp se mantiene en color , si ponemos ldisablebmp a .t. tambien el bmp pasa a gris . En algunas ocasiones puede interesar mantener ese comportamiento ( hasta ahora y a fecha de hoy muchos usuarios lo usan así ) , mantenemos compatibilidad con lo que existe y añadimos nueva función ... :D

Re: Cambios en BtnBmp (Manuel)

PostPosted: Wed Sep 24, 2014 7:19 am
by jmartial
Buenos días Manuel,

Gracias por tu explicación, ya entiendo por qué lo pusiste.

Al final, todo es cuestión de compatibilidad, pero poco a poco habría que hacer con FWH como Microsoft, a partir de unos años, por ejemplo 2, poder limpiar
código y dejarlo documentado para que el usuario pueda en 1 día cambiar de una versión más antigua de 2 años, pasar a la actual.

Porque esta compatibilidad tan a largo plazo, creo que hace más difícil avanzar el producto y que el código cada vez está más ilegible con tantos condicionantes.

Bueno, es mi humilde sugerencia.

Re: Cambios en BtnBmp (Manuel)

PostPosted: Wed Sep 24, 2014 12:24 pm
by Antonio Linares
Joaquín,

vamos limpiándolo poco a poco y siempre optimizando todo lo que se puede :-)

Lo que ocurre es que FWH es tan grande y cubre tantas cosas que no es fácil hacerlo todo de golpe :-)

Gracias por vuestra ayuda como siempre!