Page 1 of 1

Otra de Color en Get

Posted: Sat Feb 11, 2006 1:01 pm
by Jose Luis
Hola amigos:
Estoy atascado en lo siguiente:
Quiero que cuando pierda el foco un get, (Fecha), compruebe si han puesto la fecha de trabajo, si no es así, que el get se ponga de color rojo.
Yo ulitizo la clase Btnget, y he puesto lo siguiente:
oFe:bLostFocus = { ||iif(cFe<>dfetra,oFe:SetColor( ,RGB(255,56,29)),) }
- oFe es el get
- dfetra es la fecha de trabajo
- cFe es la variable del get (fecha)
Esto funciona a la segunda, es decir, si le pongo fecha distinta pasa al siguiente get sin cambiar de color, si vuelvo al get y confirmo nuevamente, ahora sí me cambia de color.
Que tengo que hacer para que me lo haga a la primera ?

Un Saludo

Jose Luis

Posted: Sat Feb 11, 2006 1:15 pm
by manuramos
Intenta: oFe:SetColor(clr_texto,clr_fondo)

Posted: Sat Feb 11, 2006 11:45 pm
by Jose Luis
Nada, seguimos necesitando pasar dos veces por el get para que lo pinte en rojo.
Un saludo

Jose Luis

Posted: Sun Feb 12, 2006 1:52 am
by Antonio Linares
Jose Luis,

oFe:SetColor(clr_texto,clr_fondo)
oFe:Refresh()

Posted: Sun Feb 12, 2006 6:13 pm
by manuramos
Yo tengo oFe:SetColor(...) 10.000 veces en mis programas y me funciona siempre (sin refrescar), algo raro estás interponiendo. De todas formas, eso me ocurre con los SAY y lo he solucionado de la siguiente manera:

oSay:SetColor(CLR_TEXTO,CLR_FONDO)
oSay:SetText( oSay:cCaption ) // del tirón

Para los Get's sería:

oGet:SetColor(CLR_TEXTO,CLR_FONDO)
oGet:cText( oGet:cText )

Así no tienes que pasar dos veces por el Get; de una sola vez ejecutas las dos acciones.

Si tienes muchos Get's, mételos en un array y haz:

AEVAL(aGet, { |oG| oG:SetColor(CLR_TEXTO,CLR_FONDO),oG:cText( oG:cText) } )

Es más rápido y Ocupa poco código, además al ser una array ocupa menos memoria (Antonio corrigeme si me equivoco)

Suerte