Einzelnen Beitrag anzeigen

Benutzerbild von Uncle Cracker
Uncle Cracker

Registriert seit: 30. Mär 2003
Ort: Freital
694 Beiträge
 
#1

Waum wird der Fortschritt nicht angezeigt?

  Alt 29. Nov 2003, 00:31
Ich lade folgendermaßen eine Datei per Indy, mit Fortschrittsanzeige, runter.

Delphi-Quellcode:
procedure TForm1.IdFTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCountMax: Integer);
begin
  ProgressBar1.Max := AWorkCountMax;
  ProgressBar1.Position := 0;
end;

procedure TForm1.IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
Var
  S: String;
  TotalTime: TDateTime;
  H, M, Sec, MS: Word;
  DLTime: Double;
begin
  //Errechnen der Transfergeschwindigkeit:
  TotalTime := Now - STime;
  DecodeTime(TotalTime, H, M, Sec, MS);
  Sec := Sec + M * 60 + H * 3600;
  DLTime := Sec + MS / 1000;
  if DLTime > 0 then
    AverageSpeed := (AWorkCount / 1024) / DLTime;
  S := FormatFloat('0.00 KB/s', AverageSpeed);
  case AWorkMode of
    wmRead: StatusBar1.Panels[1].Text := 'Download speed ' + S;
    wmWrite: StatusBar1.Panels[1].Text := 'Uploade speed ' + S;
  end;

  //Aktualisieren der Fortschrittsanzeige:
  ProgressBar1.Position := AWorkCount;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
IdFTP1.Connect(true);
IdFTP1.Get('Test.rar', 'C:\Test.rar', true);
IdFTP1.Quit;
end;
Doch leider hängt sich das Programm solange auf, bis ich die Datei runtergeladen habe.
Also bringt die Anzeige gar nichts, deswegen wollte ich fragen, wie man diesen Fehler beheben könnte.

Hat villeicht schon jemand das selbe Porblem gehabt und kann mir helfen?


Danke UC

[Edit]Kleinere Fehler beseitigt[/Edit]
I wish it was legal to marry software because I'm madly in love with Delphi...
  Mit Zitat antworten Zitat