Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Delphi Stopuhr (https://www.delphipraxis.net/49730-delphi-stopuhr.html)

Khabarakh 17. Jul 2005 11:18

Re: Delphi Stopuhr
 
Delphi-Quellcode:
start:=0;
label1.caption:=inttostr(round((GetTickCount-start)/1000)))+' Sekunden verstrichen.';
Diese zwei Anweisungen würde ich noch vertauschen :wink: .

Für maximale Genauigkeit solltest du dennoch dem Link weiter oben folgen.

3_of_8 17. Jul 2005 11:22

Re: Delphi Stopuhr
 
Autsch, da hat er recht. :wall:

Ansonsten dürfte es aber stimmen.

Ich progge schon seit einer Woche fast durch, also vergebt mir das. :mrgreen:

Fredyy 17. Jul 2005 11:33

Re: Delphi Stopuhr
 
danke für die ganze hilfe...

jetzt habe ihc ein neues problem.
ich mache die sek,min,std einteilung indem
ich den wert von sek wenn er 60 ist auf 0
zurücksetzen und min um 1 erhöhe.

jetzt baue ich gerade eine schleife (die dann im timer ausgeführt wird).

nur irgend wie funktioniert sie nicht.

Delphi-Quellcode:
zeit := round((GetTickCount-start)/1000);
While i <= zeit do
  begin
    LbSek.Caption := inttostr(strtoint(LbSek.Caption) + 1);
    Inc(i);
  end;
danke nochmals.
bye fredyy

3_of_8 17. Jul 2005 16:01

Re: Delphi Stopuhr
 
Was ist I überhaupt? Mit Std, Min, Sek würde ich das machen:

Delphi-Quellcode:
procedure timer1timer(Sender: TObject); //Hat Interval 100, nicht enabled.
begin
zeit:=trunc((GetTickCount-start)/1000);
h:=trunc(zeit/3600);
min:=trunc((zeit mod h)/60);
s:=zeit mod min;
label1.caption:=inttostr(h)+' : '+inttostr(min)+' : '+inttostr(s);
end;

procedure Button1Click(Sender: TObject);
begin
if start=0 then
begin
button1.caption:='Stop';
start:=GetTickCount;
timer1.enabled:=True;
end
else
begin
timer1.enabled:=False;
timer1timer(Sender);
start:=0;
end;
end;
end;
[edit=alcaeus]delphi-Tags korrigiert. Mfg, alcaeus[/edit]

Fredyy 18. Jul 2005 07:28

Re: Delphi Stopuhr
 
da gibt es noch einen fehler...

Delphi-Quellcode:
min:=trunc((zeit mod h)/60);
s:=zeit mod min;
beide zeilen mit mod geben am anfang devision by zero aus,
da die uhr ja beim starten noch keine minuter oder stunde gelaufen ist.
wie kann ich das abfangen?

EDIT:

Problem selber behoen mit 2 unschönen aber funzenden Abfragen.

Delphi-Quellcode:
zeit:=trunc((GetTickCount-start)/1000);
h:=trunc(zeit/3600);

if (H > 0) then
min1 := (zeit mod h)
else
min1 := zeit;

min:=trunc(min1/60);

if (min > 0) then
s:=zeit mod min
else
s := zeit;


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 Uhr.
Seite 2 von 2     12   

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