OnTimer-Event



  • Hi, ich habe folgendes Problem:

    Auf meinem Form steht: 00h 00min 00sec. Die Zeit soll im Sekundentakt hochlaufen (Timer Interval steht auf 1000ms).
    In meinem onTimer-Event:

    int secs, mins, hours, limit;
     secs = 0;
     mins = 0;
     hours = 0;
     limit = 0;
     secs++;
    //...
    sec->Caption = secs;
    //...
    

    Nach dem kompilieren ändert sich die Anzeige, wie es auch sein soll auf 00h 00min 01sec. Aber dann wird nciht weiter hochgezählt, warum nicht??



  • Die Deklaration und Initialisierung deiner Zählervariablen darf natürlich nicht im OnTimer erfolgen, sonst werden sie doch jedesmal wieder auf 0 gesetzt.



  • Thx, es geht jetzt, war wohl ein bissl blind... 🙄



  • Jansen schrieb:

    Die Deklaration und Initialisierung deiner Zählervariablen darf natürlich nicht im OnTimer erfolgen, sonst werden sie doch jedesmal wieder auf 0 gesetzt.

    Nur, wenn das Element nicht static-deklariert ist... wobei Static auch wieder eher einige Nachteile hat...

    -junix



  • junix schrieb:

    wobei Static auch wieder eher einige Nachteile hat

    Ausserdem hilft es nicht gegen die Re-Initialisierung mit 0. 😉
    Es sei denn, diese erfolgt "inline":

    static int x = 0;
    


  • Alles andere ist ja auch gar keine Option, Jansen, das ist höchstens Bastelcode (o;

    -junix


Anmelden zum Antworten