![]() |
La tecla Tab en delphi?
Buenos dias foro. mi pregunta es la tecla o la tabulacìon cual es?
el enter es( #13) y Tab ?. ----------------------------------------------------- Un saludo..... :) |
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 |
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 |
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. |
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. |
Utiliza el evento onKeyDown/onKeyUp en vez de keyPress.
|
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 |
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... |
Sobre Tecla TAB
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:
|
En el caso de un Edit no sé, pero con un Memo sólo tienes que poner su propiedad WantTabs en true.
// Saludos |
La franja horaria es GMT +2. Ahora son las 03:09:47. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi