Color de un oGet

Post Reply
servicomver
Posts: 159
Joined: Fri Nov 18, 2005 7:34 pm

Color de un oGet

Post by servicomver »

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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

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

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

Antonio Linares
www.fivetechsoft.com
User avatar
lubin
Posts: 404
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru
Contact:

Re: Color de un oGet

Post by lubin »

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
Post Reply