Page 1 of 1

Cambios en BtnBmp (Manuel)

Posted: 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 _ 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)

Posted: 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


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

 

Re: Cambios en BtnBmp (Manuel)

Posted: 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 _ podría ser útil, pero no se me dado el caso.


Gracias,

Re: Cambios en BtnBmp (Manuel)

Posted: 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


 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)

Posted: 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)

Posted: 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!