É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