PDA

Ver la Versión Completa : TECLA <ENTER> en TEdit


inetplus
16-03-2004, 22:45:25
Alguien sabe porque razón el evento KeyPress de un TEdit no reconoce la tecla <ENTER>

Abajo coloco el fragmento donde tomo la tecla <enter>

procedure TFVenta.EditClienteKeyPress(Sender: TObject; var Key: Char);
var
if (key=#13) then
....
..

__cadetill
16-03-2004, 22:51:17
Pues probado y funcionando en D6 :confused:

roman
16-03-2004, 22:51:59
Por qué, no lo sé, pero sí sé que puedes usar OnKeyDown para detectar la tecla.

// Saludos

inetplus
16-03-2004, 23:00:25
Me parece que el problema viene por otro lado, ya que tampoco me reconoce esta tecla con los eventos KeyDown y KeyUp

jachguate
16-03-2004, 23:01:03
Solo que en el Caso de OnKeyDown y OnKeyUp no has de compararlo con el valor #13, sino con la constante vk_Enter.

Hasta luego.

inetplus
16-03-2004, 23:04:09
Que tipo de dato es la constante vk_Enter, ya que en estos eventos la variable Key es de tipo Word

jachguate
16-03-2004, 23:20:38
ups... no es vk_enter, es vk_return. He visto la windows.pas y no tiene un tipo definido... supongo que el compilador usará un tipo byte o single para representarla, dado su valor... aunque quizas la directiva {$externalsym} afecte el comportamiento normal y la declare como word... que es como me imagino que está en las cabeceras del API.

Habrá que ver...

inetplus
16-03-2004, 23:36:23
Estuve investigando sobre el tema y de esta forma es solucionable, pero no dentro del evento OnKeyPress:


procedure TFCTarjetas.FormCreate(Sender: TObject);
begin
Application.OnMessage := AppMessage;
end;



Procedure TFCTarjetas.AppMessage(var Msg: TMSg; Var Handled:Boolean);
var
actual : TWincontrol;
begin
if Msg.message = WM_RETURN then
begin

Actual := Screen.ActiveControl;
if Actual is TCustomEdit then
.....

El problema es que aqui no puedo controlar un TEdit en particular.

un saludo y Gracias