Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Falla en Application.OnMessage (https://www.clubdelphi.com/foros/showthread.php?t=16474)

JOMABRI 29-11-2004 21:12:14

Falla en Application.OnMessage
 
Hola amigos,

tengo el siguiente problema:

Delphi no ejecuta el manejador para el evento Application.OnMessage.

El código que tengo es el siguente:
Código Delphi [-]
     // Declaración.
     procedure AnalizaMensajes(var Msg: TMSg; Var Handled:Boolean);
  
 procedure Tform1.FormCreate(Sender: TObject);
 begin
   Application.OnMessage := AnalizaMensajes;
 end;
  
 procedure Tform1.AnalizaMensajes(var Msg: TMSg; Var Handled:Boolean);
 begin
     if Msg.wParam = VK_RETURN then
        Msg.wParam := VK_TAB;
 end;
Por favor ayudenme, esta código me funcionaba, y de un momento a otro dejo de funcionar.


Gracias

Mauricio Briñes.

Carlos A Ortega 29-11-2004 21:26:11

No funciona el enter
 
Hola

Tengo exactamente el mismo problema.

He probado muchas alternativas y no ha sido posible corregirla.

De antemano muchas gracias a quien pueda colaborarnos.

roman 29-11-2004 21:39:00

En el código que describen no se verifica que el mensaje sea el correcto. Por Application.OnMessage pasa una multitud de mensajes, no sólo las pulsaciones del teclado, así que debieran modificarlo un poco:

Código Delphi [-]
if (Msg.message = WM_KEYUP) and (Msg.wParam = VK_RETURN) then
  Msg.wParam := VK_TAB;

No sé si con esto ya les funcione (a mi me funciona sin problemas) pero al menos hay que empezar por cuidar estos detalles.

// Saludos

JOMABRI 29-11-2004 22:20:41

Cita:

Empezado por roman
En el código que describen no se verifica que el mensaje sea el correcto. Por Application.OnMessage pasa una multitud de mensajes, no sólo las pulsaciones del teclado, así que debieran modificarlo un poco:

Código Delphi [-]
if (Msg.message = WM_KEYUP) and (Msg.wParam = VK_RETURN) then
Msg.wParam := VK_TAB;

No sé si con esto ya les funcione (a mi me funciona sin problemas) pero al menos hay que empezar por cuidar estos detalles.

// Saludos

HOla Roman, muchas gracias, pero es que el programa no ejecuta ni una sola linea del procedimiento AnalizaMensajes, es como si la aplicación no estuviera recibiendo mensajes. Cuando lo depuro, pasa por Application.OnMessage:=AnalizaMensages, pero nunca entra al procedimiento, es como ei el mensaje no entrara a la cola de mensajes.

Gracias, espero su valiosa colaboración.

roman 29-11-2004 22:23:19

¿Qué pasa si pones un punto de corte en la primera línea del evento?
¿Cuando compilas aparece el indicador azul en dicha línea?

// Saludos

JOMABRI 30-11-2004 13:15:39

Hola Roman, cuando compilo si aparece el indicador azul en las lineas de definición del procedimiento.

Este código lo tengo en una plantilla de fomulario de la cual heredé la forma principal del proyecto y me funcionaba perfecto, pero de un momento a otro dejo de funcionar. Al crear un nuevo proyecto o ejecutar proyectos con la misma plantilla si me ejecuta el código. Sera algun problema con el ejecutable o proyecto que estoy trabajando???


gracias.


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

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