Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como obtener Foco de Entrada con las teclas de cursor (https://www.clubdelphi.com/foros/showthread.php?t=14168)

gluglu 11-09-2004 16:42:46

Como obtener Foco de Entrada con las teclas de cursor
 
Hola Amigos,

Como puedo obtener foco de entrada utilizando las teclas del cursor (arriba y abajo) en un form con múltiples campos de edición?

Quiero utilizar las teclas del cursor en vez de utilizar el tabulador. Sé que puedo escribir rutinas de eventos que se activen al pulsar el cursor arriba o cursor abajo en un campo de edición, pero de qué manera se podría implementar esta opción para que toda la aplicación en su conjunto la utilize.

Gracias de antemano.

diegofhernando 11-09-2004 17:24:37

Q tal, disculpa si la respuesta q doy esta incompleta la verdad es q ando un poco lleno de trabajo, pero para empezar este codigo te debe servir, lo primero q necesitas es capturar cuando el usuario presiona una de las dos teclas q necesitas, para hacerlo existen muchas formas pero personalmente prefiero esta por q es muy sencilla. Para iniciar debes crear un procedimiento en el form q te permita capturar los mensajes de la aplicacion...

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
procedure ApplicationMessage(var Msg: TMsg; var Handled: Boolean);
public
{ Public declarations }
end;


el codigo del procedimiento es el siguiente:

procedure TForm1.ApplicationMessage(var Msg: TMsg;
var Handled: Boolean);
begin
case Msg.Message of
WM_KEYUP: // si deseas q se ejecute al presionar y no al levantar la tecla cambias por WM_KEYDOWN =P
if Msg.wParam = 13 then
Showmessage('Presionaste Entrar');
end;
end;

simplemente debes conocer el valor entero de las teclas q deseas capturar, haciendo unas modificaciones al codigo podras saberlos tu mismo =)

para terminar debes asignar el procedimiento a la aplicacion en el evento OnCreate del Form:

procedure TForm1.FormCreate(Sender: TObject);
begin
application.OnMessage:= ApplicationMessage;
end;

IMPORTANTE: debes asignar nil al mismo evento en el OnDestroy del Form o te llevaras malas sorpresas... XD

procedure TForm1.FormDestroy(Sender: TObject);
begin
Application.OnMessage := nil;
end;

espero te sirva para iniciar...

Salu2 :cool:


La franja horaria es GMT +2. Ahora son las 13:18:26.

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