![]() |
probleme mit exceptions und idhttp
Hi!
ich komme leider bei folgendem problem nicht weiter: in meinem programm soll durch einen timer jede sekunde eine Seite heruntergeladen werden und soll praktisch damit prüfen, ob eine Internetverbindung besteht (quasi als Ping, ich fürchte ne ziemlich unkonventionelle Lösung, aber für mich sollte es reichen). Folgender Quellcode sollte relevant sein (einmal meine download-funktion zum einen, die timer-funktion zum anderen)
Delphi-Quellcode:
function download(URL,Datei:string):boolean;
var FS:Tfilestream; begin Application.ProcessMessages; FS:=Tfilestream.Create(Datei,fmCreate); try form1.IdHTTP1.Get(URL,FS); Result := true; except Result := false; end; FS.Free; end; procedure TForm1.Timer1Timer(Sender: TObject); begin If download('http://www.xxx.de/ping.txt','c:/ping.txt')=true then label1.caption := 'online' else label1.caption := 'offline; end; Soweit funktioniert eigentlich alles so, wie ich es will. Allerdings, wenn ich die Verbindung kapsel, wird zwar erst richtigerweise offline angezeigt. wenn ich danach wieder online gehe, kommt aber kein statuswechsel mehr. Da im Try-Teil Exceptions bzw. fehlermeldungen aufgetreten sind, habe ich unter "Tools/Debugger-Options" die funktion "stop on delphi exceptions" deaktiviert. dann waren die fehlermeldungen weg, aber ich vermute hierin liegt irgendwo der grund dafür, dass er nicht mehr von offline auf online wechselt. Hat jemand eine Idee? Wäre sehr dankbar für jeden Rat! Beste Grüße, Malte |
Re: probleme mit exceptions und idhttp
Also das erste, was mir auffällt, ist, dass du lokal keinen Backslash verwendest. Es sollte heißen
Delphi-Quellcode:
download('...','C:\ping.txt')
|
Re: probleme mit exceptions und idhttp
danke dir,
habs mal geändert, aber daran liegt es nicht. weiterhin ist mir aufgefallen, dass definitiv die zeile "IdHTTP1.Get(URL,FS)"-Funktion nicht mehr tut. Die Datei (ping.txt) wird weiterhin erstellt, wenn der Status von Online auf Offline gegangen ist. Beste Grüße Malte |
Re: probleme mit exceptions und idhttp
Hallo,
was spricht gegen die Art wie es im Code Library steht? ![]() Desweiteren könntest Du Dir auch einfach eine Variable erstellen, wo Du den Quelltext einließt. Wenn diese Variable leer bleibt, biste offline . mfg Tommy82 |
Re: probleme mit exceptions und idhttp
Zitat:
|
Re: probleme mit exceptions und idhttp
Herzlich willkommen in der Delphi-PRAXiS, Malte.
Vielleicht möchtest du ja nur prüfen, ob ein bestimmter WebServer antwortet. Ich habe deinen Code ein wenig umgeschrieben:
Delphi-Quellcode:
Freundliche Grüße
const
SERVER_STATUS: array [Boolean] of string = ('offline', 'online'); SERVER_NAME = 'www.delphipraxis.net'; function HttpServerActive(const serverName: string; const proxyName: string = ''): Boolean; begin with TIdHTTP.Create(nil) do try Host := serverName; ProxyParams.ProxyServer := proxyName; ProxyParams.ProxyPort := Port; try Head('/'); Result := True; except Result := False; end; finally Free; end; end; procedure TDemoForm.ClockTimer(Sender: TObject); begin with Sender as TTimer do begin Enabled := False; try StatusLabel.Caption := SERVER_STATUS[HttpServerActive(SERVER_NAME)]; finally Enabled := True; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:43 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