![]() |
Re: speedanzeige funktioniert nicht richtig
Code:
so richtig scheinst Du nicht zu wissen, was Du da mit copy und paste eingefügt hast, was ? :mrgreen:
begin
//Errechnen der Transfergeschwindigkeit: stime := now; TotalTime := Now - STime; DecodeTime(TotalTime, H, M, Sec, MS); Sec := Sec + M * 60 + H * 3600; DLTime := Sec + MS / 1000; in Indy gibt es ein onworkBEGIN, .. das wo Du bist, ist onwork ! Du willst ja die Zeit DIFFERENZ haben. stime solltest Du in onwork in Ruhe lassen. Alles klar ? |
Re: speedanzeige funktioniert nicht richtig
Hi Paul,
so sollte die Berechnung der Transfergeschwindigkeit richtig berechnet werden.
Delphi-Quellcode:
Tschüß Markus
procedure TMainForm.IdFTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer); begin sTime:=Now; end; procedure TForm1.IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer); Var S: String; TotalTime: TDateTime; H, M, Sec, MS: Word; DLTime: 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); case AWorkMode of wmRead: Ausgabe; end; ProgressBar1.Position := AWorkCount; end; |
Re: speedanzeige funktioniert nicht richtig
hi,
danke erstmal :-D wenn noch einer kurz zeit hat mir zu erklären warum in procedure TMainForm.IdFTP1WorkBegin der wert gesetzt werden muss, wäre ich sehr glücklich. thx schon mal mfg Paul |
Re: speedanzeige funktioniert nicht richtig
Na weil du ja die Startzeit brauchst, wann der Transfer begonnen hat. Das Ereignis onWorkBegin wird ausgelöst, sobald ein Transfer beginnt.
Wenn ich falsch liege bitte ich um Korrektur :wink: Tschüß Markus |
Re: speedanzeige funktioniert nicht richtig
abend,
Delphi-Quellcode:
procedure TForm1.IdFTP1OnWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer); begin sTime:=Now; end; zeigt mir immer noch nicht den richtigen speed an :( was kann ich noch falsch gemacht haben mfg
Delphi-Quellcode:
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: GroupBox3.Caption :=' DownloadSpeed - ' + S; // hier würd ich es gern in der ProgressBar1 anzeigen lassen end; //Aktualisieren der Fortschrittsanzeige: ProgressBar1.Position := AWorkCount; end; procedure TForm1.IdFTP1OnWorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer); begin sTime:=Now; end;
Delphi-Quellcode:
private
{ Private declarations } STime:TDateTime; public { Public declarations } end; var Form1: TForm1; MyIni : TIniFile; ListItem: TListItem; AverageSpeed:Double=0; implementation |
Re: speedanzeige funktioniert nicht richtig
Du musst bei der TIdFTP Komponente im Objectinspektor das onworkbegin Eregnis zuweisen ...
|
Re: speedanzeige funktioniert nicht richtig
ah shit das hab ich noch vergessen :lol:
big thx |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz