![]() |
Was machen wenn keine Internet-Connection vorhanden
Hallo Delphi-Sepzialisten!
Ich denke ich habe ein relativ einfach zu lösendes Problem, habe aber keine Ahnung wie ich es löse. Ich habe auch schon gesucht, jedoch ist das Themengebiet zu groß, um die Suche einschränken zu können. Ich nutze IdHttp bzw. IdFTP von Indy. Aber wenn ich nun z.b. per Buttonclick mit diesen Komponenten etwas ausführe und keine Internetconnection habe, stürzt das Programm ab. Wie kann ich das abfangen, bzw. wie kann ich z.b. ein ShowMessage aufrufen? Liebe Grüße, ghostnw |
Re: Was machen wenn keine Internet-Connection vorhanden
hallo und herrzlich willkommen in der dp!!
kannst du mal den code posten, den du benutzt um die komponenten auszuführen?? das währe ein wenig hilfreicher!! |
Re: Was machen wenn keine Internet-Connection vorhanden
z.b. der hier:
Delphi-Quellcode:
if (IdHTTP1.Get('http://XXX.de/verwaltung/sperrdatei.php') = '') then begin IdHTTP1.Get('http://XXXX.de/verwaltung/verwaltung.php?actualUser='+UserName); Panel2.Visible := false; Panel1.Visible :=true; Label1.Font.Color := $000000FF; Label1.Caption:= 'Die Datenbank wird von ' + IdHTTP1.Get('http://XXXXXX.de/verwaltung/sperrdatei.php') + ' verwaltet!'; B_DBsperren.Enabled := false; B_DBentsperren.Enabled := true; end; Wenn nun keine Inet-Connection besteht bzw. der Server nicht erreichbar ist, schmiert das programm ab... :( lg, ghostnw |
Re: Was machen wenn keine Internet-Connection vorhanden
Zitat:
Fehlermeldung (Timeout) oder wirklicher Programmansturz? |
Re: Was machen wenn keine Internet-Connection vorhanden
Denke mal richtiger Programmabsturz.
Die Buttons sind nicht mehr klickbar, das Fenster lässt sich nicht mehr verschieben, und im TaskManager wird mir "Keine Rückmeldung" gemeldet.... Danke für deine Hilfe, lg ghostnw |
Re: Was machen wenn keine Internet-Connection vorhanden
Ich würde sagen dein Programm wartet auf die Antwort vom Server... die wird es aber nicht geben!
Wenn du dein Programm mal länger so laufen lässt müsste ne Fehlermeldung kommen. Lösungsansatz: Den Teil in nem Thread laufen lassen und mit try-except kapseln. Oder zuerst überprüfen (mit Ping an deine Seite) ob diese verfügbar ist. Wenn nein dann den Code garnicht erst ausführen. |
Re: Was machen wenn keine Internet-Connection vorhanden
packe die procedure in onconnect (glaub ich heisst die funktion, musst mal auf der 2 registerkarte schauen) rein, dann wird diese ausgeführt wenn er verbunden ist mit dem server...
oder du baust damit onconnect und on disconnect mit einer boolean variable quasi nen schalter, der ein ist wenn er verbunden ist und aus wenn er nicht mehr verbunden ist... dann kannst du für alle weiteren funktionen über diese komponente mit dem schalter arbeiten.. edit: ach ja und ich würd dir (wie schon gesagt) auch zur ner try, except und end routine raten.. |
Re: Was machen wenn keine Internet-Connection vorhanden
ok- danke für die tipps.
Die try..except..end; -Codes sehen so aus oder?
Delphi-Quellcode:
lg ghostnw
try
{mein Code} except {was muss hier rein?} end; |
Re: Was machen wenn keine Internet-Connection vorhanden
nehm doch einfach diese funktion:
Delphi-Quellcode:
uses WinInet;
procedure TForm1.Button1Click(Sender: TObject); begin If InternetGetConnectedState(nil, 0) then Caption := 'Online' else Caption:='Offline'; end; |
Re: Was machen wenn keine Internet-Connection vorhanden
Ja der sieht so aus.
Nach except wird nur gesprugen wenn ein Fehler nach try aufgetreten ist. Du solltest dort auf den Fehler reagieren, zB weißt du das du nicht mit dem Internet verbunden bist. Allerdings solltest du überprüfen welcher Fehler genau aufgetreten ist. Das geht mit on E: ETimeOut (kp wie das heißt^^) do ... ![]() Dieses try...except behandelt allerdings nur die Fehlermeldung, wenn du nicht willst das dein Programm solange einfriert musst du diesen Code in einen Thread auslagern. Oder gabs da mal nicht so eine Komponente TIdAntiFreeze oder so?!? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:56 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