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
Color de un oGet
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Color de un oGet
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. ::oGet:type == "N"
::oGet:Picture := StrTran( ::cPicture, ",", "" )
endif
if ! ::lDrag
::oGet:KillFocus() // to properly initialize internal status
::oGet:SetFocus()
::DispText()
if ::oGet:type$"DN"
::nPos := 1
endif
::oGet: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
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. ::oGet:type == "N"
::oGet:Picture := StrTran( ::cPicture, ",", "" )
endif
if ! ::lDrag
::oGet:KillFocus() // to properly initialize internal status
::oGet:SetFocus()
::DispText()
if ::oGet:type$"DN"
::nPos := 1
endif
::oGet: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