Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
Delphi 10.1 Berlin Professional
|
Re: Ping ausführen und bei Erfolg Farbe ändern
22. Mär 2005, 19:00
Hallo,
da ich das mit den Labels nicht verstehe, poste ich Dir eine Version, die die Einträge in der Listbox einfärbt.
Im Objektinspektor stellst Du die Eigenschaft [b]Style[b] der ListBox auf lbOwnerDrawFixed.
Delphi-Quellcode:
procedure TForm1.IdIcmpClient1Reply(ASender: TComponent;
const AReplyStatus: TReplyStatus);
var sText, sTime: string;
begin
if (IdIcmpClient1.ReplyStatus.MsRoundTripTime = 0) then sTime:='<1' else sTime:='=';
sText:=Format('%d Byte von %s: icmp_seq=%d ttl=%d Zeit%s%dms',
[IdIcmpClient1.ReplyStatus.BytesReceived, IdIcmpClient1.ReplyStatus.FromIpAddress,
IdIcmpClient1.ReplyStatus.SequenceId, IdIcmpClient1.ReplyStatus.TimeToLive,
sTime, IdIcmpClient1.ReplyStatus.MsRoundTripTime])+#9;
// wenn mehr als 0 Byte empfangen wurden, dann gibt es eine Verbindung
// diese Info wird durch Tab getrennt am Ende des Listboxeintrages
// durch 1 und 0 repräsentiert.
if (IdIcmpClient1.ReplyStatus.BytesReceived>0) then sText:=sText+'1'
else sText:=sText+'0';
Listbox1.Items.Add(sText);
end;
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.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var s1, s2:String;
x :Integer;
begin
with TListBox(Control) do
begin
// Position des Tab-Ziechens im aktuell anzuzeigenden Eintrag
x:=System.Pos(#9, Items[Index]);
// Listboxtext
s1:=System.Copy(Items[Index], 1, x-1);
// Status
s2:=System.Copy(Items[Index], x+1, 1);
if (s2='1') then Canvas.Font.Color:=clGreen
else Canvas.Font.Color:=clRed;
if (odSelected in State) then Canvas.Font.Color:=clWhite;
Canvas.TextRect(Rect, Rect.Left+1, Rect.Top+1, s1);
end; // wiht
end;
|
|
Zitat
|