Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Format 00:00:00 ? (https://www.delphipraxis.net/98375-format-00-00-00-a.html)

newuser01 26. Aug 2007 13:37


Format 00:00:00 ?
 
Wie bekomme ich eigentlich die Zeitangabe in diesen Format angezeigt 00:00:00 ?


Delphi-Quellcode:

  public
    { Public-Deklarationen }
    iTime:Integer;

procedure Tfrm_timer.Timer1Timer(Sender: TObject);
var
iStd,iMin,iSek:Integer;
begin

iTime := iTime + 1;

iStd := iTime div 3600;
iMin := iTime div 60;
iSek := iTime mod 60;

l_Time.Caption := IntToStr(iStd) + ':' + IntToStr(iMin) + ':' + IntToStr(iSek);

mkinzler 26. Aug 2007 13:40

Re: Format 00:00:00 ?
 
z.B. mit Format()

newuser01 26. Aug 2007 14:22

Re: Format 00:00:00 ?
 
Delphi-Quellcode:
public
    { Public-Deklarationen }
    iTime:Integer;

procedure Tfrm_timer.Timer1Timer(Sender: TObject);
var
iStd,iMin,iSek:Integer;
begin

iTime := iTime + 1;

iStd := Format('%d.2',[iTime div 3600]);
iMin := Format('%d.2',[iTime div 60]);
iSek := Format('%d.2',[iTime mod 60]);

l_Time.Caption := IntToStr(iStd) + ':' + IntToStr(iMin) + ':' + IntToStr(iSek);

:gruebel: Fehler: inkompatible Typen Integer und String :mrgreen:


HELP

mkinzler 26. Aug 2007 14:25

Re: Format 00:00:00 ?
 
Format liefert auch einen string und keinen Integer!!!
Ich dachte auch zum Setzten der Caption

BenjaminH 26. Aug 2007 14:26

Re: Format 00:00:00 ?
 
Zitat:

Zitat von newuser01
:gruebel: Fehler: inkompatible Typen Integer und String :mrgreen:

Natürlich, Format gibt einen String zurück, den du aber in eine Integervariable schreibst.

Gemeint war es so:
Delphi-Quellcode:
procedure Tfrm_timer.Timer1Timer(Sender: TObject);
begin
  iTime := iTime + 1;
  l_Time.Caption := Format('%d.2',[iTime div 3600]) + ':' + Format('%d.2',[iTime div 60]) + ':' + Format('%d.2',[iTime mod 60]);
end;

FAlter 26. Aug 2007 14:33

Re: Format 00:00:00 ?
 
Hi,

Zitat:

Zitat von BenjaminH
Delphi-Quellcode:
procedure Tfrm_timer.Timer1Timer(Sender: TObject);
begin
  iTime := iTime + 1;
  l_Time.Caption := Format('%d.2',[iTime div 3600]) + ':' + Format('%d.2',[iTime div 60]) + ':' + Format('%d.2',[iTime mod 60]);
end;

%d.2 war wohl eher nicht gemeint (Ergebnis z. B. 5.2 statt 05), außerdem reicht ein Format-Aufruf aus.

Besser so:
Delphi-Quellcode:
iTime := iTime + 1;
l_Time.Caption := Format('%.2d:%.2d:%.2d',[iTime div 3600, (iTime div 60) mod 60, iTime mod 60]);
Mfg
FAlter

newuser01 26. Aug 2007 14:37

Re: Format 00:00:00 ?
 
ok DANKE für eure Hilfe !

negaH 26. Aug 2007 15:16

Re: Format 00:00:00 ?
 
FormatDateTime('HH:NN:SS', Time / 24 / 60 / 60);

Gruß Hagen

FAlter 26. Aug 2007 15:21

Re: Format 00:00:00 ?
 
Hi,

Zitat:

Zitat von negaH
FormatDateTime('HH:NN:SS', Time / 24 / 60 / 60);

Oder so, wobei sich auch das noch verbessern lässt (Lesbarkeit) :) aber sicher Geschmackssache.

Code:
FormatDateTime(..., iTime / [b]SecsPerDay[/b]);
Mfg
FAlter

[edit]Schließenden Quote-Tag versehentlich gelöscht :oops: [/edit]

negaH 26. Aug 2007 18:54

Re: Format 00:00:00 ?
 
SecPerDay ist / 24 Stunden / 60 Minuten / 60 Sekunden

Ich habe nur das System erklärt wie in einen TDateTime die Zeit kodiert wird ;)

Gruß Hagen


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:37 Uhr.

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