PDA

Ver la Versión Completa : La tecla Tab en delphi?


danytorres
15-05-2003, 15:31:53
Buenos dias foro. mi pregunta es la tecla o la tabulacìon cual es?
el enter es( #13) y Tab ?.

-----------------------------------------------------

Un saludo..... :)

andres1569
15-05-2003, 15:40:50
Hola:

Tab es #9. En la unit windows vienen definidas todas estas teclas con su número ASCII correspondiente, con los prefijos VK_

Un saludo

Lepe
15-05-2003, 16:12:48
Tal y como dice andres, VK_TAB es la tecla tabulador y la tecla intro es VK_RETURN, aunque si lo usas dentro del evento KeyPress de un control, éste es de tipo caracter, no un entero, así que has de usar:

if ord(VK_TAB)=Key then
...

Mientras que si lo usas en un evento KeyUp o KeyDown

if VK_TAB= key then
...

( para mi es mas cómodo utilizar las constantes ( Virtual Keys = VK ) ya que me olvido del valor que realmente tiene.


Un saludo

Julio César
15-05-2003, 20:23:48
http://www.asciitable.com/
En esta dirección encontraras todas las teclas en código ASCII.

Ejemplo:

Begin
if (key=#9) then //Si la tecla pulsada es igual a TAB
showmessage('Pulsó la tecla Tab'); //muestra este mensaje
end;


Espero que te sirva de algo, a partir de ahí puedes hacer lo mismo con las demas.

danytorres
16-05-2003, 14:36:08
Gracias a todos por ayudarme, el evento es KeyPress e intente con:

1)- If (Key = #9) Them

2)- if ord(VK_TAB)=Key then

Y ninguna reacciona al presionar la tacla Tab.

Agradeceria que mesiguieran dando opciones.

__hector
16-05-2003, 15:17:40
Utiliza el evento onKeyDown/onKeyUp en vez de keyPress.

Ruben_Cu
17-05-2003, 01:48:52
Hola dany, no se la importancia que tiene para ti el uso de esa tecla, pero a mi modo de ver es un poco conflictiva.
Ella es utilizada para el cambio de foco de los controles y ese mensaje tiene un nivel de jerarquización superior a la captura de los eventos del control.
Realicé algunas pruebas y solo logro que responda usando el evento OnKeyUp cuando el control adquiere foco venido desde otro control.
Es por eso que el comportamiento normal no se cumple con esta tecla cuyo destino prioritario es mover el foco.
Espero que de algo sirvan estos comentarios
Saludos

danytorres
17-05-2003, 03:36:53
Gracias Ruben, tienes toda la razon la, te planteo el ecenario en un formulario X tengo n cantida de Dbedit, cual es la importancia que tiene para mi la tecla Tab, es que la insercion de datos no se realiza con el tecla do sino con una pistola lectora de codigos de Barra( Cunado la pistola lee el codigo seguidamente realiza un Tab para que avanse a la siguiente caja de texto), eso esta bien en algunos formularios pero existe uno que cuando capturo el codigo de barra como dige anteriormente realiza un tab y salta a otro DBEdit cosa que no quiero porque deseo que se quede en el mismo DBEdit con ese tab aplico en el evento OnKeyUp (If key = VK_Tab Then) para que para validar su existensia en la Base de Datos..


Al fin lo logre Colocanto en false la propiedad de Tabstop en falso de todas las demas casillas que solo me servian para mostrar datos y el la que capturo el codigo de Barra y realizo la validación esa propiedad se la coloco en True, claro usando el evento OnKeyUp (If key = VK_Tab Then). Y asi si funsiona.
----------------------------------------------------------

Gracias a todos por su valiosa ayuda.
__________________

Un saludo...

Sapiem
17-02-2009, 05:02:33
Todo está muy bien para cambiar el foco de los controles como bien dicen, pero y si lo que deseo es dentro de un TMemo por ejemplo agregar un Tab de caracteres, como reconozco el tab del usuario sin que sea que cambie de control, comprenden? Hace tiempo estoy tratando de lograr esto en un simple editor de textos y es imposible la menos hasta donde he podido intentar. Lo cierto es que no puedo dejar que TAB me funcione dentro de un TEdit o TMemo como caracter sin que me responda como salto de control y no es la idea.:confused:

roman
17-02-2009, 06:09:55
En el caso de un Edit no sé, pero con un Memo sólo tienes que poner su propiedad WantTabs en true.

// Saludos