Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Key Escape (https://www.clubdelphi.com/foros/showthread.php?t=15818)

scooterjgm 05-11-2004 17:19:12

Key Escape
 
Alguien sabe como puedo mandar una pulsación de la tecla ESCAPE sin que el usuario la tenga que presionar??


Lo necesito para no marear al usuario cuando meta un dato erróneo ;)

frudolph 05-11-2004 17:40:18

Prueba con lo siguiente código para lanzar la tecla "ESC":

--> SendMessage(Self.Handle, WM_KEYDOWN, VK_ESCAPE, 0);

Puedes reemplazar "Self" por el objeto al cual le quieres enviar el código de escape (tecla).

Luego, en el evento "OnKeyDown" del objeto que debe tomar la tecla escape escribe lo siguiente (ajústalo a tu caso):

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if Key = VK_ESCAPE then showmessage('ok');
// Puedes usar "case" en lugar de "if"
end;

scooterjgm 24-11-2004 11:56:10

Eso no me funciona bien. Entra en un bucle. necesito lanzar la tecla escape en el evento onValidate.

roman 24-11-2004 16:40:18

Pero si no quieres marear al usuario ¿por qué no empiezas evitando que salga un mensaje que tenga que cancelar en lugar de cancelarlo tú mismo?

// Saludos

ASAPLTDA 07-04-2005 22:59:24

hola fudolph
Mi problema es que debo simular la digitacion de un taclado desde una aplicacion delphi para digitar en otro programa, tienes alguna otra idea el otro programa es una emulacion telnet que se conecta a un equipo unix

Alfredo 07-04-2005 23:24:08

Asi:
 
Puedes simularlo usando este codigo:

Código:

keybd_event( VK_ESCAPE,0,KEYEVENTF_EXTENDEDKEY, 0);
keybd_event( VK_ESCAPE,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);

si quieres probarlo pega un boton y asignale este codigo en el evento KeyPress del form y en la propiedad KeyPreview debes cambiar a True.

Código:

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #27 then showmessage('pulso escape');
end;

Bien,


La franja horaria es GMT +2. Ahora son las 15:43:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi