Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-09-2004
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Question 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.
Responder Con Cita
  #2  
Antiguo 11-09-2004
Avatar de diegofhernando
diegofhernando diegofhernando is offline
Miembro
 
Registrado: may 2003
Ubicación: Locombia papá!
Posts: 267
Poder: 21
diegofhernando Va por buen camino
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
__________________
Diego. Colombia es pasión.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 02:54:33.


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
Copyright 1996-2007 Club Delphi