Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#9

Re: [indy]Verbleibende Zeit eines Downlods anzeigen

  Alt 6. Jul 2008, 17:59
Um das Springen der Zeit (oder anderer Werte) zu glätten, gibt es folgende Möglichkeit:
Delphi-Quellcode:
TForm1 = class(TForm)
private
  Wert_alt : double;
  faktor : double; // wird in OnCreate mit 0.2 belegt (darf zwischen 0 und 1 liegen)
public
  ...
end;

procedure TForm1.Berechnung;
var
   Wert_akt : double;
begin
   Wert_akt := ...... ; // deine ermittelte Restzeit

   Wert_akt := faktor * Wert_akt + (1-faktor) * Wert_alt; //(*)
   Wert_alt := Wert_akt;
In der Zeile (*) passiert das Entscheidende:
Der aktuelle Wert wird mit 20% und die gesamte Vergangenheit mit 80% gewichtet.
Im Prinzip ist das ein Digitalfilter (Tiefpass).
Verkleinert man den Faktor, verstärkt sich die Filterwirkung (man darf faktor aber nicht auf 0 setzen, sonst geht nichts mehr)
Vergrössert man den Faktor bis auf 1, ist der Filter ausser Kraft gesetzt.
  Mit Zitat antworten Zitat