Estimados Amigos
Agradecerle infinitamente por su atencin a mi pregunta
Necesito una funcin que cuando pulse la tecla Enter realmente
se ejecute la tecla Tab (simular enter por tab)
En otros lenguaje haban funciones como sendkeys, keyboard
Mi pregunta es si existe alguna funcin similar en xojo para
realizar esta operacin.
Cordialmente,
La Sendkeys exista en Xojo para Windows. Mira aqui : https://forum.xojo.com/6009-sendkey-function
Hola, tambien si lo quieres para que cuando en una caja de texto, por ejemplo, den enter deseas que pase al siguiente control puedes utilizar algo asi en el keydown:
select case vlKey
case 3,13,31 'enter o down
self.Window.[b]FocusNext[/b]
perdon antes de eso hago: vlkey = asc(key)
En mi caso creo una clase heredada del textbox y le agrego esa funcionalidad.
Saludos
Gracias MIchel Bujardet, por tu gran ayuda me ha permitido conocer esta funcin
que me ha servido de mucho para incluirlo en mi programacin y solucionar determinadas funcionalidades
de mi sistema que me faltaban.
Cordialmente,
Raul
Gracias Jorge Morales, por tu atencin y ayuda que me ha permitido implementar un clase heredada y
con dar solucin a lo planteado.
Saludos
Raul
Para detectar teclas en un Textfield y navegar por ellos, puedes usar esto:
(xojo Desktop 2014 release 2.1)
[code]Function KeyDown(Key As String) As Boolean
dim DetectedKey as integer = asc(key)
select case DetectedKey
case 3
' ENTER numeric board
Window.FocusNext ()
case 13
' ENTER normal keyboard
Window.FocusNext ()
case 31
’ down arrow
Window.FocusNext ()
case 30
’ Up arrow
Window.FocusPrevious()
case 27
’ ESC - Go save bottom
end select
return true
End Function
[/code]
Sorry dont use select case to this. use If…then… this work fine…—>
dim DetectedKey as integer = asc(key)
if DetectedKey = 3 then
' ENTER numeric board
Window.FocusNext ()
return true
elseif DetectedKey = 13 then
' ENTER normal keyboard
Window.FocusNext ()
return true
elseif DetectedKey = 31 then
' down arrow
Window.FocusNext ()
return true
elseif DetectedKey = 30 then
' Up arrow
Window.FocusPrevious()
return true
elseif DetectedKey = 27 then
' ESC - Go save bottom
return true
end if
Select Case Asc( Key )
Case 3, 13, 31, 30
FocusNext
Case 9
Break
Case Else
Return False
End Select
Return True
Select case is a perfect fit for this case. Just change 3, 13, 31 to Enums. If / Else / Endif is not as clear as a switch statement.
Muchas Gracias Armando por tu gran ayuda