Also, bei mir muss irgendwie das position nicht stimmen, aber wenn ich es
so abfrage, stimmt es doch!
Ich hab mir ne Funktion für Zeitausgabe (zB: 04:23) eingebaut, aber manchmal
seh ich da 4532:23! Was ist das Problem? Hier ist der Code:
Delphi-Quellcode:
function TBassPlayer.Time(State: Integer): String;
var min, sec: Integer;
Erg, mins, secs: String; //Ergebnis, MinString, SecString
begin
sec := position; // State = 0 einfach: 04:23
while sec > 59 do
begin
min := min + 1;
sec := sec - 60;
end;
min := min - 4349924 - 1492 -384 -1516-8; /Hier hab ich schon so viel abgezogen, aber es
// kommt immer mehr hinzu!
mins := IntToStr(min);
secs := IntToStr(sec);
if min < 10 then mins := '0'+mins;
if sec < 10 then secs := '0'+secs;
Erg := mins+':'+secs;
if State = 1 then //State = 1 mit Länge: 04:23/06:23
begin
sec := length;
min := 0;
while sec > 59 do
begin
min := min + 1;
sec := sec - 60; // Hier funzt es anscheinend
end;
mins := IntToStr(min);
secs := IntToStr(sec);
if min < 10 then mins := '0'+mins;
if sec < 10 then secs := '0'+secs;
Erg := Erg+'/'+mins+':'+secs;
end;
if State = 2 then //State = 2 "abgezogen": 02:00
begin
sec := length - position;
min := 0;
while sec > 59 do
begin
min := min + 1;
sec := sec - 60; // Hier funzt es auch!
end;
mins := IntToStr(min);
secs := IntToStr(sec);
if min < 10 then mins := '0'+mins;
if sec < 10 then secs := '0'+secs;
Erg := mins+':'+secs;
end;
result := Erg;
end;
]