Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

La aplicación no hace caso a eventos

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: La aplicación no hace caso a eventos Responder citando

Hola:

Tengo una aplicación que muestra en pantalla (a traves de un RIchEdit) lo que se recibe a traves de un puerto UDP.
El programa me funciona bien, pero cuando se reciben muchos mensajes, la aplicación no hace caso de ningun evento que no sea el mostrar en pantalla lo que se recibe por UDP. Asi no puedo conseguir parar mediante un boton lo que sale por pantalla. Pense que la solución sería utilizar:
Application->ProcessMessages();
para actualizar los mensajes pendientes, pero me he dado cuenta que esto lo que hace es procesar los mensajes pendientes de OTRAS APLICACIONES que no sea esta.
¿Se os ocurre alguna forma de obligar a la aplicacion a hacer caso a un evento?
Otra forma sería que cuando se recibe el evento de recepción por UDP ver si se ha pulsado una tecla. ¿Sabeis como se puede hacer esto?


Muchas gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

hola, a la funcion que recibe los datos, ponelo en un Thread..
saludos tor
_________________
Un experto es aquel que ya ha cometido todos los errores posibles en una materia muy concreta.
(Niels Bohr)
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

Gracias por tu respuesta Tor, ¿no hay otra solucion que ponerla en un thread?

Gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Me contesto yo solo.

En un hilo de este mail he leido la solución:

void ProcessMessages(void)
{
MSG msg;
while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}

Se le llama a esta función cuando quiero que procese otros eventos de la aplicación.


EN mi caso como quiero que procese los eventos de raton teclado y pintar sería:

void ProcessMessages(void)
{
MSG msg;
while (PeekMessage(&msg, 0, 0, 0,PM_QS_INPUT|PM_QS_PAINT|PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}


Para ver las opciones de los eventos que quieres que se procesen:

http://msdn.microsoft.com/en-us/library/ms644943(VS.85).aspx


Un saludo a todos
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.