Problemas con siglelineedit y tecla enter

Como puedo hacer que cuando presione la tecla enter en un objeto singlelineedit pase a otro objeto, pues no existe un evento keypress o algo así.

1 respuesta

Respuesta
1
Como bien dices el evento no existe, sin embargo, power builder es un lenguaje orientado a eventos, por lo que en este caso puedes añadir dicho evento. Para hacer esto deberás seguir los siguientes pasos.
1- Hacer doble click sobre el control en cuestión.
2- Cuando te presente el área de scripts, selecciona la pestaña que indica los eventos (Event List).
3- Ahora haces click derecho sobre la parte en blanco.
4- Selecciona la opción ADD.
5- En la pantalla a continuación te solicita algunos datos, en este caso simplemente coloca el nombre por ejemplo key
6- Ve a la parte final inferior y posiciónate en la casilla EVENT ID, y selecciona el evento id PBM_KEYDOWN.
7- Ahora ya tienes definido el evento, el resto de las cosas las coloca el propio event id, como parámetros, retornos, etc.
Ahora ya tienes incluido el evento que necesitas.
El siguiente paso es, insterceptar, el movimiento del teclado, por ejemplo, si el usuario presiona ENTER cambiarlo por un TAB.
Utiliza por ejemplo el siguiente script.
INTEGER li_return = 0
CHOOSE CASE key
CASE KeyEnter!
SEND( HANDLE(THIS), 256, 9, 0)
li_return = 1
END CHOOSE
RETURN(li_return)
Explicando un poco.
Por medio de la función SEND() lo que hace power builder es enviar un mensaje a windows este envía un valor ascii, 9 que es un tab, utilizando el código ascii disponible 256, de tal forma que introduzca un valor en el teclado.
Y retorna 1 al valor del evento, lo cual indica que el evento debe cancelar su secuencia normal, el resultado es, interrumpe la secuencia del ENTER y en su lugar, continua con la secuencia de lo que hace un TAB.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas