Einzelnen Beitrag anzeigen

Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Fehlerbeseitigung von PING-Fehlern

  Alt 23. Jan 2005, 14:31
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
  Mit Zitat antworten Zitat