![]() |
Dateidownload mit IdHTTP - Anwendung freezed :|
Ich hab einen HTTP download mit IdHTTP gemacht, und will den Status in einer TGauge und einem TPanel anzeigen!
Aber der Status wird nur in der TGauge angezeigt und die Anwendung ist frozen, während des Downloads... Obwohl ich ein Anti-Freeze auf dem Formular habe :? Was mache ich falsch?
Delphi-Quellcode:
procedure TForm1.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Integer); var gesamt,aktuell:integer; begin gesamt:=IdHTTP1.Response.ContentStream.Size; aktuell:=AWorkCount; if gesamt>0 then begin Gauge1.Progress:=round(aktuell*100/gesamt); Panel1.Caption:=IntToStr(aktuell)+'Bytes von '+IntToStr(gesamt)+'Bytes downgeloadet!'; end; end; procedure TForm1.Button1Click(Sender: TObject); begin IdHTTP1.Get('http://url-zu-download',TFileStream.Create('z:\test.abc',fmOpenReadWrite)); end; |
Re: Dateidownload mit IdHTTP - Anwendung freezed :|
Hi,
mach noch ne idAntiFreeze Komponente auf die Form |
Re: Dateidownload mit IdHTTP - Anwendung freezed :|
Zitat:
|
Re: Dateidownload mit IdHTTP - Anwendung freezed :|
Argh,
hab ich übersehen :oops: Vielleicht hat er bei Active noch false stehen. |
Re: Dateidownload mit IdHTTP - Anwendung freezed :|
wenn du den status mit dem gauge darstellst könntet du an der stelle noch ein Application.ProcessMessages machen. Oder du lagerst das ganze gleich in einen Thread aus.
|
Re: Dateidownload mit IdHTTP - Anwendung freezed :|
juhuuuuu!! Danke *g* daran hab ich echt ewig rumgedacht und mit Application.ProcessMessages; gings!!! :)
|
Re: Dateidownload mit IdHTTP - Anwendung freezed :|
was ist den eine Application.ProcessMessages
|
Re: Dateidownload mit IdHTTP - Anwendung freezed :|
Die Methode Processmessages sorgt dafür, dass die Nachrichtenschleife des Fensters aufgerufen wird und alle anstehenden Nachrichten abgearbeitet werden. Damit reagiert das Fenster zum Beispiel wieder auf Eingaben bei längeren Schleifen. Es ist allerdings mit Vorsicht zu genießen, da es eventuell zu ungewollten Nebeneffekten kommen kann, wenn eine Schaltfläche noch mal gedrückt wird oder ähnliches.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:11 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