Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Player: Positionsanzeige um Zehntelsekunden erweitern (https://www.delphipraxis.net/73877-player-positionsanzeige-um-zehntelsekunden-erweitern.html)

Nils_13 25. Jul 2006 09:05


Player: Positionsanzeige um Zehntelsekunden erweitern
 
Hi,

in meinem Player habe ich die Anzeige der Position in Minuten + Sekunden so gemacht:
Delphi-Quellcode:
function TfrmMain.GetSongLengthAsString: String;
var Time: Integer;
begin
  Case Modus of
    moSamples: begin
        Time := Trunc(BASS_ChannelBytes2Seconds(Chan, BASS_ChannelGetPosition(Chan)));
        Result := Format('%.2d:%.2d', [Time div 60, Time mod 60]);
      end;
    moMusik: begin
       Time := Trunc(BASS_ChannelBytes2Seconds(Chan, BASS_ChannelGetLength(Chan)));
       Result := Format('%.2d:%.2d', [Time div 60, Time mod 60]);
     end;
    moStream: begin
       Time := Trunc(BASS_ChannelBytes2Seconds(Chan, BASS_ChannelGetLength(Chan)));
       Result := Format('%.2d:%.2d', [Time div 60, Time mod 60]);
     end;
  end;
end;
Das Ergebnis: 03:45

Wie kann ich diese Anzeige um Zehntelsekunden erweitern ?
3:45:04
(die Zehntelsekunden laufen von 0 - 10, wenn 10 erreicht wurde, wird die Sekundenanzeige erhöht und die Zehntelsekundenanzeige auf 0 gesetzt).

Ich weiß nicht mal ansatzweise, wie ich das machen könnte.

Die Muhkuh 25. Jul 2006 09:44

Re: Player: Positionsanzeige um Zehntelsekunden erweitern
 
Gegenfrage: Wer intressiert sich für die Zehntelsekunde?!?

Nils_13 25. Jul 2006 09:49

Re: Player: Positionsanzeige um Zehntelsekunden erweitern
 
Mich interessiert das, weil es vlt. noch eine Rolle bei der noch kommenden Programmierung spielt.

marabu 25. Jul 2006 12:09

Re: Player: Positionsanzeige um Zehntelsekunden erweitern
 
Hallo Nils,

wenn du die Sekundenbruchteile nicht vorher mittels Trunc() ins Nirwana schicken würdest, dann könntest du es so machen:

Delphi-Quellcode:
function TfrmMain.GetSongLengthAsString: String;
var
  fLength: Double;
  iMinutes, iSeconds: Cardinal;
begin
  if Modus = moSamples
    then fLength := BASS_ChannelBytes2Seconds(Chan, BASS_ChannelGetPosition(Chan))
    else fLength := BASS_ChannelBytes2Seconds(Chan, BASS_ChannelGetLength(Chan));
  iSeconds := Trunc(fLength) mod 60;
  iMinutes := Trunc(fLength) div 60;
  Result := Format('%.2d:%.2d.%.1f', [iMinutes, iSeconds, Frac(fLength)]);
end;
Getippt und nicht getestet.

Grüße vom marabu

omata 25. Jul 2006 12:35

Re: Player: Positionsanzeige um Zehntelsekunden erweitern
 
Hallo Nils,

sonst schau dir doch mal mein Beispiel an.

Gruss
Thorsten


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz