Page 1 of 2

TRANSPARENCIA SAY Y CHECKBOX fallan al presionar tecla alt

PostPosted: Fri Jul 09, 2010 5:31 pm
by Patricio Avalos Aguirre
Estimados

el ejemplo gradbrus.prg al presionar el boton FIRST sale un dialogo con checkbox si uno presiona la tecla ALT estos desaparecen

a alguien mas le sucede?

ahh utilizo windows 7

Re: TRANSPARENCIA SAY Y CHECKBOX fallan al presionar tecla alt

PostPosted: Fri Jul 09, 2010 6:21 pm
by Raymundo Islas M.
Patricio,

+1

Sip, me hace lo mismo.


Saludos

Re: TRANSPARENCIA SAY Y CHECKBOX fallan al presionar tecla alt

PostPosted: Sun Jul 11, 2010 1:28 pm
by Personal
viewtopic.php?f=6&t=19070

Agora com a versão do FWH 10.6 continua o problema.

Re: TRANSPARENCIA SAY Y CHECKBOX fallan al presionar tecla alt

PostPosted: Wed Jul 14, 2010 4:20 pm
by Patricio Avalos Aguirre
solo para que no se pierda este mensaje...

Re: TRANSPARENCIA SAY Y CHECKBOX fallan al presionar tecla alt

PostPosted: Wed Jul 14, 2010 7:28 pm
by Antonio Linares
Patricio,

Este es un error que hemos corregido varias veces y que luego, por varias razones hemos pensado que no era necesario. Pero samples\GradBrus.prg claramente demuestra que si hace falta solucionarlo.

Hay que añadir estas líneas a la Clase TControl en source\classes\control.prg
Code: Select all  Expand view
      ...

      case nMsg == WM_LBUTTONDOWN
           if ::lTransparent .and. ::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" )
              ::oWnd:Refresh()
           endif  
           return Super:LButtonDown( nHiWord( nLParam ), nLoWord( nLParam ), nWParam )

      case nMsg == WM_LBUTTONUP
           if ::lTransparent .and. ::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" )
              ::oWnd:Refresh()
           endif  
           return Super:LButtonUp( nHiWord( nLParam ), nLoWord( nLParam ), nWParam )

      case nMsg == WM_UPDATEUISTATE  // buttons, radios and checkboxes were erased when pressing ALT
           nResult = Super:HandleEvent( nMsg, nWParam, nLParam )
           if ::lTransparent .and. ::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" )
              ::oWnd:Refresh()
           endif  
           return nResult
   endcase
 

Re: TRANSPARENCIA SAY Y CHECKBOX fallan al presionar tecla alt

PostPosted: Wed Jul 14, 2010 8:33 pm
by Antonio Linares
En el cambio anterior hay que llamar a:

return ::LButtonDown( ... )
...
return ::LButtonUp( ... )

en vez de a:

return Super:LButtonDown( ... )
...
return Super:LButtonUp( ... )

Re: TRANSPARENCIA SAY Y CHECKBOX fallan al presionar tecla alt

PostPosted: Wed Jul 14, 2010 10:20 pm
by Patricio Avalos Aguirre
ahora casca en los ribbon

Code: Select all  Expand view
Application
===========
   Path and name: C:\FWH\samples\testqck.exe (32 bits)
   Size: 1,673,216 bytes
   Time from start: 0 hours 0 mins 2 secs
   Error occurred at: 07/14/10, 18:18:12
   Error description: Error BASE/1066  Argument error: conditional
   Args:
     [   1] = U  

Stack Calls
===========
   Called from: c:\fwh\source\classes\CONTROL.prg => TCONTROL:HANDLEEVENT(1485)
   Called from: .\source\classes\TRIBBON.PRG => TRIBBONBAR:HANDLEEVENT(956)
   Called from: c:\fwh\source\classes\WINDOW.prg => _FWH(3391)



asi funciona muy bien
Code: Select all  Expand view

              //revisando problemas de transparencia ..

      case nMsg == WM_LBUTTONDOWN
           if Valtype( ::lTransparent  ) = "L" .and. ::lTransparent .and. ::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" )
              ::oWnd:Refresh()
           endif
           return ::LButtonDown( nHiWord( nLParam ), nLoWord( nLParam ), nWParam )

      case nMsg == WM_LBUTTONUP
           if Valtype( ::lTransparent  ) = "L" .and. ::lTransparent .and. ::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" )
              ::oWnd:Refresh()
           endif
           return ::LButtonUp( nHiWord( nLParam ), nLoWord( nLParam ), nWParam )

      case nMsg == WM_UPDATEUISTATE  // buttons, radios and checkboxes were erased when pressing ALT
           nResult = Super:HandleEvent( nMsg, nWParam, nLParam )
           if Valtype( ::lTransparent  ) = "L" .and. ::lTransparent .and. ::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" )
              ::oWnd:Refresh()
           endif
           return nResult
 

Re: TRANSPARENCIA SAY Y CHECKBOX fallan al presionar tecla alt

PostPosted: Tue Jul 20, 2010 8:51 pm
by Patricio Avalos Aguirre
auh!!!!

Ahora al presionar un CHECKBOX hace un parpadeo de refresh en toda el dialogo...

bueno elimine la sugerencia que dio antonio y funciona perfecto

Porque?...

envestigando un poco el codigo era que en mi dialogo tenia GROUPBOX sin definir en mi codigo, ahora
estan asi
Code: Select all  Expand view

REDEFINE GROUP ID 301 OF oDlg
REDEFINE GROUP ID 302 OF oDlg


y funciona perfect...


Code: Select all  Expand view
para su analisis

Re: TRANSPARENCIA SAY Y CHECKBOX fallan al presionar tecla alt

PostPosted: Sun Aug 01, 2010 5:07 am
by acwoo1
Thanks for the help.


case nMsg == WM_LBUTTONDOWN
if Valtype( ::lTransparent ) = "L" .and. ::lTransparent .and. ::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" )
::oWnd:Refresh()
endif
return ::LButtonDown( nHiWord( nLParam ), nLoWord( nLParam ), nWParam )

case nMsg == WM_LBUTTONUP
if Valtype( ::lTransparent ) = "L" .and. ::lTransparent .and. ::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" )
::oWnd:Refresh()
endif
return ::LButtonUp( nHiWord( nLParam ), nLoWord( nLParam ), nWParam )

case nMsg == WM_UPDATEUISTATE // buttons, radios and checkboxes were erased when pressing ALT
nResult = Super:HandleEvent( nMsg, nWParam, nLParam )
if Valtype( ::lTransparent ) = "L" .and. ::lTransparent .and. ::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" )
::oWnd:Refresh()
endif
return nResult
________________________

How to prevent dialog box from flickering when I click on the checkbox.

Thanks

Regards

ACWOO
using fwh10.7 + harbour2.1+bcc582

Re: TRANSPARENCIA SAY Y CHECKBOX fallan al presionar tecla alt

PostPosted: Sun Aug 01, 2010 5:33 am
by Antonio Linares
Acwoo,

Please review this example and you will see the right way to implement a gradient as a brush so there will be no flickering:

viewtopic.php?p=102058#p102058

Re: TRANSPARENCIA SAY Y CHECKBOX fallan al presionar tecla alt

PostPosted: Sun Aug 01, 2010 4:45 pm
by Armando Picon
METHOD HandleEvent( nMsg, nWParam, nLParam ) CLASS TControl

/* Cambios propuestos por A. Linares y Patricio Avalos Aguirre*/
case nMsg == WM_UPDATEUISTATE // buttons, radios and checkboxes were erased when pressing ALT
nResult = Super:HandleEvent( nMsg, nWParam, nLParam )
if Valtype( ::lTransparent ) = "L" .and. ::lTransparent .and. ;
::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" )
::oWnd:Refresh()
endif
return nResult
/* Fin de Agregado por Linares y confirmado por Patricio Avalos Aguirre*/

Y este trozo donde se menciona a "TBTNBMP" ¿como queda? ¿sería adecuado que se agregue a la propuesta?

case nMsg == WM_UPDATEUISTATE // buttons, radios and checkboxes were erased when pressing ALT
nResult = Super:HandleEvent( nMsg, nWParam, nLParam )
if Upper( ::ClassName() ) == "TBTNBMP"
::Refresh()
endif
::oWnd:Refresh()
return nResult


Antonio Linares wrote:Patricio,

Este es un error que hemos corregido varias veces y que luego, por varias razones hemos pensado que no era necesario. Pero samples\GradBrus.prg claramente demuestra que si hace falta solucionarlo.

Hay que añadir estas líneas a la Clase TControl en source\classes\control.prg
Code: Select all  Expand view
      ...

      case nMsg == WM_LBUTTONDOWN
           if ::lTransparent .and. ::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" )
              ::oWnd:Refresh()
           endif  
           return Super:LButtonDown( nHiWord( nLParam ), nLoWord( nLParam ), nWParam )

      case nMsg == WM_LBUTTONUP
           if ::lTransparent .and. ::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" )
              ::oWnd:Refresh()
           endif  
           return Super:LButtonUp( nHiWord( nLParam ), nLoWord( nLParam ), nWParam )

      case nMsg == WM_UPDATEUISTATE  // buttons, radios and checkboxes were erased when pressing ALT
           nResult = Super:HandleEvent( nMsg, nWParam, nLParam )
           if ::lTransparent .and. ::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" )
              ::oWnd:Refresh()
           endif  
           return nResult
   endcase
 

Re: TRANSPARENCIA SAY Y CHECKBOX fallan al presionar tecla alt

PostPosted: Mon Aug 02, 2010 3:14 pm
by Cgallegoa
El problema sigue con FWH10.7. Con ALT desaparecen los PROMPT

Igual con samples/gradbrus testrad2, testrad5. En general con los Radios, Checkbox y transparencias hay problemas.

Saludos,

Carlos Gallego

Re: TRANSPARENCIA SAY Y CHECKBOX fallan al presionar tecla alt

PostPosted: Mon Aug 02, 2010 11:10 pm
by Antonio Linares
Carlos,

El error era de la función IsAppThemed() la cual en una modificación reciente tenía un bug.

Acabamos de publicar un nuevo build de FWH 10.7 con la función IsAppThemed() correcta. Según nuestras pruebas ahora funcionan correctamente todos esos ejemplos que mencionas :-)

Re: TRANSPARENCIA SAY Y CHECKBOX fallan al presionar tecla alt

PostPosted: Tue Aug 03, 2010 3:12 pm
by Cgallegoa
Perfecto Antonio, todo bien ahora.

Gracias y saludos,

Carlos Gallego

Re: TRANSPARENCIA SAY Y CHECKBOX fallan al presionar tecla alt

PostPosted: Tue Aug 03, 2010 10:38 pm
by Armando Picon
Antonio
Y para nosotros, los que no poseemos las últimas versiones.... ¿habrá algún consejo, aparte de la consabida actualización necesaria?.. Como decía un personaje de Caricatura Chileno... ¡exijo una explicación! :wink:
Saludos
Armando