Nach deinen bisherigen Beispielen sah es so aus, als wenn die Minuten und Stunden vorher schon mal berechnet werden, aber wenn diese erst an dieser Stelle berechnet werden, versuchs mal hiermit:
Delphi-Quellcode:
{normal}
{Sekunden := mediaplayer1.Position div 1000;}
If not (Sender = BitBtn3) Then Begin
Sekunden := mediaplayer1.Position div 1000;
Sekunden := Sekunden + 1;
End;
Minuten := Sekunden div 60;
Sekunden := Sekunden mod 60;
Stunden := Minuten div 60;
Minuten := Minuten mod 60;
{optimiert}
{Sekunden := mediaplayer1.Position div 1000;}
If not (Sender = BitBtn3) Then Inc(Sekunden);
Stunden := Sekunden div 3600;
Minuten := (Sekunden div 60) mod 60;
Sekunden := Sekunden mod 60;
(Da die Sekunden nich unbedingt in diesem Code berechnet werden, sollten sie vorher auf jeden Fall mindestens ein mal gesetzt werden.)
PS. Bei deiner Letzten Version hatest du die Minuten/Stunden doppelt berechnet.
Delphi-Quellcode:
{1} If Sekunden = 60 then begin
{1} Sekunden := 0;
{1} Minuten := Minuten+1;
{1} If Minuten = 60 then begin
{1} Minuten := 0;
{1} Stunden := Stunden+1;
{1} end;
{1} end;
{2} If Sekunden >= 60 Then Begin
{2} Inc(Minuten, Sekunden div 60);
{2} Sekunden := Sekunden mod 60;
{2} End;
{2} If Minuten >= 60 Then Begin
{2} Inc(Stunden, Minuten div 60);
{2} Minuten := Minuten mod 60;
{2} End;
Wenn es so weiter geht, wird's ja bald richtig laufen.