Cambios en BtnBmp (Manuel)

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

Cambios en BtnBmp (Manuel)

Post 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.
Un Saludo,
Joaquín Martínez
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: Cambios en BtnBmp (Manuel)

Post 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()

 
jmartial
Posts: 457
Joined: Tue Mar 14, 2006 7:26 pm

Re: Cambios en BtnBmp (Manuel)

Post 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,
Un Saludo,
Joaquín Martínez
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: Cambios en BtnBmp (Manuel)

Post 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
jmartial
Posts: 457
Joined: Tue Mar 14, 2006 7:26 pm

Re: Cambios en BtnBmp (Manuel)

Post 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.
Un Saludo,
Joaquín Martínez
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Cambios en BtnBmp (Manuel)

Post 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!
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply