Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-11-2004
JOMABRI JOMABRI is offline
Miembro
 
Registrado: may 2004
Posts: 30
Poder: 0
JOMABRI Va por buen camino
Unhappy 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.

Última edición por marcoszorrilla fecha: 29-11-2004 a las 21:41:03. Razón: Insertar etiquetas Delphi
Responder Con Cita
  #2  
Antiguo 29-11-2004
Carlos A Ortega Carlos A Ortega is offline
Miembro
 
Registrado: jul 2003
Ubicación: Guadalajara de Buba
Posts: 17
Poder: 0
Carlos A Ortega Va por buen camino
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.
__________________
Carlos A. Ortega Rios
Responder Con Cita
  #3  
Antiguo 29-11-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #4  
Antiguo 29-11-2004
JOMABRI JOMABRI is offline
Miembro
 
Registrado: may 2004
Posts: 30
Poder: 0
JOMABRI Va por buen camino
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.
Responder Con Cita
  #5  
Antiguo 29-11-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿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
Responder Con Cita
  #6  
Antiguo 30-11-2004
JOMABRI JOMABRI is offline
Miembro
 
Registrado: may 2004
Posts: 30
Poder: 0
JOMABRI Va por buen camino
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.
Responder Con Cita
Respuesta



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 00:15:36.


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