![]() |
Delphi-Version: 5
Hilfe...wie mach ich eine Stoppuhr?
hey.
ich habe jetzt in der schule informatik dazugewählt und bräucht jetzt ma eure Hilfe, da ich noch ein richtiger anfänger bin und ich demnächst klausur schreibe. die aufgabenstellung war: Erstelle ein Label und einen Button. Wenn der Button gedrückt wird, soll die Beschriftung des Labels mittels eines Timers in Millisekunden hochzählen. Wenn der Button nochmal gedrückt wird, soll die Stoppuhr wieder anhalten. Wie mach ich so was? (quell-code wäre hilfreich) mfg c.delphi |
AW: Hilfe...wie mach ich eine Stoppuhr?
Ganz einfach: Du holst dir die aktuelle Zeit (mit now()) und speicherst die in der Variablen Start. Dann holst du dir im TimerEvent wieder die aktuelle Zeit und schaust, wie viel Zeit vergangen ist. Dies gibst du dann aus. Beim Stopp beendest du einfach wieder den Timer.
Ansonsten hoffe ich, dass du Delphi-Grundkenntnisse mitbringst, ansonsten wäre ein Grundlagentutorial hilfreich. Bernhard |
AW: Hilfe...wie mach ich eine Stoppuhr?
Es bietet sich hier auch die Funktion GetTickCount an.
|
AW: Hilfe...wie mach ich eine Stoppuhr?
Zitat:
P.S.: Willkommen in der DP :dp: |
AW: Hilfe...wie mach ich eine Stoppuhr?
Ich könnte mir vorstellen, dass die Aufgabenstellung auf eine etwas andere Lösung abzielt. Du kannst dir eine private Variable deklarieren und diese beim Programmstart auf 0 setzen. Beim Drücken des Buttons aktivierst du den Timer (setzt die Eigenschaft Enabled von false auf true). Bei jedem Timer-Event erhöhst du deine Variable um die Zeitdauer des Timers (Eigenschaft Interval) und gibst die Variable per IntToStr in deinem Label aus. Beim Stoppen musst du lediglich den Timer wieder deaktivieren
Hinweis: Die Lösung von "rollstuhlfahrer" arbeitet genau genommen besser, da sie genauer ist. Wenn ein Timer beispielsweise ein Interval von 25ms hat, dann dauert es nicht genau 25ms, bis der Timer tatsächlich aufgerufen wird, sondern diese Zeit kann schwanken. Gerade bei einem kleinen Interval kann es in diesem Fall zu erheblichen Abweichungen kommen! |
AW: Hilfe...wie mach ich eine Stoppuhr?
Schau dir mal meine
![]() Welcome to DP :dp: |
AW: Hilfe...wie mach ich eine Stoppuhr?
Da es sich hier ja um eine Aufgabe für Anfänger handelt und diese mit den bisher vermittelten Kenntnissen lösbar sein sollte, glaube ich, dass der Einsatz von Standard-Komponenten völlig ausreichen muss.
Anzeige in Millisekunden wird wohl so gemeint sein:
Delphi-Quellcode:
Die Anzeige jede Millisekunde zu Referaten ist bestimmt nicht gefordert, da dies a) technisch nicht möglich und b) absolut unnötig ist. Das Auge ist mit 25 Bildern pro Sekunde schon glücklich wozu also mit 1000 Bildern pro Sekunde stressen (Auge wie Computer)
Label1.Caption( FormatDateTime( 'hh:nn:ss.zzz', Dauer ) );
Somit würde ich Timer-Interval auf 40 setzen (das ist auch schon hart) und im Timer-Event dann das Label aktualisieren lassen:
Delphi-Quellcode:
Damit der Timer losläuft und anhält im OnClick-Event
Label1.Caption( FormatDateTime( 'hh:nn:ss.zzz', now - Start ) );
Delphi-Quellcode:
Im groben sollte es das gewesen sein. Da kann man noch etwas feilen, aber wir wollen es ja auch nicht komplett bauen :mrgreen:
Start := now;
Timer1.Enabled := not Timer1.Enabled; |
AW: Hilfe...wie mach ich eine Stoppuhr?
Ich mag es aber diverse Utilities in Komponenten/Klassen zu packen ;) Wenn OOP, dann schon von Anfang an. Aber ist in diesem Fall vielleicht wirklich mit Kanonen auf Spatzen geschossen.
|
AW: Hilfe...wie mach ich eine Stoppuhr?
Er ist doch gerade dabei das Seepferdchen zu machen und da ist der Rettungsschwimmer noch weit weg ;)
|
AW: Hilfe...wie mach ich eine Stoppuhr?
Man kann doch aber doch auch sicherlich schon mal den Grundkurs für die Rettungsschwimmer ansehen :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:00 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