Projekt mit
1 €
unterstützen?
So geht das *:


Nutzung des API-Timers

Als erstes brauchen wir ein Formular und (mindestens) zwei Buttons BtnActive und BtnDeactive.

Hiernach müssen folgende Code-schnippsel an die richtige Stelle gebracht werden, nachdem bei uses "mmsystem" eingebunden wurde:

    FID : integer;   // ID des API-Timers

[...]

    // API-Timer Callback-prozedur
    procedure TimeCallback(TimerID,Msg : UINT; dwUser,dw1,dw2 : DWord); pascal;

implementation

[...]

procedure TimeCallback(TimerID,Msg : UINT; dwUser,dw1,dw2 : DWord); pascal;
begin 
  // Hier rein, was gemacht werden soll.
end;

Den Timer starten und beenden:
  // Timer starten
  FID := timeSetEvent(1000,0,@TimeCallBack,0,TIME_PERIODIC);

[...]

  // API-Timer wieder freigeben:

  timeKillEvent(FID);

Hiermit kann man nun, wenn alles stimmt, z.B. eine exakte Stoppuhr basteln, die auf die 10. Miliseknde genau die gestoppte Zeit anzeigt.

Aufgabe: Baue diese Stoppuhr mit den Funktionen Start, Stopp, Pause und Reset ;-)
Tipps zur Vorgehensweise:
- Verwenden sie zunächst eine unit-globale Variable, mit deren Hilfe sie die Zeit in 10 msec-Schritten hochzählen.
- bauen sie diesen "Timer" der erstmal nur hochzählt.
- Wenn alles klappt, dann gehen Sie an die Stopp-Procedure.
- Hiernach sind es nur noch wenig Änderungen zur Pause-Procedure.
- Die Reset-Procedure sollte zum Schluss kein Problem mehr darstellen.

 

Bei Problemen oder Fragen, einfach das folgende Modul benutzen:

 


Da das Kommentarmodul dieser Seite zur Zeit neu überarbeitet werden muss, sendet bitte alle Fragen, Anregungen oder Probleme mit Betreff zu welchem Thema es sich handelt an folgende Mailadresse:



www.marco-hetzel.de
www.delphi-lernen.de
www.lazarus-lernen.de

© 2006-2019 by Marco Hetzel , last modified 01.11.2018, 11:28

(* Unterstützung dient der Aufrechthaltung laufender Kosten für dieses Projekt.)