stopuhr

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
karlheinz4
Beiträge: 10
Registriert: So 6. Mai 2012, 15:23

stopuhr

Beitrag von karlheinz4 »

hallo!
Ich bin dabei ein Spiel zu installieren und möchte die Spielzeit bzw. "Überlebenszeit" sichtbar nebenbei laufen lassen und nach einem Neustart wieder reseten. Nur leider fehlt mir hierfür der Ansatz. Angefangen habe ich mit TLabels und TTimern..

Vielen Dank für Eure Hilfe.

Benutzeravatar
theo
Beiträge: 10873
Registriert: Mo 11. Sep 2006, 19:01

Re: stopuhr

Beitrag von theo »

Hier gibt's jede Menge Infos zu Zeit und Datum

http://www.freepascal.org/docs-html/rtl ... tines.html" onclick="window.open(this.href);return false;
http://www.freepascal.org/docs-html/rtl ... dex-5.html" onclick="window.open(this.href);return false;

Wenn du nur Millisekunden hochzählen willst, ginge u.U. auch GetTickCount in unit LCLIntf

karlheinz4
Beiträge: 10
Registriert: So 6. Mai 2012, 15:23

Re: stopuhr

Beitrag von karlheinz4 »

danke dir, aber richtig durchblicken tu ich leider nicht. ich habe vor, eine Stoppuhr (00:00:00) laufen zulassen. Wäre in diesem Fall das hier das richtige? http://www.freepascal.org/docs-html/rtl ... etime.html" onclick="window.open(this.href);return false;

wenn ja, verstehe ich leider nicht, wo und wie mir die zeit angezeigt werden soll :( :(

Benutzeravatar
theo
Beiträge: 10873
Registriert: Mo 11. Sep 2006, 19:01

Re: stopuhr

Beitrag von theo »

Also sowas ginge, zum Sekunden zählen:

Code: Alles auswählen

var Tim:TDateTime;
begin
  Tim:=Now;
  Sleep(2100); //Rund zwei Sek. abwarten. Normalerweise Timer nehmen
  Caption:=Inttostr(SecondsBetween(Now,Tim));
end;
Der Rest geht analog.

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: stopuhr

Beitrag von creed steiger »

Wenn du dir zutraust dich in´s Arbeiten mit Multithreading einzuarbeiten,gibt es im examples Verzeichnis eine Demo dazu (MultiThreadingExample1) auf der du aufbauen könntest.
EpikTimer is evtl auch interessant:
http://wiki.freepascal.org/EpikTimer/de" onclick="window.open(this.href);return false;

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: stopuhr

Beitrag von Heinrich Wolf »

karlheinz4 hat geschrieben:ich habe vor, eine Stoppuhr (00:00:00) laufen zulassen.
Diese Formatierung kriegst Du so:

Code: Alles auswählen

Start := Now;
...
Label1.Caption := FormatDateTime('hh:mm:ss', Now - Start);
Heiner

karlheinz4
Beiträge: 10
Registriert: So 6. Mai 2012, 15:23

Re: stopuhr

Beitrag von karlheinz4 »

vielen dank für die ganzen antworten!

Heinrich Wolf hat geschrieben:Diese Formatierung kriegst Du so:
CODE: ALLES AUSWÄHLEN
Start := Now;
...
Label1.Caption := FormatDateTime('hh:mm:ss', Now - Start);
Ich stell mich gerade leider ein bisschen doof an.. :roll: wo genau muss das denn eingefügt werden?

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: stopuhr

Beitrag von Scotty »

creed steiger hat geschrieben:Wenn du dir zutraust dich in´s Arbeiten mit Multithreading einzuarbeiten...
Gibts schon: fpTimer :mrgreen:

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: stopuhr

Beitrag von MAC »

karlheinz4 hat geschrieben:vielen dank für die ganzen antworten!

Heinrich Wolf hat geschrieben:Diese Formatierung kriegst Du so:
CODE: ALLES AUSWÄHLEN
Start := Now;
...
Label1.Caption := FormatDateTime('hh:mm:ss', Now - Start);
Ich stell mich gerade leider ein bisschen doof an.. :roll: wo genau muss das denn eingefügt werden?
Naja mit dem befehl Now bekommst du die genause SystemZeit...
so wenn wir jetzt also starten vollen z.B: beim klick auf Button1 schreiben wir

Code: Alles auswählen

Start := now
Jetzt könnten wir nen Timer setzten der alle Halbe sekunde aufgerufen wird:

Code: Alles auswählen

Label1.Caption := FormatDateTime('hh:mm:ss', Now - Start);[/quote]
 
Beachte das Start eine globale variable
[code=laz]var
  start:TTime = 0;

Code: Alles auswählen

Signatur := nil;

karlheinz4
Beiträge: 10
Registriert: So 6. Mai 2012, 15:23

Re: stopuhr

Beitrag von karlheinz4 »

danke euch, habe es endlich hinbekommen :lol: :D

Antworten