Hallo
Ich habe folgendes Problem:
Ich lade eine txt Datei mit Hilfe der
Indy Komponente (in Delphi 2009) herunter. Jetzt will ich diesen Fortschritt des Herunderladens in einer ProgressBar anzeigen lassen, Ich habe eine schöne Anleitung gefunden:
->
http://www.delphi-treff.de/tutorials...t/indy/page/4/
Habe soweit alles gemacht wie beschrieben:
Varibalen (Global)
Delphi-Quellcode:
var
Form1: TForm1;
IdFTP1:TidFTP;
STime:TDateTime;
AverageSpeed:Extended;
Das ist das Ereignis der OnWork (der IdFTP1)
Delphi-Quellcode:
procedure TForm1.IdFTP1Work(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
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;
Das ist die OnWorkBegin (der IdFTP1)
Delphi-Quellcode:
procedure TForm1.IdFTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
AWorkCountMax: Int64);
begin
ProgressBar1.Max := AWorkCountMax;
ProgressBar1.Position := 0;
STime:=now;
end;
Ich hatte Probleme das "AverageSpeed" einen Typ zuzuweisen. habe es schließlich auf Extended gesetzt (hatte ich gelesen gehabt war mir aber auch nicht sicher ob das geht). Wenn ich jetzt den Button klicke, der die txt dei runterladen soll, passiert nichts
der Button macht folgendes:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
IdFTP1:=TIdftp.Create(Self);
IdFTP1.Username := 'XXX';
IdFTP1.Password := 'XXX';
IdFTP1.Port := 21;
IdFTP1.Host := 'XXX';
IdFTP1.Connect;
IdFTP1.Get('marsas.txt', 'C:\WINDOWS\marsas.txt' , true, false);
IdFTP1.Quit;
end;
Jetzt will ich den Button drücken und die ProgressBar soll halt abhängig von der Dateigröße den Fortschritt anzeigen.
Wäre über jede Hilfe sehr Dankbar