Mam tu kod odpowiedzialny za wświetlanie czasu:
procedure TForm1.zegarTimer(Sender: TObject);
var
minuty, sekundy, h, ms:integer;
pozycja:ansistring;
begin
player.TimeFormat:=tfMilliseconds;
ms := player.Position;
h := round(ms / 3600000);
ms := round(ms-h * 3600000);
minuty := round(ms / 60000);
ms :=round(ms-minuty * 60000);
sekundy := round(ms / 1000);
pozycja:= '';
if h < 10 then
pozycja := pozycja +'0';
pozycja := pozycja +IntToStr(h) + ':';
if minuty<10 then
pozycja:=pozycja+'0';
pozycja := pozycja+IntToStr(minuty) + ':';
if sekundy<10 then
pozycja:=pozycja+'0';
pozycja :=pozycja+ IntToStr(sekundy);
czas.Caption:=pozycja;
end;
i teraz wyświetla mi czas: 001...0030, 000-29, 000-28... :(
Gdzie jest błąd?
Kod C++, z którego to zaczerpnąłem:
MediaPlayer->TimeFormat = tfMilliseconds;
int ms = MediaPlayer->Position;
int h = ms / 3600000;
ms -= h * 3600000;
int m = ms / 60000;
ms -= m * 60000;
int s = ms / 1000;
// formating time
AnsiString pozycja = "";
if (h < 10) pozycja += '0';
pozycja += IntToStr(h) + ':';
if (m < 10) pozycja += '0';
pozycja += IntToStr(m) + ':';
if (s < 10) pozycja += '0';
pozycja += IntToStr(s);---------------------------
Delphi 6
Pozdrówka