FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para CA-Clipper cambio de color en los controles deshabilitados
Posts: 203
Joined: Tue Oct 11, 2005 02:17 PM
cambio de color en los controles deshabilitados
Posted: Thu Mar 05, 2009 02:46 PM
Hola:
Para que los gets no aparezcan difuminados cuando se encuentran deshabilitados uso la clausula lDisColors del get. He intentando implementar este comportamiento en otros controles como son el Get Multilínea pero no lo consigo

Lo que he hecho es redefinir el metodo Paint() y agregarle el código del get pero no hace lo que debería. Seguramente habrá que hacer mas cambios pero no se por donde comenzar.

En realidad me gustaría que este comportamiento se pudiera aplicar también a los controles combobox, checkbox, etc.

Un saludo

Code (fw): Select all Collapse
METHOD Paint() CLASS TMultiGet

   local aInfo := ::DispBegin()

   if ::oBrush != nil
      FillRect( ::hDC, GetClientRect( ::hWnd ), ::oBrush:hBrush )
   else
      CallWindowProc( ::nOldProc, ::hWnd, WM_ERASEBKGND, ::hDC, 0 )
   endif

      if ::lDisColors
         SetTextColor( ::hDC, GetSysColor( COLOR_GRAYTEXT ) )
         SetBkColor( ::hDC, GetSysColor( COLOR_WINDOW ) )
      else
         SetTextColor( ::hDC, ::nClrText )
         SetBkColor( ::hDC, ::nClrPane )
      endif

   CallWindowProc( ::nOldProc, ::hWnd, WM_PAINT, ::hDC, 0 )

   if ValType( ::bPainted ) == "B"
      Eval( ::bPainted, ::hDC, ::cPS, Self )
   endif

   ::DispEnd( aInfo )

return 1
Posts: 203
Joined: Tue Oct 11, 2005 02:17 PM
Re: cambio de color en los controles deshabilitados
Posted: Tue Mar 10, 2009 04:57 PM

Hola Antonio:

¿Existe alguna posibilidad para realizar lo que pretendo?
o es muy compleja la modificación.

Alguna ayuda...

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: cambio de color en los controles deshabilitados
Posted: Thu Mar 26, 2009 05:36 PM

Desde METHOD Colors( hDC ) CLASS TControl se pueden cambiar los colores antes de que el control vaya a ser pintado.

Podrias redefinir ese metodo en las clases que desees y ver si desde ese metodo, en las clases que pruebes, te permite cambiar los colores como quieres.

Revisa el codigo fuente de METHOD Colors( hDC ) CLASS TControl, e implementa METHOD Colors( hDC ) CLASS TMultiGet y comprueba si desde ahi te permite cambiar los colores estandard que el usa.

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion