AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ProgressBar für Download?

Ein Thema von ptown67 · begonnen am 5. Aug 2007 · letzter Beitrag vom 11. Aug 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von ptown67
ptown67

Registriert seit: 31. Jan 2006
Ort: Keine Ergebnisse gefunden
60 Beiträge
 
Delphi 7 Personal
 
#1

ProgressBar für Download?

  Alt 5. Aug 2007, 01:14
Hallo alle zusammen!

Ich habe mir ein Tool angefertigt, welches mir einzelne Dateien meiner WebSite
downloadet, um diese mit dem Tool zu konfigurieren.
Das ganze habe ich mit der Unit InetTools gemacht und läde mir dadurch meine
Dateien per FTP auf meinen Rechner. Meine Frage:

Wie kann ich auf meinem Tool eine ProgressBar anzeigen lassen, wie weit der
Download fortgeschritten ist?

Es ist bestimmt eine simple Sache, jedoch bin ich immer noch ein Anfänger in
Delphi. Aber es heißt ja immer so schön, niemals aufgeben...

Vielleicht kann mir ja jemand einen nützlichen Tipp geben

Gruß an alle - Freeman
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

Re: ProgressBar für Download?

  Alt 5. Aug 2007, 01:22
Verwende mal die Suche, du wirst bestimmt fündig.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von PigfaceJoe
PigfaceJoe

Registriert seit: 17. Dez 2006
Ort: Saarland
24 Beiträge
 
Delphi 7 Personal
 
#3

Re: ProgressBar für Download?

  Alt 5. Aug 2007, 02:04
Hi freeman.bytes !

Also ich kann dir da nur die Indy Komponenten ans Herz legen, ich verwende sie immer für solche Zwecke.
Dort gibts ne Komponente IdHTTP die ein hat ein OnWork, OnWorkBegin und ein OnWorkEnd-Ereignis.
Im OnWorkBegin schreibste dann progrssbar1.max:=AWorkCountMax;
Im OnWork schreibste entsprechend: progressbar1.position:=AWorkCount;
Das geht (falls du was mit FTP machen willst) entsprechend auch mit der IdFTP komponente.
Ach ja: Damit dein Programm nicht "einfriert" zieh noch die IdAntiFreeze aus der Sparte "IndyMisc" auf dein Formular und setze OnlyWhenIdle auf false und IdleTimeout auf 10 .

Die indys findest du als download hier: http://www.indyproject.org/download/Files/Indy9.html

Schönen Gruss
PigfaceJoe
Max
Glühlampen brennen heller, wenn man sie vor dem Einschrauben aus der Verpackung nimmt.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: ProgressBar für Download?

  Alt 5. Aug 2007, 02:20
Die INetTools kenn eich nicht. Aber sie werden auch ein Ereignis, wie die Indys haben, welches beim Download ausgelöst wird.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von ptown67
ptown67

Registriert seit: 31. Jan 2006
Ort: Keine Ergebnisse gefunden
60 Beiträge
 
Delphi 7 Personal
 
#5

Re: ProgressBar für Download?

  Alt 5. Aug 2007, 02:30
Danke für die schnellen Antworten (heute Nacht noch)

Das mit den Indys hört sich sehr gut an. Jedoch habe ich leider
noch nie mit Indy programmiert.

Kann mir jemand dazu vielleicht auch gleich ein Codebeispiel für
den Download mit Indy geben?

THX
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: ProgressBar für Download?

  Alt 5. Aug 2007, 03:07
Bei den Indys sind umfangreiche Demos dabei.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von PigfaceJoe
PigfaceJoe

Registriert seit: 17. Dez 2006
Ort: Saarland
24 Beiträge
 
Delphi 7 Personal
 
#7

Re: ProgressBar für Download?

  Alt 5. Aug 2007, 17:28
Zitat:
Kann mir jemand dazu vielleicht auch gleich ein Codebeispiel für
den Download mit Indy geben?
Hi,
Jap kann ich: Musst halt indy herunterladen für deine Delphi Version und installieren. Dann ziehste die Komponente IdHTTP und ein Button aufs Formular und downloaden kannste dann so (ins OnClick Ereignis vom Button):
Delphi-Quellcode:
var Ziel, URL:string;
lStream: TFileStream;
begin

URl:='http://haumichblau-ichweiss-nix.de/bild.jpg'  ;
Ziel:=ExtractFilePath(Paramstr(0))+'Bild.jpg';
try
 lStream:=TFileStream.Create(Ziel, fmCreate or fmShareDenyNone);
 try
   idHTTP1.Get(URL, lStream);
finally
lStream.Free;
end;
So soweit dazu, jetz dein Fortschrittsbalken.
Also man nehme:
-Eine ProgressBar

Dann einfach die IdHTTP Kompo anklicken und in die Sparte Ereignisse wechseln. Da dann doppelklick auf "OnWorkBegin" und folgendes in die Procedure schreiben:
progressbar1.Max:=AWorkCountMax;
so nun nochn doppelklick auf "OnWork" und dann kommt folgendes da rein:
progressbar1.Position:=AWorkCount; Das wars im Prinzip schon, die Datei befindet sich dann im Programmvertzecihnis und heisst Bild.jpg.
Ach ja: Gegen das "Einfrieren" vom Programm schreibste entweder Application.ProcessMessages noch ins OnWork ereignis oder (die folgende Variante finde ich persönlich effektiver) du ziehst die IdAntiFreeze Kompo aus der Sparte "Indy Misc" aufs Formular und setzt dort OnlyWhenIdle auf false und Idletimeout auf 1.

So, ich hoffe ich konnte dir helfen,
Gruss Pigface Joe
Max
Glühlampen brennen heller, wenn man sie vor dem Einschrauben aus der Verpackung nimmt.
  Mit Zitat antworten Zitat
Benutzerbild von ptown67
ptown67

Registriert seit: 31. Jan 2006
Ort: Keine Ergebnisse gefunden
60 Beiträge
 
Delphi 7 Personal
 
#8

Re: ProgressBar für Download?

  Alt 5. Aug 2007, 21:59
Danke für die vielen Tipps!

Am besten hat mir PigfaceJoe helfen können. Nach seiner Methode, hab ich das ganze zum Laufen bringen können. RESPEKT! Denn ich habe gelesen, dass er erst 15 Jahre alt ist...

Gruß an Euch alle! Freeman
  Mit Zitat antworten Zitat
Benutzerbild von o0o
o0o

Registriert seit: 20. Jul 2007
Ort: am...,da wo die sonne nicht scheint!
166 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: ProgressBar für Download?

  Alt 11. Aug 2007, 10:04
geil

sowas habe ich schon lange gesucht

jemand noch ne idee wie man da noch ne prozent und speedanzeige dazu macht^^
dann ises perfekt

o0o
  Mit Zitat antworten Zitat
Benutzerbild von PigfaceJoe
PigfaceJoe

Registriert seit: 17. Dez 2006
Ort: Saarland
24 Beiträge
 
Delphi 7 Personal
 
#10

Re: ProgressBar für Download?

  Alt 11. Aug 2007, 12:02
Hi,
du könntest einfach anstatt der ProgressBar die Komponente Gauge aus der Sparte "Beispiele" nehmen. Die hat eine Prozentangabe sozusagen "OnBoard". Das mit der Geschwindigkeit kannste so lösen:
-Anfangs die Gesamtgrösse des Downloads in KB nehmen[idhttp1.Response.ContentStream.Size div 1024]
-Nach 1 sek. dann die empfangene Grösse in KB [AWorkCount div 1024]
- Nach 5 sek. dann wieder die empfangene Grösse[AWorkCount div 1024]
- Differenz bilden und du hast die (relativ ungenaue) Geschwindigkeit in 4 sek.
- Dann teilste die durch 4 und hast die Geschwindigkeit pro sekunde.

Ist aber alles ein bisschen ungenau, ne bessere Möglichkeit kenne ich nicht.
Kannst natürlich auch mit den obigen Infos ne eigen Prozentangabe erstellen...
Max
Glühlampen brennen heller, wenn man sie vor dem Einschrauben aus der Verpackung nimmt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:53 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