Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TApplicationEvents.OnException Problem (https://www.delphipraxis.net/109334-tapplicationevents-onexception-problem.html)

JannyR 28. Feb 2008 09:26


TApplicationEvents.OnException Problem
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin,

folgendes Problem:

Ich hab ein Pingtool (mit IcmpClient) geschrieben. Wenn ich während eines Pings das Netzwerkkabel abziehe kommt ein Socketerror.
Den Fange ich mit OnException ab und gib ihn in der lisbox mit aus. Wie mache ich jetzt, dass das Programm danach die verbliebenen Pings weiter ausführt (so wie bei cmd->ping, da macht er auch wweiter wenn das Kabel abgezogen wird)?

Delphi-Quellcode:
procedure TForm1.ApplicationEvents1Exception(Sender: TObject; E: Exception);
begin
    ListBox1.Items.Add('error.');
end;

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

  var i: longint;
begin
  //Umwandeln der eingaben (TEXT) in INTEGER
  x1 := strtoint(n.Text);
  timeout := strtoint(time.Text);
  byte := strtoint(size.Text);
  host_ip := host.Text;
 
  //Einstellungen:
  IdIcmpClient1.Host := host_ip;
  IdIcmpClient1.ReceiveTimeout := timeout;
  IdIcmpClient1.PacketSize := byte;
 
  //Schleife fürs pingen + ausgabe + warten

  if CheckBox1.Checked=True then
     begin
        repeat
          begin
                IdIcmpClient1.Ping;                              //ping ausführen
                Application.ProcessMessages;                   //Ausgabe in Listbox
                listbox1.ItemIndex:=listbox1.Items.Count - 1; //letzten Eintrag aktiv
                listbox1.Items.SaveToFile(path.Text);
                Sleep(1000);
          end;
        until CheckBox1.Checked=false;
     end
   else
     begin
        for i := 1 to x1 do
          begin
                IdIcmpClient1.Ping;                              //ping ausführen
                Application.ProcessMessages;                   //Ausgabe in Listbox
                listbox1.ItemIndex:=listbox1.Items.Count - 1; //letzten Eintrag aktiv
                listbox1.Items.SaveToFile(path.Text);
                Sleep(1000);
          end;
     end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz