[SOLUCIONADO] Evento Key_Press - cambiar tecla sobre la marcha - Versión para impresión +- Comunidad Gambas-es (https://gambas-es.org) +-- Foro: Gambas (https://gambas-es.org/forum-3.html) +--- Foro: Aplicaciones/Fragmentos de Código (https://gambas-es.org/forum-8.html) +--- Tema: [SOLUCIONADO] Evento Key_Press - cambiar tecla sobre la marcha (/thread-994.html) Páginas:
1
2
|
Evento Key_Press - cambiar tecla sobre la marcha - tincho - 17-08-2022 Hola a todos. ¿Es posible cambiar la tecla pulsada en el evento Key_Press a "siempre mayúscula"? Los ejemplos que encuentro son para detener el evento si la tecla no es la que se espera. Pero si por ejemplo quiero que en un textbox independientemente de si el lock de mayúsculas esta activad o no siempre se agreguen letras mayúsculas, en caso que sea una minúscula la pulsada, que esta se convierta en mayúscula. Los ejemplos habituales son de este tipo Código: PUBLIC SUB TextBox1_KeyPress() ¿Pero como hacer algo que cambie el key.code? Código: PUBLIC SUB TextBox1_KeyPress() RE: Evento Key_Press - cambiar tecla sobre la marcha - jguardon - 17-08-2022 Mayúsculas − A - Z ASCII de 65 a 90 Minúsculas − a - z ASCII de 97 a 122 Supongo que con unas pocas matemáticas puedes sumar y restar para obtener el código ascii correcto y convertirlo a keycode. Saludos RE: Evento Key_Press - cambiar tecla sobre la marcha - Shordi - 18-08-2022 Haciendo algunas pruebas a raíz de este hilo observo, extrañado, que mi gambas no levanta el evento keypress para las teclas normales (letras y números) y sólo lo hace para todas las demás, mayúsculas, control, función, enter, etc. ¿Es algo nuevo que se me ha pasado o debo preocuparme? [System] Gambas=3.17.3 OperatingSystem=Linux Kernel=5.15.0-46-generic Architecture=x86_64 Distribution=Linux Mint 21 Vanessa Desktop=CINNAMON Font=Ubuntu,10 Scale=7 Theme=mint-y-dark-pink Language=es_ES.UTF-8 Memory=15827M Saludos RE: Evento Key_Press - cambiar tecla sobre la marcha - tincho - 18-08-2022 (17-08-2022, 23:22)jguardon escribió: Supongo que con unas pocas matemáticas puedes sumar y restar para obtener el código ascii correcto y convertirlo a keycode. Gracias Jesús, seguramente se pueda hacer algo de eso. De todas maneas lo que me interesa saber es si se puede alterar el valor de KEY dentro del mismo evento. (18-08-2022, 09:42)Shordi escribió: observo, extrañado, que mi gambas no levanta el evento keypress para las teclas normales Es raro eso. RE: Evento Key_Press - cambiar tecla sobre la marcha - Shordi - 18-08-2022 En raspberry pi con ubuntu budgie 21 y gambas 3.16.3, funciona como se esperaba.... RE: Evento Key_Press - cambiar tecla sobre la marcha - tincho - 18-08-2022 Hice un sencillo ejemplo y en este en mi computadora levanta todas las teclas. [System] Gambas=3.17.3 OperatingSystem=Linux Kernel=5.15.60-1-MANJARO Architecture=x86_64 Distribution=Manjaro Linux Desktop=XFCE Font=Noto Sans,10 Scale=7 Theme=matcha-sea Language=es_ES.utf8 Memory=7854M RE: Evento Key_Press - cambiar tecla sobre la marcha - Shordi - 18-08-2022 He averiguado el problema: El puto GTK3. Cambiando a QT5, todo perfecto... señor, señor... Esto es lo que intentaba probar... aunque no sé si se ajusta a lo que quieres hacer. Código: Public Sub ComboBox1_KeyPress() No creo que puedas cambiar el valor de key.code, aunque siempre puedes parar el evento y usar SendKey(), supongo... Saludos RE: Evento Key_Press - cambiar tecla sobre la marcha - tincho - 18-08-2022 (18-08-2022, 10:27)Shordi escribió: No creo que puedas cambiar el valor de key.code, aunque siempre puedes parar el evento y usar SendKey(), supongo... El problema es que en los casos en que el usuario intenta poner un caracter en en otra parte diferente del final de la cadena el método que uso yo y el que propones tu, también pone el caracter "nuevo" al final de la cadena. Como se usa SendKey()? RE: Evento Key_Press - cambiar tecla sobre la marcha - vuott - 18-08-2022 ...para empezar_ https://gambaswiki.org/wiki/comp/gb.desktop/desktop/sendkeys Un esemplo practico: cómo ejecutar con código Gambas un programa externo (por ejemplo "Gedit") desde Terminal. 1) Activar el componente gb.desktop. 2) Abrir el terminal. 3) encontrar el número de identificación (ID) de la ventana del Terminal (por ejemplo usando desde Terminal el comando "wmctrl -l"). 4) mantener abierto el Terminal. 5) Ejecutar el siguiente código Gambas: Código: Public Sub Button1_Click() RE: Evento Key_Press - cambiar tecla sobre la marcha - Shordi - 18-08-2022 Se me adelantó el Cónsul con lo de SendKeys() Para las inserciones de texto el código sería Código: Public Sub ComboBox1_KeyPress() Saludos |