Entwickler-Ecke

Internet / Netzwerk - IdFTP.OnWorkBegin ... AWorkCountMax ist immer 0


NOS - Mo 02.08.10 15:49
Titel: IdFTP.OnWorkBegin ... AWorkCountMax ist immer 0
Hallo,

ich habe folgendes Problem ... ich nutze einen Progressbar um den Download darzustellen ... aber beim init des einzelnen downloads bekomme ich im OnWorkBegin Event als AWorkCountMax immer eine 0 ... egal wie groß die datei ist ...


was mache ich falsch ? woran liegt das ?

LG,

Andreas


Dude566 - Mo 02.08.10 16:25

Vielleicht würde es helfen wenn du mal einen Teil deines Codes zeigen könntest. ;)


NOS - Mo 02.08.10 17:23

user profile iconDude566 hat folgendes geschrieben Zum zitierten Posting springen:
Vielleicht würde es helfen wenn du mal einen Teil deines Codes zeigen könntest. ;)


Aber sicher .. kein Problem :-)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
procedure TfrmLoadLOGFromFTP.IdFTPWork(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Int64);
Var
  S: String;
  TotalTime: TDateTime;
  H, M, Sec, MS: Word;
  DLTime: Double;
  AverageSpeed : Double;
begin
  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);
  Application.ProcessMessages;
  case AWorkMode of
    wmRead:  lblDownloadProgress.Caption := S + ' ' + sDownloadSpeed;
    wmWrite: lblDownloadProgress.Caption := S + ' ' + sUploadSpeed;
  end;
  Application.ProcessMessages;
  //Aktualisieren der Fortschrittsanzeige:
  pbDownload.Position := AWorkCount;
  pbDownload.Update;
  Application.ProcessMessages;
end;

procedure TfrmLoadLOGFromFTP.IdFTPWorkBegin(ASender: TObject;
  AWorkMode: TWorkMode; AWorkCountMax: Int64);
begin
 pbDownload.Max := AWorkCountMax;
 pbDownload.Position := 0;
 Application.ProcessMessages;
end;

procedure TfrmLoadLOGFromFTP.IdFTPWorkEnd(ASender: TObject;
  AWorkMode: TWorkMode);
begin
 pbDownload.Position := pbDownload.Max;
 Application.ProcessMessages;
end;