Witajcie
Robię jeden programik na zaliczenie, muszę w nim pingować inne stację. Robię to w ten sposób:
procedure TMainForm.IdIcmpClient1Reply(ASender: TComponent;
const AReplyStatus: TReplyStatus);
var
i: integer;
begin
(..)
end;
ProgressBar.StepIt;
end;
for i := 1 to DataGrid.RowCount - 1 do
begin
IdIcmpClient1.host := DataGrid.Cells[0,i];
IdIcmpClient1.Ping();
Application.ProcessMessages;
end;
Niestety problemem jest, że jeżeli stacja docelowa jest wyłączona wtedy "IdIcmpClient1.Ping();" czeka aż to timeoutu blokując program. Nie do końca to rozumiem, wolałbym aby na wszystkie stacje wysyłać od razu pinga, a odpowiednie zdarzenie niech się wywołuje w chwili powrotu pakietu. Da się tak zrobić? Pomożecie?
Pozdrawiam