Ver Mensaje Individual
  #4  
Antiguo 01-05-2006
JCarlosas JCarlosas is offline
Miembro
 
Registrado: abr 2006
Ubicación: Habana. Cuba
Posts: 103
Reputación: 19
JCarlosas Va por buen camino
Hola Luli.
Mira prueba adicionando varios
Application.ProcessMessages; seguidos de sleep(100);
Que Sucede???
La rutina Application.ProcessMessages;Lo que hace es decirle a Windows que procese los mensajes que tene en la cola de mensajes. Al ponerlo solo una vez puede que el mensaje que tu necesitas que se procese no tenga tiempo de procesarse por Windows, por tanto no te hara nada.La inclusion del sleep(100), lo que hace es exactamente eso, poner a dormir a tu aplicacion por 100 milisegundos, dandole asi tiempo a Windows a que procese los mensajes que tiene en la cola, donde supuestamente ya debiera estar el tuyo.Esto a mi me ha funcionado en la mayoria de las veces que lo he hecho, cuando un solo Application.ProcessMessages; no me ha resultado.O sea lo que he puesto es algo asi.
Código Delphi [-]
Application.ProcessMessages;
sleep(100);
Application.ProcessMessages;
sleep(100);
Application.ProcessMessages;
sleep(100);
Por supuesto que esta solucion no es muy profesional y ni siquiera a mi me agrada, pero funciona en la mayoria de las veces (No el 100%) como te comente.Tiene como inconveniente que te inserta una demora adicional a tu procesamiento y si lo haces dentro de un ciclo muy largo(for i=0 to 1000000), el tiempo de procesamiento se te elevaria demasiado.Quizas pudieras bajar el valor del sleep de 100 a uno mas bajo para que sea mas eficiente o subirlo un poco si no te agarra el mensaje.Bueno espero que tu caso caiga dentro de los que se resuelven con esto.
Saludos
Juan Carlos

Última edición por JCarlosas fecha: 01-05-2006 a las 14:33:36.
Responder Con Cita