Update per Klick downloaden! Fortschritt in Progressbar?
-
Also ich habe folgenden Komponente in mein Programm eingebaut:
void __fastcall TForm1::Updatedownloaden1Click(TObject *Sender) { WideString url="http://mein.server.de/upsetup.exe"; AnsiString savepath="c:\\upsetup.exe"; TMemoryStream *mem = new TMemoryStream(); IdHTTP1->Get(url,mem); mem->SaveToFile(savepath); delete mem; }Habe die IdHTTP-Komponente ausgewählt!
Jetzt meine Frage kann ich ein Extra Formular anlegen das bei Klick auf Update aufgeht und wie z.b. beim Internet Explorer mir den Downloadfortschritt anzeigt? Und wenn ja, wovon ich ausgehe, wie kann ich dann die Progressbar ansteuern?
Vielen Dank!
-
Schau dir mal die drei Ereignisse OnWork* an.
-
Tut mir leid, aber ich kommen nicht weiter!
Kann mal jemand ein Beispiel geben? Danke!
-
Nun stell dich mal nicht so an!

In OnWorkBegin kannst du mittels AWorkCountMax die Gesamtgrösse des Downloads ermitteln und zB. die Max-Eigenschaft einer ProgressBar entsprechend anpassen. In OnWork verrät dir AWourkCount den aktuellen Stand der Dinge, so dass du die Position-Eigenschaft der ProgressBar aktualisieren kannst.
-
Habe es auch so versucht, aber bei mir reagiert die anwendung wärend des Downloads nicht. Warum? Kann ich das ändern? Sonst aktuallisiert er die anzeige ja nicht. Erst wenn der Download fertig ist zeigt es an das alles gedownloadet wurde.
-
Verdammt, habe den Fehler jetzt selbst gefunden. Lag daran das die Datei so klein war. Bei großen macht er alles ordentlich.
-
Sorry aber bei mir funktioniert es so nicht! Kann mir mal jemand zumindest ein Beispiel zeigen?

Vielen DAnk
-
Das ist doch nun wirklich nicht so schwer.
Man kann es zum Beispiel so machen!void __fastcall TUpdateForm::IdHTTP1WorkBegin(TObject *Sender, TWorkMode AWorkMode, const int AWorkCountMax) { ProgressBar1->Max = AWorkCountMax; } //--------------------------------------------------------------------------- void __fastcall TUpdateForm::IdHTTP1Work(TObject *Sender, TWorkMode AWorkMode, const int AWorkCount) { ProgressBar1->Position = AWorkCount; } //---------------------------------------------------------------------------