Lücke(Leerzeichen) bei TimeFormat des TMediaPlayers
-
Hi Pals,
hat jemand von euch auch das Problem einer Lücke in der Zeitausgabe "TimeFormat" des TMediaplayers?
Ich erhoffe eine Ausgabe wie "3:45", "1:03"... Genau DA ist das Problem:
"1: 3" anstatt "1:03"!Hier ist mein Code:
TVarRec v[] = {int(pos/60000), int((pos/1000)%60), int(pos%1000)}; eTime->text=Format("%u:%02u.%03u", v, ARRAYSIZE(v)-1);
Ich befasse mich zur Zeit mit den C++ Builder 5 Grundlagen den Kapitel TMediaPlayer (Beispiel-CD: MM_Play). Falls mir jemand helfen kann, ohne dass ich in den sauren "SubString"-Apfel beissen muss, wäre das nett.
[ Dieser Beitrag wurde am 28.03.2003 um 11:06 Uhr von Bowser editiert. ]
-
Hmm was mir auffällt ist, dass dein Format-String die Werte als Dezimalzahlen behandelt.. und 03 ist eben keine Dezimalzahl... 03 ist nunmal 3.
Die Längenangaben werden dir wahrscheinlich auch nix bringen.
Schau bei den Formatbezeichnern oder speicher die Werte direkt als Strings wenn es geht.
In dem Fall werden keine führende Nullen gestrichen.
-
Hi nochmal,
hab' endlich das Problem lösen können:
(nur für diese Kurzzeitformate)AnsiString Zeit=Format("%u:%02u.%03u", v, ARRAYSIZE(v)-1);//Einlesen... if(Zeit.SubString(3,1]==" ")//Leerzeichen auf Position 3 ausfindig machen... { Zeit.Delete(3,1);//Leerzeichen löschen... Zeit.Insert("0",3);//Null einfügen... } eTime->Text=Zeit;//In TEdit einspeisen... (Bäh! Sauer!)
-
Wenn schon, denn schon!
pos = 180000; ... if (Zeit[3] == ' ') Zeit[3] = '0'; if (Zeit[6] == ' ') Zeit[6] = '0'; if (Zeit[7] == ' ') Zeit[7] = '0';
-
Da beides zum selben Ergebnis führt, trotzdem Danke.