Czas w mediaplayerze

2002-03-15 23:11
thenkles
0

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 &lt 10 then
pozycja := pozycja +'0';
pozycja := pozycja +IntToStr(h) + ':';
if minuty&lt10 then
pozycja:=pozycja+'0';
pozycja := pozycja+IntToStr(minuty) + ':';
if sekundy&lt10 then
pozycja:=pozycja+'0';
pozycja :=pozycja+ IntToStr(sekundy);
czas.Caption:=pozycja;

end;

i teraz wyświetla mi czas: 00:00:1...00:00:30, 00:00:0-29, 00:00:0-28... :(
Gdzie jest błąd?
Kod C++, z którego to zaczerpnąłem:

MediaPlayer-&gtTimeFormat = 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 &lt 10) pozycja += '0';
pozycja += IntToStr(h) + ':';
if (m &lt 10) pozycja += '0';
pozycja += IntToStr(m) + ':';
if (s &lt 10) pozycja += '0';
pozycja += IntToStr(s);---------------------------
Delphi 6

Pozdrówka

Pozostało 580 znaków

2002-03-16 09:28
eitar
0

Ponizszy kawalek twojego kodu:

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);

zamien na

player.TimeFormat:=tfMilliseconds;
ms := player.Position;
h := ms div 3600000;
ms := ms-(h 3600000);
minuty := ms div 60000;
ms :=ms-(minuty
60000);
sekundy := ms div 1000;

u mnie to dziala spoko.
Blad byl niewiem gdzie [zaczelo sie psuc od linijki minuty := round(ms / 60000); ], ale podczas gdy np. ms=36800 to i tak brala sie juz 1 minuta z tego [a nie powinno], wtedy w sekundach wychodzily ujemne wartosci. Wpisz ten kod z div'ami i powinnien byc luuz.-------[ Delphi 6 Rulez 4 Ever!, przynajmniej do czasu gdy naucze sie C++ :) ]------

Pozostało 580 znaków

2002-03-16 10:52
thenkles
0

Jeeeee, działa :) Dzięki---------------------------
Delphi 6

Pozdrówka

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0