AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

PING als If-Abfrage

Ein Thema von scrat1979 · begonnen am 13. Jun 2016 · letzter Beitrag vom 13. Jun 2016
Antwort Antwort
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

AW: PING als If-Abfrage

  Alt 13. Jun 2016, 09:55
Wieso nutzt Du nicht das Event und fragst da den Status mit IF ab ? Ist der Ping erfolgreich, führe Deinen Code aus, ist der Ping nicht Erfolgreich gib eine Meldung aus zum Beispiel.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

AW: PING als If-Abfrage

  Alt 13. Jun 2016, 10:45
Wieso nutzt Du nicht das Event und fragst da den Status mit IF ab ? Ist der Ping erfolgreich, führe Deinen Code aus, ist der Ping nicht Erfolgreich gib eine Meldung aus zum Beispiel.
Das wird bei 'nem Programmablauf in der Form aber nicht funktionieren:
Delphi-Quellcode:
procedure irgendwie;
begin
  if a = b then begin
    irgendwas;
  end else begin
    if Ping_Erfolgreich('xxx.xxx.xxx.xxx') then begin
      MachWennPingErfolgreich;
    end else begin
      MachWennPingNichtErfolgreich;
    end;
  end;
end;
Nur mal so als Idee:

Ping_Erfolgreich sei also eine Funktion, dann könnte man dadrin eventuell sowas machen:
Delphi-Quellcode:
var
    fPingOk;

function Ping_Erfolgreich(aAddress : String) : Boolean;
var
         i : Integer;
         iSleep : Integer;
begin
  fPingOk := False;
  i := 0;
  iSleep := 100;
  Ping.Address := aAddress;
  Ping.Ping;
  repeat
    i := i + iSleep;
    Sleep(iSleep);
    Application.ProcessMessages; // oder sonstwasfürnenschleifeninhalt
  until fPingOk or (i > Ping.TimeOut);
  Result := fPingOk;
end;
In dem Ereignis der Pingkomponente, in dem man feststellen kann, ob das Ping erfolgreich war, wird bei Erfolg fPingOk auf True gesetzt.

Ist zwar unelegant und Objektorientierung sieht anders aus, aber es mag erstmal gehen.
Ansonsten halt eine Ableitung der Pingkomponente schreiben, die beim Ping eben wartet und in 'nem Attribut über Erfolg oder Misserfolg informiert.

Sprich: Meine obige "Krücke" in 'ner Komponente kapseln.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz