Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Stoppuhr: Stellen mit 0 auffüllen (https://www.delphipraxis.net/87454-stoppuhr-stellen-mit-0-auffuellen.html)

BorlanDelphiUser 28. Feb 2007 23:50


Stoppuhr: Stellen mit 0 auffüllen
 
Hallo ich bastel gerade ein kleines Programm in dem eine Stoppuhr läuft.
Das ganze gebe ich in einem Label aus, was dann wie folgt aussieht

0 : 6 : 17 : 345 (Std : Min : Sec : MSec)

Nun soll das ganze aber so aussehen

00 : 06 : 17 : 0345

In PHP gibt es eine Funktion str_pad:
Zitat:

Mit str_pad() kann man einen String (input) auf eine bestimmte Länge (pad_length) auffüllen, indem man einen anderen String (pad_string) oder ein Zeichen so oft wie nötig anhängt. Wird pad_string nicht angegeben, so wird der String mit Leerzeichen gefüllt. Bei der Auffüllung des Strings können Sie bestimmen, nach welcher Seite (links, rechts oder beide) der String erweitert werden soll. Geben Sie keinen Wert für pad_type an, so wird der Default-Wert STR_PAD_RIGHT genommen. Ist die Länge (pad_length) kleiner als die String-Länge, so wird der Inhalt des Strings nicht verändert. Im unteren Beispiel hat der String $var ("SELFPHP - PHP3/4") eine Länge von 16 Zeichen. Mit der Längenangabe von 24 Zeichen wird nun der String um genau 8 Zeichen aufgefüllt.

Folgende Werte sind zulässig:

• STR_PAD_LEFT - Füllt den String nach links auf.
• STR_PAD_BOTH - Füllt den String nach beiden Seiten auf.
• STR_PAD_RIGHT - Füllt den String nach rechts auf (Default).
Nun ist meine Frage gibt es so eine Funktion auch in Delphi ... und wenn nicht wie löse ich da ganze am Besten!
Ich wollte if abfragen eigentlich vermeiden

Hier noch ein Codeauszug der betreffenden Stelle
Delphi-Quellcode:
  ...

  MilliSeconds := Ticks mod 1000;
  Seconds := (Ticks div 1000) mod 60;
  Minutes := (Ticks div 60000) mod 60;
  Hours := (Ticks div 3600000) mod 24;

  Form1.Label5.Caption := IntToStr(Hours) + ' : ' + IntToStr(Minutes) + ' : ' + IntToStr(Seconds) + ' : ' + IntToStr(MilliSeconds);
Vielen Dank im Vorraus!

BorlanDelphiUser 1. Mär 2007 00:13

Re: Stoppuhr: Stellen mit 0 auffüllen
 
PROBLEM GELÖST!

Delphi-Quellcode:
  Form1.Label5.Caption := format('%.2d:%.2d:%.2d:%.4d',[Hours,Minutes,Seconds,MilliSeconds]);

marabu 1. Mär 2007 08:13

Re: Stoppuhr: Stellen mit 0 auffüllen
 
Hallo,

eine Alternative wäre:

Delphi-Quellcode:
 Caption := FormatDateTime('hh:nn:ss.zzz', ticks / MSecsPerDay);
Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:19 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