PDA

Ver la Versión Completa : listado de numeros de teclas.


ale_metall
16-06-2008, 17:37:02
Buenas, consulto si alguien puede suministrarme un listado con los numeros correspondientes a las teclas del teclado excluyendo numeros y letras. Por ejemplo Enter #13. Lo Necesito para controlar el bloqueo de algunas teclas como '-' ',' '.' 'espacio' y demas, en mis formularios de carga de datos.

saludos..

roman
16-06-2008, 17:46:40
Lo puedes encontrar en la ayuda de Delphi (busca Virtual Key Codes). No vienen los códigos, sino las constantes, que son las que dbes usar.

// Saludos

Caro
16-06-2008, 18:07:56
Puedes consultar los codigos ascci, por ejemplo aquí, http://www.asciitable.com/ , lo que te comenta Roman sobre "Virtual Key Codes" también te servira de mucho.

Saluditos

ale_metall
16-06-2008, 19:58:08
y de que forma podria usar esos codigos, necesito bloquear todo lo que se pueda tipear, pero que no corresponda a letras o numeros, por ejemplo en un ABM de carga de clientes, en campos que solo ingreso numeros y letras.. como bloqueo todos los demas simbolos??

Caro
17-06-2008, 13:45:18
Hola ale_metall, para controlar debes utilizar los eventos OnKeyPress, OnKeyDown y OnKeyUp, ejemplo para controlar un edit.


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in [#97..#122,'ñ','A'..'Z','Ñ','0'..'9',#32,#8]) then
key := #0;
end;


Si te fijas puedes hacerlo #97..#122 que te indica todas minusculas o también podrias haberlo hecho asi 'a'..'z', en el codigo de arriba, permitimos que se introduzca letras(mayusculas o minusculas), números, el espacio #32 y el borrado #8.

Si quieres usar los Virtual Key Codes (vk_Up->fecha arriba, vk_left->fecha izquierda, vk_delete, vk_escape->escape, vk_F1....), solo funcionan en los eventos OnKeyDown y OnKeyUp, un ejemplo digamos que no queremos que se borre en nuestro edit.


procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = vk_delete then
key := 0;
end;


Saluditos

ale_metall
17-06-2008, 16:06:20
uhh, gracias caro.. y a los demas q aportaron soluciones a mi problema.. lo voy a poner en practica!!

un saludo grande.. y de nuevo gracias!