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.