Ver Mensaje Individual
  #9  
Antiguo 21-09-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.320
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Ike0 Ver Mensaje
Por lo que leo, los hilos o Threads, pueden ayudarme a hacer las llamadas a cada evento Onreply paralelamente pero no se como hacerlo.
La operación de ping, al igual que muchas otras, el problema que tiene es que durante su ejecución detiene el programa. La llamada en si, no el código que se ejecuta en el OnReply.
Por lo tanto, lo que ganamos ejecutando threads es que al poner la tarea que "bloquea" en el thread, se bloquea ese thread, pero no el programa principal.

Lo primero que debes hacer es crear el componente TIdIcmpClient por código. Modifica tu programa para hecerlo y comprueba que funciona.
Una vez lo tengas se trata de crear un thread que:

(1) En el create cree el componente por código.
(2) Le tendrás que pasar algunos valores como parámetro y luego recoger la respuesta.
(3) En el métdo Execute lanzar el ping.
(4) Capturar el OnReply dentro del Thread
(5) Crear un procedimiento OnTerminate, al que irá a parar el thread cuando acabe, que será el que pinte verde/rojo según el estado.

Puedes realizar algunas pruebas e ir poniendo el código aquí. Te lo vamos revisando y corrigiendo si hare falta.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita