Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   key en edit (https://www.clubdelphi.com/foros/showthread.php?t=2234)

botones67 15-07-2003 10:51:44

key en edit
 
Hola a todos.

Como puedo controlar en un edit la tecla que se pulsa?

Tengo una serie de edit simulando un memo y quiero que cuando llegue al ( final o pulsando intro o pagina arriba o abajo) de cada uno pase al siguiente o al anterior.

Podriais indicarme como hacerlo?

Gracias anticipadas:)

__cadetill 15-07-2003 11:03:09

Tienes tres eventos que puedes mirar de controlar

- KeyDown : cuando una tecla "baja" al ser presionada (puedes controlar todas las teclas del teclado)
- KeyPress : accion de presionar una tecla (solo puedes controlar la maquina de escribir creo recordar)
- KeyUp : cuando una tecla "sube" por el efecto de haber sido presionada (puedes controlar todas las teclas del teclado)

El orden de disparo de los eventos, si no voy errado, es precisamente este comentado : Down - Press - Up

Para saber el valor de todas las teclas, mirate en la win32.hlp la entrada Virtual-Key Codes

Espero te sirva

botones67 15-07-2003 11:12:50

ok gracias.

me podrias decir porque no me funciona algo asi.


en el evento onchange del un edit

if (key=#13) then ' lo que sea '

Me da error en el key, tengo que añadir algun uses para que reconozca key?

Gracias otra vez

Tanix 15-07-2003 12:04:12

Ten en cuenta q en el evento OnChange de un edit no tienes la variable de E/S key... En cambio en los eventos que te explicaba Cadetill si dispones de ella para poder trabajar con ese valor... Mira la diferencia :
On Change :
Cita:

procedure TForm1.Edit1Change(Sender: TObject);
begin

end;
On KeyPress/Down/Up:
Cita:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin

end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin

end;

procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin

end;
Saludos...

guantxo 15-07-2003 12:06:30

hola!!

la respuesta a porque no te hace

Cita:

en el evento onchange del un edit
Cita:

if (key=#13) then ' lo que sea '
es porque en el onchange la variable Key no esta definida

prueba a ponerlo en el OnKeyPress del edit y veras como t funciona

botones67 15-07-2003 12:13:38

ok entendido.

la tecla intro se controaria asi

if (key=#13) then 'lo que sea' bien

pero las teclas ariiba y abajo , no encuentro su codigo para

poner if (key=#?? ) y if (key=#??), en la ayuda win32.hlp y en el apartado virtual-keys codes no las encuentro , ¿ sabeis cual son sus cosigos?.


Gracias otra vez.

__cadetill 15-07-2003 13:25:23

estas teclas, como te comentaba en mi primer mensaje, SOLO puedes tratarlas en los eventos OnKeyDown y OnKeyUp. En el evento OnKeyPress SOLO puedes capturar lo que representa la maquina de escribir dentro del teclado, nada mas, ni los Fx ni los cursores, ni nada de eso.

Para hacer referencia a ellas dentro del dichos eventos, mira la ayuda que te comento tambien en mi primer mensaje y veras que se hace mediante las contantes VK_UP, VK_DOWN,....

Para que te hagas una idea de la nomenclatura de éstas, funciona de la siguente manera:

Virtual Key (VK) + _ + Tecla que quieras
VK_LEFT, VK_DOWN, VK_NUMPAD0, VK_F1,......

Espero te sirva

botones67 15-07-2003 14:00:32

Ahora si.

Gracias por todo.


La franja horaria es GMT +2. Ahora son las 17:36:58.

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