Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Sekunden und Millisekunden anzeigen (https://www.delphipraxis.net/106013-sekunden-und-millisekunden-anzeigen.html)

TheMiller 4. Jan 2008 07:55

Re: Sekunden und Millisekunden anzeigen
 
Das würde natürlich einiges Erklären...

Ich probiere das dann mal aus...

Danke und bis dann!

TheMiller 4. Jan 2008 09:13

Re: Sekunden und Millisekunden anzeigen
 
So, das funzt jetzt soweit, um die Millisekunden auszurechnen, habe ich noch eine Zeile hinzugefügt und scheint auch richtig zu sein. Schaut bitte nochmal.

Aber wenn ich jetzt das Format ausgebe, dann zeigt er mir 3 Stellen an, wieso??

Delphi-Quellcode:
var
  s, ms: Word;
  Diff: Integer;
begin
  Diff:=GetTickDiff(BPMStartTime, GetTickCount());
  s:=Diff div 1000;
  ms:=Diff mod 1000;
  Form1.Caption:=Format('%.2d:%.2d', [s, ms]);
Danke für eure Hilfe

mashutu 4. Jan 2008 09:23

Re: Sekunden und Millisekunden anzeigen
 
Zitat:

Zitat von DJ-SPM
Aber wenn ich jetzt das Format ausgebe, dann zeigt er mir 3 Stellen an, wieso??

vielleicht, weil Du eine dreistellige Zahl hast?

Matze 4. Jan 2008 09:37

Re: Sekunden und Millisekunden anzeigen
 
Zitat:

Zitat von DJ-SPM
Aber wenn ich jetzt das Format ausgebe, dann zeigt er mir 3 Stellen an, wieso??

Mit der Format-Funktion gibst du in deinem Fall die maximale Anzahl von 2 Nachkommastellen an. Da du jedoch keine Nachkommastellen hast, ist dieser Teil der Format-Funktion überflüssig. Die ganzzahlige Teil einer Zahl bzw. in deinem Fall die Zahl selbst, an sich wird immer kommplatt dargestellt.
Was möchtest du denn genau erreichen?

TheMiller 4. Jan 2008 09:50

Re: Sekunden und Millisekunden anzeigen
 
Ich möchte Sekunden und Millisekunden zweistellig anzeigen lassen, also ungefähr so

15:26

Aber geteilt habe ich bei den ms richtig, oder?

DeddyH 4. Jan 2008 09:54

Re: Sekunden und Millisekunden anzeigen
 
Zitat:

Zitat von Matze
Mit der Format-Funktion gibst du in deinem Fall die maximale Anzahl von 2 Nachkommastellen an. Da du jedoch keine Nachkommastellen hast, ist dieser Teil der Format-Funktion überflüssig. Die ganzzahlige Teil einer Zahl bzw. in deinem Fall die Zahl selbst, an sich wird immer kommplatt dargestellt.

Stimmt nicht ganz ;) .
Zitat:

Zitat von OH
d d
Dezimal. Das Argument muß ein Integerwert sein. Der Wert wird in einen String umgewandelt, der aus Dezimalzahlen besteht. Wenn der Format-String einen Bezeichner für die Genauigkeit enthält, muß der resultierende String mindestens die angegebene Anzahl von Stellen aufweisen. Enthält er weniger Stellen, wird der String auf der linken Seite mit Nullen aufgefüllt.


Matze 4. Jan 2008 10:00

Re: Sekunden und Millisekunden anzeigen
 
Und was habe ich da nun falsch gesagt?

Wenn ich angebe, eine 3-stellige Zahl soll mit 5 Stellen dargestellt werden, dann werden 2 Nullen vor die Zahl gesetzt. Ich meinte jedoch, er kann bei einer 3-stelligen Zahl nicht die letzte Ziffer abschneiden. Oder geht das doch?

@DJ: Ja deine Rechnung müsste stimmen. Millisekunden können von 0-999 gehen.

DeddyH 4. Jan 2008 10:04

Re: Sekunden und Millisekunden anzeigen
 
Sry, ich hatte Dich so verstanden, dass die Angabe einer Precision bei ganzen Zahlen überflüssig sei.

Matze 4. Jan 2008 10:10

Re: Sekunden und Millisekunden anzeigen
 
Ich bezog mich auf die der Nachkommastellen. Evtl. habe ich mich missverständlich ausgedrückt. ;)

@DJ: Du kannst die Millisekunden natürlich so abschneiden:

Delphi-Quellcode:
// Digit: 10, 100, 1000, ...
function CutIntTo(Number: Integer; Digit: Byte): Integer;
begin
  Result := Number div Digit;
end;
Aufruf:

Delphi-Quellcode:
Format('%d:%d', [s, CutIntTo(ms, 10)]);
Ich hoffe, ich habe nun keinen Denkfehler eingebaut.

grenzgaenger 4. Jan 2008 10:12

Re: Sekunden und Millisekunden anzeigen
 
Zitat:

Zitat von DJ-SPM
Ich möchte Sekunden und Millisekunden zweistellig anzeigen lassen, also ungefähr so

15:26

Aber geteilt habe ich bei den ms richtig, oder?

normal nicht richtig geteilt. das format ist im allgemeinen HH:MM:SS.ms also stunden, minuten, sekunden zweistellig, mit 'n D-Punkt getrennt. die millisekunden werden an die sekunden drangehängt und mit einem punkt getrennt. dabei ist mir keine feste stellenzahl der millisekunden bekannt. entweder direkt anschliessen oder auf 3 stellen formatieren. <HTH>


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:07 Uhr.
Seite 2 von 3     12 3      

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