Buenos días foro:
Os comento una cosilla que para muchos creo que será facil. En las antiguas aplicaciones en FW 2.4 tenía que cuando obtenía el foco un get se cambiaba el color, estoy intentando hacer lo mismo con fw 2.8 pero no se si tengo que cambiar las clases tget y tsget, como lo tenía hecho en 2.4 y no se si son en los métodos initiate, . . . , si me comentais una hoja de ruta a seguir, mejor que mejor.
MUCHAS GRACIAS de ANTEMANO.
Cambiar Color en los get's activos
-
- Posts: 287
- Joined: Fri Apr 14, 2006 5:52 pm
- Location: Córdoba (España)
hola
Para cambiar el color de los gets cuando está en foco oGet : bGotFocus := { || oGet : SetColor( 0, GetSysColor( 15 ) } y fuera de foco oGet : bLostFocus := { || oGet : SetColor( 0, CLR_WHITE }. Si querés que esto siempre suceda tendrás que modificar la clase tget y poner estas mismas variables en los métodos New y Redefine. Espero te sirva.
Saludos
Para cambiar el color de los gets cuando está en foco oGet : bGotFocus := { || oGet : SetColor( 0, GetSysColor( 15 ) } y fuera de foco oGet : bLostFocus := { || oGet : SetColor( 0, CLR_WHITE }. Si querés que esto siempre suceda tendrás que modificar la clase tget y poner estas mismas variables en los métodos New y Redefine. Espero te sirva.
Saludos
-
- Posts: 287
- Joined: Fri Apr 14, 2006 5:52 pm
- Location: Córdoba (España)
Eso supone hipotecar las funciones de bGotFocus y bLostFocus. Si estás dispuesto a modificar la clase GET puedes hacerlo permanente sin recurrir a esos codeblocks que algún día los vas a necesitar y ya los tendras utilizados con esto del color.
Esto es lo que yo utilizo:
Nuevos datas:
DATA nClrFore,nClrBack // Colores con Gets sin foco (colores del sistema)
DATA nClrGFore,nClrGBack // Colores para Gets con foco
Nuevo método INITIATE:
METHOD Initiate( hDlg ) CLASS TUCLASE
Super:Initiate( hDlg )
::nClrFore := ::nClrText // toma colores del sistema
::nClrBack := ::nClrPane
RETURN NIL
Nuevo método GOTFOCUS:
METHOD GotFocus( hCtlLost ) CLASS TUCLASE
IF ::nClrGFore # NIL
::SetColor(::nClrGFore,::nClrGBack) // activa colores Gets con foco
ENDIF
RETURN Super:GotFocus( hCtlLost )
Nuevo método LOSTFOCUS:
METHOD LostFocus( hCtlFocus ) CLASS TUCLASE
LOCAL xRet := Super:LostFocus( hCtlFocus )
IF ::nClrGFore # NIL
::SetColor(::nClrFore,::nClrBack) // activa colores Gets sin foco
ENDIF
RETURN xRet
Ésto si haz creado tu propia clase heredada, sinó, sólo copia las lineas resaltadas referentes a los colores (en GotFocus: al rpincipio; en Initiate y LostFocus: al final, tras lo ya existente, para asegurar).
Parece mucho, pero no lo es, si copias lo aquí escrito y lo pegas en tu clase Get es muy rápido.
Suerte...
Esto es lo que yo utilizo:
Nuevos datas:
DATA nClrFore,nClrBack // Colores con Gets sin foco (colores del sistema)
DATA nClrGFore,nClrGBack // Colores para Gets con foco
Nuevo método INITIATE:
METHOD Initiate( hDlg ) CLASS TUCLASE
Super:Initiate( hDlg )
::nClrFore := ::nClrText // toma colores del sistema
::nClrBack := ::nClrPane
RETURN NIL
Nuevo método GOTFOCUS:
METHOD GotFocus( hCtlLost ) CLASS TUCLASE
IF ::nClrGFore # NIL
::SetColor(::nClrGFore,::nClrGBack) // activa colores Gets con foco
ENDIF
RETURN Super:GotFocus( hCtlLost )
Nuevo método LOSTFOCUS:
METHOD LostFocus( hCtlFocus ) CLASS TUCLASE
LOCAL xRet := Super:LostFocus( hCtlFocus )
IF ::nClrGFore # NIL
::SetColor(::nClrFore,::nClrBack) // activa colores Gets sin foco
ENDIF
RETURN xRet
Ésto si haz creado tu propia clase heredada, sinó, sólo copia las lineas resaltadas referentes a los colores (en GotFocus: al rpincipio; en Initiate y LostFocus: al final, tras lo ya existente, para asegurar).
Parece mucho, pero no lo es, si copias lo aquí escrito y lo pegas en tu clase Get es muy rápido.
Suerte...
Nos Gusta Programar