Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problemas al capaturar teclas en un DbEdit (https://www.clubdelphi.com/foros/showthread.php?t=13974)

Walterdf 06-09-2004 13:42:11

Problemas al capaturar teclas en un DbEdit
 
Buenas
Tengo un form, supongamos, con 3 DBEdits, dbedit1, dbedit2 y dbedit3 (con ese tab_order) y necesito que cuando se presione la tecla TAB para pasar del 2 al 3, muestre un cartel con showmessage, lo hice de la siguiente manera: en el evento OnKeyUp del DbEdit2 puse:

case key of
VK_TAB : Begin
Showmessage('Mensaje');
end;

y solo funciona si el tab lo hago para pasar del DbEdit1 al 2. Si cambio VK_TAB por VK_RETURN (tecla enter), funciona perfecto ¿porque pasa?, ¿como puedo capturar el tab?
Muchas gracias.
Saludos.
Walter.

roman 06-09-2004 15:25:34

Curioso, nunca me había percatado de este comportamiento que confirmo.

Creo que te será más fácil usar el evento OnExit del segundo DBEdit.

// Saludos

Walterdf 06-09-2004 15:41:13

Antes que nada muchas gracias por responder.
Resulta que no puedo usar el OnExit del anterior por lo siguiente, el dbedit que necesita el evento del tab posee formato de fecha y lo que estoy haciendo mediante código es que el usuario entre la fecha, por ejemplo, 060904 y el código se lo convierta a 06/09/2004, con el enter funciona perfecto pero con el tab, al no capturar el evento de esa tecla, la fecha la toma como inválida. A lo mejor me estoy complicando y hay otra forma de hacer esto.
Gracias nuevamente.
Un abrazo.

Walter

Walterdf 06-09-2004 16:07:49

Perdón, en el OnExit me da error, no reconoce el key ya que no se declara en el evento, en cambio en el OnKeyUp y OnKeyDown si lo declara.
Creo que el problema está en que la tecla tab no "discrimina" Up o Down como las demás ya que si la dejás presionada recorre todos los componentes una y otra vez, en cambio el enter (por ejemplo) si la dejas presionada se queda ahí hasta que levantes el dedo.
Creo que lo ideal sería usar OnKeyPress pero declara a key como Char.
Si alguien sabe otra forma, agredeceré me lo hagan saber.
Muchas gracias.
Saludos.
Walter.

roman 06-09-2004 16:08:51

Si pones la máscara del estilo de '99/99/99' el usuario escribe 060904 y automáticamente se convierte.

// Saludoss

Walterdf 06-09-2004 16:13:59

Es decir, ¡¡¡me estaba complicando la vida!!!
Muchas gracias Roman, igual el proceso anterior me sirvió para aprender.
Un abrazo.

Walter


La franja horaria es GMT +2. Ahora son las 14:37:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi