Alfred Gemsa
2018-11-02 10:26:00 UTC
Hallo,
im OnCreate einer Form überprüfe ich, ob ein Netzwerkgerät da ist, indem
ich einen Ping versuche. Im Fehlerfall möchte ich die Anwendung sofort
beenden:
procedure TForm1.OnCreate(....)
begin
if not Pinger.Ping(IPAddr) then begin
ShowMessage('Kein Ping, Abbruch.');
Application.Terminate;
exit; // kein weiteres Ausführen von OnCreate
end;
//
// hier weiterer Code
//
.
.
.
end;
Dummerweise werden aber nach nach dem Verlassen von OnCreate (der
weitere Code wird tatsächlich nicht ausgeführt) noch andere
Ereignisroutinen ausgeführt, die dann zu Fehler führen, da das
Netzwerkgerät nicht da ist.
Mit MadExcept sehe ich, dass noch FormShow und ein CheckboxClick
gefeuert wird.
Dieser Code funktioniert in anderen Anwendungen wir gewünscht, hier
schein das Application.Terminate nicht zu bewirken.
Weiß jemand Rat?
Danke und Gruß,
Alfred
im OnCreate einer Form überprüfe ich, ob ein Netzwerkgerät da ist, indem
ich einen Ping versuche. Im Fehlerfall möchte ich die Anwendung sofort
beenden:
procedure TForm1.OnCreate(....)
begin
if not Pinger.Ping(IPAddr) then begin
ShowMessage('Kein Ping, Abbruch.');
Application.Terminate;
exit; // kein weiteres Ausführen von OnCreate
end;
//
// hier weiterer Code
//
.
.
.
end;
Dummerweise werden aber nach nach dem Verlassen von OnCreate (der
weitere Code wird tatsächlich nicht ausgeführt) noch andere
Ereignisroutinen ausgeführt, die dann zu Fehler führen, da das
Netzwerkgerät nicht da ist.
Mit MadExcept sehe ich, dass noch FormShow und ein CheckboxClick
gefeuert wird.
Dieser Code funktioniert in anderen Anwendungen wir gewünscht, hier
schein das Application.Terminate nicht zu bewirken.
Weiß jemand Rat?
Danke und Gruß,
Alfred