Página 1 de 1
SETFOCUS
Publicado: Mar Ene 31, 2006 1:54 pm
por joseluis
Paco,
La manera de indicar que no quieres que se pierda el foco es retornando
..F. en el evento OnExit. Si pones valor .T. o NIL el foco pasa al
siguiente control.
Saludos,
José Luis Capel
Paco V escribió:
> Quiero comprobar que el dato introducido en un oDBMaskEdit se encuentre en
> una base de datos. Si no lo encuentra que vuelva el foco al oDBMaskEdit para
> que introduzca nuevo valor.
>
> Coloco esto en el evento ONEXIT del oDBMaskEdit
>
> IF ::oDbfDataSet1:Seek( RTRIM(::oDBMaskEdit1:value) )
> msginfo("OK")
> ELSE
> ::oDbMaskEdit1:SetFocus(.t.)
> MSGINFO("MAL, REPITE"")
> ENDIF
>
> Si el dato está en la base de datos funciona OK y continua, pero en caso
> de no encontrarlo tambien continua.
> No lo entiendo, que hago mal?
>
> Paco V
SETFOCUS
Publicado: Mar Ene 31, 2006 1:59 pm
por Paco V
Me respondo, lo estaba haciendo ma. Basta con return .f.
Y ademas ya lo habia preguntado.
Perdon.
Paco V
"Paco V" <
ssi@ono.com> wrote:
>
>Quiero comprobar que el dato introducido en un oDBMaskEdit se encuentre
en
>una base de datos. Si no lo encuentra que vuelva el foco al oDBMaskEdit
para
>que introduzca nuevo valor.
>
>Coloco esto en el evento ONEXIT del oDBMaskEdit
>
>IF ::oDbfDataSet1:Seek( RTRIM(::oDBMaskEdit1:value) )
> msginfo("OK")
> ELSE
> ::oDbMaskEdit1:SetFocus(.t.)
> MSGINFO("MAL, REPITE"")
>ENDIF
>
>Si el dato está en la base de datos funciona OK y continua, pero en caso
>de no encontrarlo tambien continua.
>No lo entiendo, que hago mal?
>
>Paco V
SETFOCUS
Publicado: Mar Ene 31, 2006 2:01 pm
por Paco V
La leche, no me habeis dado tiempo ni a pediros perdon.
Gracias.
"Paco V" <
ssi@ono.com> wrote:
>
>Quiero comprobar que el dato introducido en un oDBMaskEdit se encuentre
en
>una base de datos. Si no lo encuentra que vuelva el foco al oDBMaskEdit
para
>que introduzca nuevo valor.
>
>Coloco esto en el evento ONEXIT del oDBMaskEdit
>
>IF ::oDbfDataSet1:Seek( RTRIM(::oDBMaskEdit1:value) )
> msginfo("OK")
> ELSE
> ::oDbMaskEdit1:SetFocus(.t.)
> MSGINFO("MAL, REPITE"")
>ENDIF
>
>Si el dato está en la base de datos funciona OK y continua, pero en caso
>de no encontrarlo tambien continua.
>No lo entiendo, que hago mal?
>
>Paco V
SETFOCUS
Publicado: Mar Ene 31, 2006 2:01 pm
por Pedro Amaro
No llevo mucho en esto pero creo que hay dos problemas:
1º Hasta ahora siempre he usado la llamada al metodo Setfocus de los objetos
sin parametro por lo que yo pondria
::oDbMaskEdit1:SetFocus()
2º Si primero pones el foco en el control y luego llamas ha la ventana de
mensaje estan dandole el foco a dicha ventana, cambia el orden de las
instrucciones y prueba
ELSE
MSGINFO("MAL, REPITE"")
::oDbMaskEdit1:SetFocus()
ENDIF
Saludos
Pedro Amaro
SETFOCUS
Publicado: Mar Ene 31, 2006 3:46 pm
por paco-ssi
Pedro, habia probado de las dos formas, pero el problema era que si no
quiero que salga del control, tengo que devolver .f.
Gracias.
"Pedro Amaro" <
dospcservice@tiscali.es> escribió en el mensaje
news:43df5fa4$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
> No llevo mucho en esto pero creo que hay dos problemas:
>
> 1º Hasta ahora siempre he usado la llamada al metodo Setfocus de los
> objetos sin parametro por lo que yo pondria
> ::oDbMaskEdit1:SetFocus()
>
> 2º Si primero pones el foco en el control y luego llamas ha la ventana de
> mensaje estan dandole el foco a dicha ventana, cambia el orden de las
> instrucciones y prueba
>
> ELSE
> MSGINFO("MAL, REPITE"")
> ::oDbMaskEdit1:SetFocus()
> ENDIF
>
> Saludos
> Pedro Amaro
>
>