Página 1 de 1

Sigo con Problemas al Pasar el Focus

Publicado: Lun Feb 07, 2005 8:54 pm
por carlos
Miren hago esto para pasar el focus de un TEDIT a otro TEdit cuando presiono
Enter y no me funciona
WITH OBJECT ::oEditUser := TEdit():New(::oTB2)
:SetBounds( 62, 2, 80, 20 )
:Value :=""
:lPassword := .F.
:cPasswordChar := ""
:nclrTextFocus := clMenuText
:cBalloon := "Teclee Nombre de Usuario"
:onEnter := ::PasaControl()
:Create()
:SetFocus()
END
//---------------------------------------------------------- ----------------
----
METHOD PasaControl() CLASS TControlar
WITH OBJECT ::oEditClave
:SetFocus()
END
Return NIL
ni esto por ejemplo, este me lo pasa pero antes de editar el TEDIT que
quiero porner el nombre de usuario
WITH OBJECT ::oEditUser := TEdit():New(::oTB2)
:SetBounds( 62, 2, 80, 20 )
:Value :=""
:lPassword := .F.
:cPasswordChar := ""
:nclrTextFocus := clMenuText
:cBalloon := "Teclee Nombre de Usuario"
:onEnter := "PasaControl"
:Create()
:SetFocus()
END
Ni esto funciona
WITH OBJECT ::oEditUser := TEdit():New(::oTB2)
:SetBounds( 62, 2, 80, 20 )
:Value :=""
:lPassword := .F.
:cPasswordChar := ""
:nclrTextFocus := clMenuText
:cBalloon := "Teclee Nombre de Usuario"
:onEnter := ::oEditClave:SetFocus()
:Create()
:SetFocus()
END
Me respondieron en el foro que hiciera lo siguiente
METHOD EditUserKeyDown( oSender, nKey, nFlags ) CLASS TControlar
if nKey = VK_RETURN
::oEditClave:SetFocus()
endif
RETURN Nil
WITH OBJECT ::oEditUser := TEdit():New(::oTB2)
Application:lUseReturn := .T.
:SetBounds( 62, 2, 80, 20 )
:Value :=""
:lPassword := .F.
:cPasswordChar := ""
:nclrTextFocus := clMenuText
:cBalloon := "Teclee Nombre de Usuario"
:onEnter := EditUserKeyDown
:Create()
:SetFocus()
END
WITH OBJECT ::oEditClave := TEdit():New(::oTB2)
:SetBounds( 62, 2, 80, 20 )
:Value :=""
:lPassword := .F.
:cPasswordChar := ""
:nclrTextFocus := clMenuText
:cBalloon := "Teclee Nombre de Usuario"
:onEnter := ::ValidUser()
:SetFocus()
END
El caso es que no me pasa el foco al oEditClave
Por favoir diganme que hago mal o que me falta para que esto funcione

Sigo con Problemas al Pasar el Focus

Publicado: Lun Feb 07, 2005 9:44 pm
por jfgimenez
Carlos,
ya veo que lo has solucionado. De todos modos, me gustaría aclararte una
cosa:
> :onEnter := ::PasaControl()
El evento OnEnter no se dispara cuando se pulsa enter, sino cuando el
control obtiene el foco. Por eso, con este código, nunca podría funcionar.
Te resumo los eventos que están relacionados con este tema:
- OnEnter: se dispara cuando el control recibe el foco.
- OnExit: cuando el control pierde el foco. Se puede retornar .F. para que
no lo pierda y entonces sería similar al VALID de Clipper
- OnKeyDown: cuando el usuario pulsa cualquier tecla, excepto Alt.
- OnChar: cuando el usuario pulsa una tecla que tiene código ASCII. Es
decir, las teclas de función, los cursores, etc. NO se reciben en OnChar,
pero sí en OnKeyDown. En cambio, las teclas de la A a la Z, los números,
signos de puntuación, Enter, Esc y algunas más, sí se reciben tanto en
OnKeyDown como en OnChar.
--
Un saludo,
José F. Giménez