![]() |
anti freeze idhttp
Hallo, ich hab mit idhttp und mit einem Balken der anzeigt wieviel von der Datei geloadet ist. Jetzt hab ich noch eine antifreeze Funktion drin aber das Programm friert immer für 20 sekunden ein und dann funktioniert es einmal ganz kurz. Wie kann ich das ändern?
|
Re: anti freeze idhttp
Versuch mal Application.ProcessMessages im OnWork Ereignis.
Florian |
Re: anti freeze idhttp
Also die Process message ist schon drin
Delphi-Quellcode:
procedure TForm13.IdHTTPWork(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Integer); begin if not((GetTickCount - FTime) <= 0) then begin try except end; end; FTime := GetTickCount; FBytes := AWorkCount; Application.ProcessMessages; end; |
Re: anti freeze idhttp
Dann wird wohl das OnWork Ereigniss nur alle 20 Sekunden aufgerufen, vielleicht, weil die Komponente so viel von der Datei downloaded, wie der Buffer groß ist, dann das OnWork Ereigniss ausführt, den Buffer leert und dann den zweiten Teil der Datei downloaded.
Florian |
Re: anti freeze idhttp
Gibt es denn da eine kommplett andere möglichkeit damit das nicht einfriert?
|
Re: anti freeze idhttp
Vielleicht über einen Timer immer wieder ProcessMessages aufrufen, aber ob das sinnvoll ist, ist eine andere Frage ...
|
Re: anti freeze idhttp
hmmm, der regiert immer noch nicht schneller, aber gibt es nicht ein Tutorial wo das gleich ist aber nicht immer einfriert?
|
Re: anti freeze idhttp
Wenn es wirklich so ist, dass der Buffer in diesem Falle zu groß ist, könntest du ja mal versuchen die Buffergröße runterzusetzen.
|
Re: anti freeze idhttp
Wo steht die denn ???? Ich hab von dem IdHttp noch nicht so viel erfahrung.
|
Re: anti freeze idhttp
Genau weiß ich es auch nicht, aber gibt es nicht eine property BufferSize oder MaxBufferSize, oder so?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 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