Ver Mensaje Individual
  #7  
Antiguo 21-09-2016
Ike0 Ike0 is offline
Registrado
NULL
 
Registrado: sep 2016
Posts: 7
Reputación: 0
Ike0 Va por buen camino
Échame un cable cuando puedas Neftali. Nunca use hilos, no pido que me lo hagas sino que me guíes un poco más ;-)

(No puedo colgar imágenes ni hipervínculos aun )

Tenemos dos botones como explique (Iniciar y Parar) que lo unico que hacen es iniciar el TTimer

BOTON INICIAR
Código Delphi [-]
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  form1.Timer1.Enabled:=true;
end;


BOTON PARAR
Código Delphi [-]
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
form1.Timer1.Enabled:=false;
form1.Panel1.Color:=clBtnFace;
End;

el TTimer al ser iniciado, cada segundo y medio hace lo siguiente;

Código Delphi [-]
procedure TForm1.Timer1Timer(Sender: TObject);
begin
    Form2.C002.ping;
    Form2.C003.ping;
    Form2.C004.ping;

end;


cada C00X es un TIdIcmpclient que en su evento OnReply hace lo siguiente;

Código Delphi [-]
procedure TForm2.C002Reply(ASender: TComponent;
  const AReplyStatus: TReplyStatus);
begin
if C002.ReplyStatus.BytesReceived = 0 then
    begin
      Form1.PP002.Fill.Color :=TAlphaColorRec.Red;
    end
    else begin
      Form1.PP002.Fill.color:= TAlphaColorRec.Chartreuse;
    end;
end;

Solo he puesto el del TiDicmplient C002, el de el C003 es idéntico y así hasta el infinito y mas allá.

El programa sin hilos, lo que hace es hace ping al 002, termina pero no pone su cuadradito en verde, tiene que esperar a que termine con el C003, y asi sucesivamente hasta que llegue al TidIcmpclient con la ultima IP.

Hasta aquí todo claro. Por lo que leo, los hilos o Threads, pueden ayudarme a hacer las llamadas a cada evento Onreply paralelamente pero no se como hacerlo. Puedes ayudarme o guiarme un poco mas?

Gracias de antemano
Responder Con Cita