Cómo le hago para que los botones normales y los Picture Botones acepten ENTER como si fuera la BARRA ESPACIADORA, sin tener que definirlos como DEFAULT, pues tengo activado ENTER = TABULADOR en los Data Windows. Espero darme a entender... Por la atención prestada, mil gracias! Raul Flores Tepic, Nayarit, MX.
1 respuesta
Respuesta de Antonio Garcia
1
1
Antonio Garcia, clipper todas sus versiones (manejo total) power builder todas...
Esto que dices ya es posible en la version 8, sin embargo puede que aun tenga algunas cosillas pendientes, bueno independientemente de ello, la solución es la siguiente: *- tienes que añadir un evento, en el boton, este evento estará basado en el event_id pbm_keydown al cual podrias llamarle por ejemplo key *- el evento añadido automaticamente integra los parametros standar, del evento key *- uitlizando la variable o parametro de referencia llamado key, podras conocer que tipo de tecla fue la que se presiono. *- una vez conocido estos datos tendras que utilizar la funcion SEND(), la cual envia un mensaje a windows. el script será de la siguiente manera: INTEGER li_return = 0 CHOOSE CASE key CASE KeyEnter! THIS.POSTEVENT(Cicked!) li_return = 1 END CHOOSE RETURN(li_return) Explicando: La variable key, la cual es un parámetro de referencia, contiene el código de la tecla que acaba de ser presionada, la instrucción choose permite hacer una condición múltiple, aunque esta vez solo evalúe una única posibilidad, la cual es comparar el valor de key, con el valor de KeyEnter!, que posee el código 13, que es el ascii del enter o return, cuando esta se cumple, entonces ejecuta la instrucción POSTEVENT del objeto en intentar, o sea el propio del botón, la expresión Clicked!, significa que debe ejecutar el evento clicked, si y solo si cuando finalice de ejecutar el evento en donde se encuentra actualmente. Lo único que te queda es indicar el script de acción en el evento CLICKED(), Advertencia: Claro esto puede que sea tedioso estar repite que repite en cada uno de los botones que necesitas incluir esta peculiaridad, la solución es simplemente crear un nuevo control, al crear un nuevo control, basado en uno ya existente, commandbutton por ejemplo, y añades todo lo anterior expuesto, simplemente cuando necesites de estas características, integras el nuevo objeto o control a tu pantalla, re-emplazando el botón standard por el que tu ahora has creado nuevo, permitiendo así tener siempre esta peculiaridad, es más, hasta podrías crear una variable en el control, la cual permita usar o no esta característica, dicha variable se convertirá en una propiedad, cada vez que el objeto es instanciado, o heredado, siempre y cuando por lo menos trabajes con la version 7 de pb.