Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Datei downloaden

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
14.03.2007, 14:58 Uhr
~samson4
Gast


hallo
ich arbeite mit Indy9 und BCB und will eine Datei aus dem I-Net downloaden. Wie kann ich es machen das ich den Fortschritt des downloads in einem Progress Ballken anzeigen kann?

Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.04.2007, 15:51 Uhr
~Pingu625
Gast


Hi,
das geht eigentlich ganze einfach. Ich weiß leider nicht mehr woher ich den Code habe, ich verwende ihn aber sehr oft.

Als erstes musst du einen Stream für die herunterzuladene Datei erstellen:

C++:
TFileStream* Stream = new TFileStream(ExtractFilePath(Application->ExeName) + "XYZ.txt", fmCreate);


Danach lässt du die Datei in diesen Stream herunterladen:

C++:
IdHTTP1->Get("http://www.domain.de/abc.txt", Stream);


Für das Ereignis der Komponente IdHTTP1 Work benutzt du folgenden Code:

C++:
  ProgressBar1->Position = AWorkCount;

  Application->ProcessMessages(); // Rechenzeit für Ereignisse freigeben


Für das Ereignis der Komponente IdHTTP1 WorkBegin benutzt du folgenden Code:

C++:
  // Dateigröße steht in AWorkCountMax
  ProgressBar1->Max = AWorkCountMax;
  ProgressBar1->Position = 0;


Und SO könnte der benötigte Teil aussehen:

C++:
void __fastcall TForm1::DownloadClick(TObject *Sender)
{
  TFileStream* Update = new TFileStream(ExtractFilePath(Application->ExeName) + "VistaSpeechRecognition.wmv", fmCreate);
  try
  {
    http->Get("http://www.coolpas.net/Mods/VistaSpeechRecognition.wmv", Update);
    delete Update;
  }
  catch(...)
  {
    delete Update;
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::httpWork(TObject *Sender, TWorkMode AWorkMode,
      const int AWorkCount)
{
  FileProgress->Position = AWorkCount;

  Application->ProcessMessages(); // Rechenzeit für Ereignisse freigeben
}
//---------------------------------------------------------------------------
void __fastcall TForm1::httpWorkBegin(TObject *Sender, TWorkMode AWorkMode,
      const int AWorkCountMax)
{
  // Dateigröße steht in AWorkCountMax
  FileProgress->Max = AWorkCountMax;
  FileProgress->Position = 0;
}
//---------------------------------------------------------------------------


Pingu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: