Hallo
Und zwar bin ich dabei ein kleines Programm zu schreiben für uns in der Firma.
Und zwar wenn ich einen Ping ausführe das er mir dann anzeigt ob er da ist oder nicht.
Also mit rot und grün anzeigen.
Denn Ping führe ich mit der
Indy Compo aus.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
IdIcmpClient1.OnReply := IdIcmpClient1Reply;
Button1.Enabled := False;
try
IdIcmpClient1.Host := Edit1.Text;
for i := 1 to 4 do
begin
IdIcmpClient1.Ping;
Application.ProcessMessages;
end;
finally
Button1.Enabled := True;
end;
end;
procedure TForm1.IdIcmpClient1Reply(ASender: TComponent;
const AReplyStatus: TReplyStatus);
var
sTime: string;
begin
if (IdIcmpClient1.ReplyStatus.MsRoundTripTime = 0) then
sTime := '<1'
else
sTime := '=';
ListBox1.Items.Add(Format('%d Byte von %s: icmp_seq=%d ttl=%d Zeit%s%d
ms',
[IdIcmpClient1.ReplyStatus.BytesReceived,
IdIcmpClient1.ReplyStatus.FromIpAddress,
IdIcmpClient1.ReplyStatus.SequenceId,
IdIcmpClient1.ReplyStatus.TimeToLive,
sTime, IdIcmpClient1.ReplyStatus.MsRoundTripTime]));
end;
Jetzt gibt er es mir in der ListBox aus.
So jetzt habe ich statt der ListBox die Label hinzugefügt aber er macht mir das immer grün.
Wie kann ich das jetzt machen das er wenn der Ping nicht erfolgreich war rot bleibt.
Um eine Antwort wäre ich sehr dankbar.