FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
tab que numero de tecla es
hola!
En mis aplicaciones utilizo la tecla Enter para validar y moverse al siguiente campo, de esta manera: if key = 13 then begin ..... .... end; Quiero Hacer lo mismo pero con la tecla TAB, pero no se cual es el número de esta, si hay algun lugar donde puedo encontrar esto valores diganmelo. |
#2
|
||||
|
||||
9
// Saludos |
#3
|
||||
|
||||
Este ejemplo aunque no funciona con todas las teclas, en concreto con TAB no va, pero te puede servir para la mayoría.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#4
|
||||
|
||||
Leyendo la respuesta del amigo Marcos veo que tengo que leer con más detenimiento la pregunta original.
Ciertamente 9 es el código de la tecla de tabulación pero no podrás detectarla con lo métodos usuales de los eventos OnKeyDown, OnKeyUp u OnKeyPress. La tecla Tab es una tecla especial para mover el foco del control activo y por lo mismo no se manda a los controles de la misma forma que otras teclas. Un Edit, por ejemplo, no recibe el evento OnKeyDown ni OnKeyPress con esta tecla. Sí recibe el OnKeyUp pero demasiado tarde: si el foco está en Edit1, al oprimir Tab, primero se cambia el foco al siguiente control, digamos Edit2 y éste último es quien recibe el evento. Podrías intentar poner una componente TApplicationEvents y usar su evento OnMessage para detectar la tecla:
// Saludos |
#5
|
|||
|
|||
Mi problema consiste exactamente en que tengo un edit en mi formulario
y controlo varios proceso cuando el usuario presiona ENTER, pero algunos usuario presionan TAB para salir, por lo que quiero evitar que salgan del edit con TAB, puedo hacerlo tambien en el evento on EXIT y lo hace aunque salgan con TAB, pero en algunas ocaciones me produce un efecto algo incomodo. |
#6
|
||||
|
||||
Pues tal como te dije. Hasta donde probé ayer, si en el evento OnMessage de una componente ApplicationEvents pones
inhabilitas la tecla del todo. // Saludos |
#7
|
|||
|
|||
Tu me dice que ApplicationEvents es un componente, donde lo consigo,
|
#8
|
|||
|
|||
Excusame pero ya lo encontre
gracias.. |
#9
|
||||
|
||||
Cita:
// Saludos |
#10
|
|||
|
|||
Oye la operación fue un exito....
|
#11
|
|||
|
|||
Acá están dos ejemplos de como se puede capturar la tecla TAB, el primero para el evento KeyDown o KeyUP y el segundo para el evento KeyPress.
Código:
procedure TForm1.dbgDetalleKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_TAB then Key := 0; end; procedure TForm1.dbgStockKeyPress(Sender: TObject; var Key: Char); begin if key = #9 then Key := 0; end;
__________________
Saludos. |
#12
|
||||
|
||||
Cita:
// Saludos |
#13
|
|||
|
|||
Este código lo copié de aplicaciones que hice en Delphi 5, la verdad es que no lo probé en versiones mas nuevas, pero hoy por la noche (en Argentina sería en 5 hs) lo pruebo en D2005.
Que error está dando el compilador?? o es otro el problema?
__________________
Saludos. |
#14
|
||||
|
||||
Acabo de probar en Delphi 5 y tampoco funciona.
No es que de algún error, es simplemente que no detecta la tecla. Como mencioné, la tecla TAB no se comporta como el resto. // Saludos |
#16
|
|||
|
|||
Utilizando el componente ApplicationEvents y anulando la tecla queda perfecto. Asi que se pueden probar.
|
#17
|
|||
|
|||
Bueno Roman, estuve leyendo los datos que enviaste y tienes razón en lo que dices.
El código que envié en el mensaje anterior corresponde a los eventos de unos DBGrids donde si funciona. Y me ha quedado claro que no funcionaría con los TEdit.
__________________
Saludos. |
|
|
|