Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Ind: Datei herunterladen und Größe ermitteln (https://www.delphipraxis.net/192340-ind-datei-herunterladen-und-groesse-ermitteln.html)

a.def 10. Apr 2017 19:57

Ind: Datei herunterladen und Größe ermitteln
 
Mit dem hier im Link vorgestelltem Code lade ich eine Datei aus dem Internet herunter:
http://stackoverflow.com/questions/2...http-via-https

Nach Berichtigung all der Tippfehler klappt das auch wunderbar.

ABER: woher bekomme ich die Dateigröße? Da die Anzeige ja in Prozent ist, muss die finale Dateigröße ja wohl irgendwo gespeichert sein, nur wo?

nahpets 10. Apr 2017 20:02

AW: Ind: Datei herunterladen und Größe ermitteln
 
Der Eigenschaft OnWorkBegin einen Routine zuweisen und dort AWorkCountMax nehmen. AWorkCountMax enthält die Dateigröße.

a.def 10. Apr 2017 20:22

AW: Ind: Datei herunterladen und Größe ermitteln
 
Man kann auch echt blind sein :wall:
Danke.

Die bereits übertragenen Bytes rechne ich mir Pi*Daumen so aus:
Delphi-Quellcode:
BytesTransfered := (BytesToTransfer div 100) * Progress;
Genauer brauche ich es nicht.

nahpets 10. Apr 2017 20:38

AW: Ind: Datei herunterladen und Größe ermitteln
 
Also ich mach' das immer so:
Es gibt eine Progressbar.

Im Ereignis OnWorkBegin wird Progressbar.Max auf AWorkCountMax gesetzt und Progressbar.Position auf 0,
im Ereignis OnWork wird Progressbar.Position auf AWorkCount gesetzt
und im Ereignis OWorkEnd wird Progressbar.Position auf Progressbar.Max gesetzt.

Da brauch' ich nix zu rechnen und der Anwender hat was zum Gucken.

a.def 10. Apr 2017 20:43

AW: Ind: Datei herunterladen und Größe ermitteln
 
Habe keine Progressbar. Ich zeige das alles in einem Label an :P

Zitat:

Datei W von X, Y KB von Z KB geladen

himitsu 10. Apr 2017 22:05

AW: Ind: Datei herunterladen und Größe ermitteln
 
Sieht das nicht irgendwie nach zwei Speicherlecks aus?

a.def 10. Apr 2017 22:08

AW: Ind: Datei herunterladen und Größe ermitteln
 
Der in diesem Forum gepostete Code hat Speicherlecks, ja.

Ich erstelle die INstanz einfach mit Owner nil und gebe sie am Ende wieder selber frei. Außerdem habe ich einen Destructor eingebaut wo IOHndl freigegeben wird. Dann sind die Speicherlecks alle weg.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz