Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   FireMonkey (https://www.clubdelphi.com/foros/forumdisplay.php?f=50)
-   -   No Encuentreo evento OnKeyPreess (https://www.clubdelphi.com/foros/showthread.php?t=92033)

rmeckbell 05-07-2017 19:03:27

No Encuentreo evento OnKeyPreess
 
Hola, en mi aplicacion de escritorio que estoy haciendo mediante la utilidad multiplataforma,
ocupo colocar un TEDIT pero cuando se oprima una tecla ocurra una accion..
El tema es que no encuentro el evento OnKeyPress, sera que exista en FireMonkey con otro nombre.

Saludos

oscarac 05-07-2017 19:05:33

en un Tedit se usa el "OnChange"
el OnKeyPress esta en el formulario no en el edit

rmeckbell 05-07-2017 19:14:07

Hola Oscar muchas gracias por tu respuesta, en el evento OnChange cual es la variable que guarda la tecla que se oprime

es que en el evento veo que solo tiene un sender como parametro

Lo que ocupo es validar si el usuario oprime la tecla enter pero como la capturo desde el teclado

Caminante 05-07-2017 23:13:17

Cita:

Empezado por rmeckbell (Mensaje 518995)
Hola Oscar muchas gracias por tu respuesta, en el evento OnChange cual es la variable que guarda la tecla que se oprime

es que en el evento veo que solo tiene un sender como parametro

Hola perdon por la intromision

Me parece que el consejo de Oscarac es usar el evento keypress del formulario asignadole primero a su propiedad keypreview el valor true. Asi el formulario recibira primero el evento de teclado.

Saludos

rmeckbell 06-07-2017 15:40:28

Hola Caminate, me parecio interesante tu opinion, sin embargo vieras que me puse a buscar la propiedad onKeyPress en el formulario y tampoco la encuentro para FireMonkey

Tanto en el TEdit como en el TForm, las propiedades que me aparecen son OnkeyDown y OnKeyUp. no tengo ningún OnKeyPress, sera acaso que esa propiedad no la han implementado en FireMonkey.

cloayza 06-07-2017 15:42:07

Puedes usar el evento OnTyping

Existe una diferencia entre ambos eventos, el OnChange se dispara cuando el Control pierde el foco (Se cambia a otro TEdit), en cambio el OnTyping, se dispara cada vez que digitas un caracter en el control...

Código Delphi [-]
procedure TForm1.Edit1Change(Sender: TObject);
begin
     Label2.Text:='OnChange->'+Edit1.Text;
end;

procedure TForm1.Edit1Typing(Sender: TObject);
begin
     Label1.Text:='OnTyping->'+Edit1.Text;
end;

Espero te ayuda, saludos cordiales

rmeckbell 06-07-2017 15:49:53

Hola Cloaiza

Suena bien la propiedad OnTyping sin embargo sera capaz de leer la tecla Enter en el teclado de tal manera que pueda
generar un if tecla = enter then..
es que no veo cual serìa el parámetro.

Caminante 06-07-2017 16:17:17

Cita:

Empezado por cloayza (Mensaje 519018)
Puedes usar el evento OnTyping

Existe una diferencia entre ambos eventos, el OnChange se dispara cuando el Control pierde el foco (Se cambia a otro TEdit), en cambio el OnTyping, se dispara cada vez que digitas un caracter en el control...

Código Delphi [-]procedure TForm1.Edit1Change(Sender: TObject); begin Label2.Text:='OnChange->'+Edit1.Text; end; procedure TForm1.Edit1Typing(Sender: TObject); begin Label1.Text:='OnTyping->'+Edit1.Text; end;


Bueno yo de firemonkey no se practicamente nada. No conocia el evento ontyping pero tampoco se si pueda hacer lo que necesita desde ahi.

En tal caso buscaría el evento onkeydown (Aunque no se si es igual que el de la vcl).

Saludos

cloayza 06-07-2017 18:41:35

Bueno entonces esto...

Código Delphi [-]
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
begin
     case (Key) of
        vkReturn: label1.Text:='Return';
        vkBack:   label1.Text:='Backspace';
        vkTab:    label1.Text:='Tab';
     else
         label1.Text:='KeyChar...'+KeyChar;
     end;
end;

Saludos cordiales


La franja horaria es GMT +2. Ahora son las 09:47:55.

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