Du musst in deinem Thread-Objekt eigentlich nur eine neue Instanz von TIdPing (heißt es so?) anlegen.
Delphi-Quellcode:
type
TPingOnceThread =
class(TThread)
private
Pinger: TIdPing;
FFinished: Boolean;
FHostReachable: Boolean;
FPingTime: Integer;
public
procedure Execute;
override;
constructor Create(HostAddr:
String; CreateSuspended: Boolean = false);
destructor Destroy;
override;
published
property Finished: Boolean
read FFinished
default false;
property HostReachable: Boolean
read FHostReachable
default false;
property PingTime: Integer
read FPingTime
default -1;
end;
implementation
constructor TPingOnceThread.Create(HostAddr:
String; CreateSuspended: Boolean = false);
begin
inherited Create(true);
FreeOnTerminate := false;
Pinger := TIdPing.Create;
Pinger.Host := HostAddr;
If not CreateSuspended
then Resume;
end;
destructor TPingOnceThread.Destroy;
begin
Pinger.Free;
end;
procedure TPingOnceThread.Execute;
begin
try
FPingTime := Pinger.DoPing;
//angenommen die Methode DoPing liefert das Ergebnis
FHostReachable := true;
except
{Exception behandeln oder ignorieren}
end;
FFinished := true;
end;
Alle Angaben ohne Gewähr
Dani H.
At Least I Can Say I Tried