Mehrere Timer



  • Hallo,

    in einer Anwendung benötige ich unterschiedliche Zeitsteuerungsmechanismen, die ich per TTimer realisiere. Der Einfachheit halber benutze ich dazu mehrere Timer.
    Jetzt erinnere ich mich aber, dass ich hier im Forum mal einen Hinweis gelesen habe, möglichst wenige Timer zu benutzen.
    Diesen Beitrag kann ich per Such-Funktion leider nicht (wieder-) finden.

    Kleine Zusatzfrage noch:
    Angenommen ich verwende mehrere Timer, stelle aber sicher, dass immer nur einer aktiviert ist (Timer->Enabled = true). Bringt das etwas?

    Gruß
    Leo



  • kommt drauf an ob dann deine Steuerung noch zeitrichtig läuft, denn was ist wenn du in einer Timerroutine drin bist, die nächste aber schon ausgeführt werden soll?????



  • von welcher grössenordnung sprichst du?



  • Das ist weniger das Problem. Die Anzahl der unter Windows zur Verfügung stehenden Timer ist begrenzt. Deswegen sollten pro Application möglichst wenige TTimer-Objekte verwendet werden.

    Leo Freitag schrieb:

    Angenommen ich verwende mehrere Timer, stelle aber sicher, dass immer nur einer aktiviert ist (Timer->Enabled = true). Bringt das etwas?

    Ich vermute, dass der Verwaltungsaufwand hierfür höher ist, als mit einem Timer zu arbeiten, der alle nötigen Funktionen aufruft.



  • 1. Schreibe fuer jeden gewünschten Intervall eine Routine
    2. setze EINEN Timer - Intervall = kleinste gemeinsame Einheit
    3. Lass ne static variable darin hochlaufen und teste mit Modulo die einzelnen
    Intervalle. Dabei rufst Du die jeweilige Routine bei Modulo = 0!
    Voila



  • DerAltenburger schrieb:

    1. Schreibe fuer jeden gewünschten Intervall eine Routine
    2. setze EINEN Timer - Intervall = kleinste gemeinsame Einheit
    3. Lass ne static variable darin hochlaufen und teste mit Modulo die einzelnen
    Intervalle. Dabei rufst Du die jeweilige Routine bei Modulo = 0!
    Voila

    das wird doch schon von windows so gemacht.



  • DerAltenburger schrieb:

    1. Schreibe fuer jeden gewünschten Intervall eine Routine
    2. setze EINEN Timer - Intervall = kleinste gemeinsame Einheit
    3. Lass ne static variable darin hochlaufen und teste mit Modulo die einzelnen
    Intervalle. Dabei rufst Du die jeweilige Routine bei Modulo = 0!
    Voila

    Hi,

    das klingt clever, werde ich probieren.
    Besten Dank!

    Gruß
    Leo



  • virtueller timer schrieb:

    das wird doch schon von windows so gemacht.

    Na und???


Anmelden zum Antworten