Cambiar Color en los get's activos

Cambiar Color en los get's activos

Postby Mike Serra » Fri Dec 15, 2006 10:40 am

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.
Mike Serra
 
Posts: 297
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Postby horacio » Fri Dec 15, 2006 12:49 pm

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
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Postby Mike Serra » Fri Dec 15, 2006 4:37 pm

Muchas Gracias, funcionó perfecto y no tenía tantas líneas como antes.
Mike Serra
 
Posts: 297
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Postby manuramos » Sat Dec 16, 2006 10:01 am

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...
Nos Gusta Programar
manuramos
 
Posts: 219
Joined: Mon Dec 26, 2005 7:25 pm
Location: Jerez de la Frontera (Spain)


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 104 guests