Cita:
Empezado por ecfisa
Hola radenf.
El código que te sugirió Casimiro hace exáctamente lo que deseas. También coincido con él, que el problema pasa por donde estas realizando la captura del evento de teclado.
Para asegurarte que el evento de teclado es capturado correctamente proba de este modo:
Código Delphi [-]
...
procedure El_Form.FormCreate(Sender: TObject);
begin
KeyPreview := True; end;
procedure El_Form.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (ActiveControl = El_DBGrid) and (Upcase(Key) in['A'..'Z']) then
Tabla_o_Query.Locate('NOMBRE_DEL_CAMPO', Key, [loPartialKeylo, CaseInSensitive]); end;
...
Saludos.
|
Hola. Tal vez deberíais mencionar que no es lo mismo usar el KeyDown que el KeyPress o el KeyUp. el evento onKeyDown gestiona todas las teclas, pero sólo tiene traducción directa para las teclas Virtual Key con prefijo VK. Tales como VK_RETURN, VK_END, etc. Es us valor Word y por tanto requiere más vueltas para obtener el valor de la tecla cuando es letra o número. En cambio el KeyPress o KeyUp dan el valor ASCII de la tecla. Pongo el link, sobre el tema, que he encontrado:
http://delphi.about.com/od/adptips2006/qt/vkey2char.htm
No es tan fácil como pensaba. Saludos.