TTimer Fragen zur Funktionsweise

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
DL3AD
Beiträge: 478
Registriert: Fr 13. Sep 2013, 12:07
OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
CPU-Target: 64Bit
Wohnort: Rügen

TTimer Fragen zur Funktionsweise

Beitrag von DL3AD »

Hallo,

in meinem Projekt möchte ich etwas zyklisch überwachen und will dazu den TTimer verwenden.
Hierzu habe ich noch ein paar Verständnisslücken.

Die Implementation ist ja spielend einfach - ein Doppelklick auf das Symbol und der nötige Code steht in der unit.
Hier nun meine Fragen bzw. Annahmen

1. mit Interval wird sicher die Ablauzeit angegeben in ms
2. mit Enabled wir da der Timer in Bereitschaft versetzt gestartet zu werden oder wird er mit Enabled gestartet ?
3. OnTimer ist sicherlich das Ereignis nach der Ablaufzeit
4. OnStartTimer ist wohl das Ereigniss wenn der Timer gestartet wurde ?
5. OnStopTimer ist wohl das Ereigniss wenn der Timer gestoppt wurde ?
6. Wie Starte ich den Timer ?
7. Wie Stoppe ich den Timer ?

Gruß Frank

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2816
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: TTimer Fragen zur Funktionsweise

Beitrag von m.fuchs »

DL3AD hat geschrieben:1. mit Interval wird sicher die Ablauzeit angegeben in ms
Ja.
DL3AD hat geschrieben:2. mit Enabled wir da der Timer in Bereitschaft versetzt gestartet zu werden oder wird er mit Enabled gestartet ?
Er wird damit gestartet.
DL3AD hat geschrieben:3. OnTimer ist sicherlich das Ereignis nach der Ablaufzeit
Genau.
DL3AD hat geschrieben:4. OnStartTimer ist wohl das Ereigniss wenn der Timer gestartet wurde ?
Ja.
DL3AD hat geschrieben:5. OnStopTimer ist wohl das Ereigniss wenn der Timer gestoppt wurde ?
Ja.
DL3AD hat geschrieben:6. Wie Starte ich den Timer ?

Code: Alles auswählen

Timer1.Enabled := True;
DL3AD hat geschrieben:7. Wie Stoppe ich den Timer ?

Code: Alles auswählen

Timer1.Enabled := False;
hth
Micha
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de


DL3AD
Beiträge: 478
Registriert: Fr 13. Sep 2013, 12:07
OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
CPU-Target: 64Bit
Wohnort: Rügen

Re: TTimer Fragen zur Funktionsweise

Beitrag von DL3AD »

@ m.fuchs

Danke für die ausführliche Antwort !

@ theo
den ersten Link kennte ich - war aber für mich nicht eindeutig beschrieben.
z.B. Enabled - if True, timer is ready to start - hmm, wird der timer in bereitschaft versetzt oder wird er tatsächlich gestartet.
Der zweite link wurde nach der suche nach TTimer nicht ausgeworfen.
Tratzdem Danke für deine Antwort :wink:

Gruß Frank

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

Re: TTimer Fragen zur Funktionsweise

Beitrag von theo »

DL3AD hat geschrieben: z.B. Enabled - if True, timer is ready to start - hmm, wird der timer in bereitschaft versetzt oder wird er tatsächlich gestartet.
Das meint in diesem Fall wohl dasselbe. "Wird bei der nächsten möglichen Gelegenheit gestartet".
DL3AD hat geschrieben: Der zweite link wurde nach der suche nach TTimer nicht ausgeworfen.
Der zweite Link ergibt sich aus der Klassenhierarchie im ersten Link.
Siehe Link dort bei: type TTimer = class(TCustomTimer)
Das ist wichtig zu wissen, sonst kann man die Hilfe nicht effizient nutzen!

DL3AD
Beiträge: 478
Registriert: Fr 13. Sep 2013, 12:07
OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
CPU-Target: 64Bit
Wohnort: Rügen

Re: TTimer Fragen zur Funktionsweise

Beitrag von DL3AD »

... aha danke für den Hinweis !
Dann werde ich mich in zukunft mal intensiver durchklicken.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: TTimer Fragen zur Funktionsweise

Beitrag von mschnell »

Klar ist, dass ein TTimer nicht wirklich genau ist, sondern nur im Rahmen der durch das Betriebssystem gegebenen Latenz.

Ich weiß nicht ob irgendwo klar definiert ist, dass der Timer mit "enabled := true" am Anfang eines Intervall startet, oder vielleicht ein vorher mit "enabled := false" unterbrochenesa Intervall erstmal zu Ende führt, d.h. also ein verkürztes Intervall einlegt. Es ist auch nicht klar, was passiert wenn man "enable := true" setzt, während der Timer läuft. Man könnte sich vorstellen, dass das Intervall dann von vorne beginnt (re-trigger).

-Michael

DL3AD
Beiträge: 478
Registriert: Fr 13. Sep 2013, 12:07
OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
CPU-Target: 64Bit
Wohnort: Rügen

Re: TTimer Fragen zur Funktionsweise

Beitrag von DL3AD »

... ja dass geht schon ok so - nutze den TTimer nur zum pollen eines Zustandes einer Hardware die über einen RS485 Bus angesprochen wird.
Hatte diese Projekt schon mal in VB.Net geschrieben - will nun weg von VB und mit FPC bin ich bisher sehr zufrieden :)

Antworten