Timer Problem...



  • Ich möchte die Zeit messen wie lange es dauert bis alle Aktionen von einem OnClick Ereigniss abgelaufen sind. Zu diesem Zweck verwende ich einen Timer...

    Er ist am Anfang Enabled = false, bei klick wird er true, müsste also loslaufen...
    Interval = 100. Es sollten also die 10tel sekunden gezählt werden, leider bekomme ich als Ergebnis immer 0 angezeigt, aber es dauert definitiv länger als eine 10tel sekunde!

    stelle ich den timer von Anfang an auf Enabled->true so bekomme ich eine Zahl angezeigt, aber es wird ja leider auch die Zeit vor dem Klick gemessen...

    Ich kapiere einfach nicht was falsch sein soll...

    Hiermal der Code:

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    int count = 0;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Timer1->Enabled = true;
    for(int i = 0; i<10; i++)
    ::Sleep(100);
    Button1->Caption = count;
    }
    //---------------------------------------------------------------------------
    
    Könnt ihr mir helfen?
    
    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
    count++;        
    }
    //---------------------------------------------------------------------------
    


  • Straightflush schrieb:

    Ich kapiere einfach nicht was falsch sein soll...

    Abgesehen davon, dass Timer ohnehin nicht für Messungen geeignet sind: Während Button1Click läuft, werden keine anderen Ereignisse bearbeitet, auch keine Timer.

    Ruf GetTickCount auf, einmal am Anfang und einmal am Ende, und bilde die Differenz.



  • Super!!!
    Vielen Dank!

    Kannte die Funktion noch nicht.


Anmelden zum Antworten