FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para CA-Clipper Color de un oGet
Posts: 198
Joined: Fri Nov 18, 2005 07:34 PM
Color de un oGet
Posted: Thu Jan 05, 2006 07:40 PM

En un oDlg tengo un dbcombo el cual al tener el foco el color es: fondo amarillo y letras negras, al perder el foco cambia a su color normal osea letras negras con fondo blanco, mi pregunta es la siguiente:
como puedo hacer (por comando) que un oGet cambie de color de igual forma, es decir al tener el foco sea tambien letras negras fondo amarillo y al perderlo cambie tambien a letras negras fondo blanco, esto es debido que en la pantalla de captura se tienen muchos oGets y el Usuario luego no distingue donde va la captura o en que parte esta el cursor de la pantalla (tomando en cuenta que son personas mayores y realmente no ven muy bien) por eso surgio la duda, agradezco mucho sus atenciones, saludos

servicomver@hotmail.com
veracruz, mexico

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Color de un oGet
Posted: Thu Jan 05, 2006 07:53 PM

oGet:bGotFocus = { || oGet:SetColor( ..., ... ) }

oGet:bLostFocus = { || oGet:SetColor( ..., ... ) }

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 467
Joined: Fri Dec 09, 2005 12:41 AM
Re: Color de un oGet
Posted: Fri Jan 06, 2006 04:50 PM
Buen dia.

Con el permiso de Antonio, Me gustaria comentarte, que tuve la misma necesidad el año pasado y en la anterior NEWs me pasaron este dato:

modificar la clase Tget : en el Metodo GotFocus() cambiar al final del metodo en setcolor()

esto me ha funcionado muy bien y la ventaja que este efecto se aplica a todo tu programa, y no es necesario hacerlo para cada get

me gustariia que el estimado Antonio nos pueda convalidar este procedimiento ....

aqui te mando una copia de ese metodo del tGet modificado, la linea de rojo es lo que se ha modificado.... esta al final...

METHOD GotFocus() CLASS TGet

if ! Empty( ::cPicture ) .and. ::type == "N"
::Picture := StrTran( ::cPicture, ",", "" )
endif

if ! ::lDrag
::KillFocus() // to properly initialize internal status
::SetFocus()
::DispText()
if ::type$"DN"
::nPos := 1
endif
::Pos = ::nPos
::SetPos( ::nPos )
CallWindowProc( ::nOldProc, ::hWnd, WM_SETFOCUS )
if Set( _SET_INSERT )
DestroyCaret()
CreateCaret( ::hWnd, 0, 6, ::nGetChrHeight() )
ShowCaret( ::hWnd )
endif
else
HideCaret( ::hWnd )
endif

Super:GotFocus()
::setcolor(nRGB(0,0,0),nRGB( 231,226,141)) // cuando toma el foco pone el fondo amarillo
return 0

Continue the discussion