Ich hatte das auch gemacht.
Mein Programm hat eine Datei aus dem Internet runtergeladen und die ByteGröße war der Max.Count von ProgressBar1...
Somit hab ich das so gemacht:
Delphi-Quellcode:
var OldByte: LongInt = 0;
procedure TForm1.Timer1Timer(Sender: TObject);
var
Speed: Real;
begin
If Timer1.Interval = 1 then Timer1.Interval := 1000;
Speed := (Progressbar1.Position - OldByte) div 1024; //div 1024 weil du ja KiloBytes, nicht bytes haben willst
OldByte := ProgressBar1.Position; //Alte bytes setzen
Label6.Caption := FloattoStr(Speed);
If ProgressBar1.Position = 0 then Label6.Caption := '0'; {damit nach beendigung des Downloads (bzw. anfang des nächsten Downloads) die Geschwindigkeit auf 0 steht}
end;
CrashMan