FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
capturar ESC+F4
Hola, estoy queriendo capturar las teclas Esc+F4 osea que al presionarlas juntas realice una acción, he buscado en el foro y encontré varios hilos interesantes pero ninguno me ayuda con mi problema, hay soluciones para cuando uno quiere presionar dos teclas con alt,shift,ctrl…. Pero no con Escape.
Si detecto las teclas por separado no hay problema en el Onkeydown funciona perfecto pero al querer capturar ambas no hay caso. He probado asi Código Delphi [-] if (key=vk_escape) and (key=vk_f4) then {lo que quiera hacer} Lo probé en el Onkeydown, Onkeypress, Onkeyup y nada esto lo estoy probando en un Dbgrid y en un Dbedit, y de tanto probar y ver en los hilos relacionados en el foro me encontré con otro problema el mendigo Escape funciona como cancelación de acción, ósea que si estoy en el dbedit y doy escape me borra lo que escribí osea que cuando lo quiero capturar primero me borra el contenido y luego ejecuta mi código, de igual manera en el dbgrid, me cancela toda la fila con valores que había cargado. En síntesis primero creo que debo solucionar el tema de que hay algo que captura el Escape antes que el Onkeypress y ahí estoy perdido porque no sabría que seria. Si me pudiesen dar una mano les agradecería… Como datos extras les digo que el form tiene la propiedad keypreview=false para que el from no trate de capturar las teclas, todos los botones que posee el formulario tienen la propiedad default=false para que no ejecuten ninguna acción al enter o al escape como he leido en otro hilos No escribo los otro codigo que encontre en los hilos porque ya se hace muy larga mi explicación… |
#2
|
||||
|
||||
yo de nuevo
me pasaron este codigo y solucione lo del esc+f4
if (HiWord(GetKeyState(VK_escape)) <> 0)and(HiWord(GetKeyState(VK_f4)) <> 0) then pero aun no puedo solucionar lo de evitar la accion del escape osea que no me cancele o borre nada |
#3
|
||||
|
||||
Como has encontrado la solución, lo que procede es dejarlo, no borrarlo, así otros usuarios tendrán acceso a esa solución.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#4
|
||||
|
||||
A ver si esto te resulta útil:
Código:
object Form1: TForm1 Left = 359 Top = 278 Width = 299 Height = 190 Caption = 'Demostración de pulsacion de teclas' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object ApplicationEvents1: TApplicationEvents OnMessage = ApplicationEvents1Message Left = 96 Top = 48 end end
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO |
#5
|
||||
|
||||
interesante aporte Ardilla lo voy a probar
|
#6
|
||||
|
||||
Date cuenta, que el procedimiento en sí, no comprueba que ambas estén pulsadas, sino que comprueba que la secuencia sea precisamente esa.
Se puede optimizar un poco para comprobar que a sido correcta la secuencia. Es decir, tal cual está, se puede pulsar ESC, A y F4 y saltaría, por lo que cambiando el estado de la variable en el caso de que no sea esa la secuencia, se vuelve a "iniciar" la variable.
También se podría comprobar la secuencia distinta por ejemplo F4-ESC, solamente hay que jugar con las variables........
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
capturar error | gulder | Conexión con bases de datos | 1 | 09-06-2006 18:51:20 |
Capturar error | silviodp | Conexión con bases de datos | 3 | 01-07-2005 11:59:36 |
Capturar Tecla | Sick boy | OOP | 0 | 25-09-2004 11:27:59 |
Capturar pantalla | pablo | Varios | 1 | 07-09-2004 20:15:10 |
Capturar Sonido | cancerbero | Varios | 0 | 14-08-2004 01:15:47 |
|