Application OnActivate



  • Ich versuche zu zählen wie oft der Anwender von anderen Applications
    zur eigenen wechselt.
    Die Zähler meiner beiden Form1 x1,x2 funktionieren beim Wechseln der Forms untereinander, nicht aber beim Wechseln von anderen Anwendungen.
    Ich versuche das zu erreichen mit
    Application->OnActivate=Form1->OnActivate;
    Wie macht man das richtig?

    Hier mein Müll:

    //Form1
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    Application->OnActivate=Form1->OnActivate;
    }

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Form2->Show();
    }

    void __fastcall TForm1::FormActivate(TObject *Sender)
    {
    x1++;
    Label1->Caption=x1;
    }

    //Form2
    void __fastcall TForm2::FormActivate(TObject *Sender)
    {
    x2++;
    Label1->Caption=x2;
    }



  • Hallo,

    folgendes:

    int counter = 0;
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    Application->OnActivate = Form1->OnActivate;
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::FormActivate(TObject *Sender)
    {
    counter++;
    Label1->Caption = IntToStr(counter);
    }
    //---------------------------------------------------------------------------
    

    funktioniert zumindest bei mir ganz prima!

    LG, Micha





  • Danke, das ist ja komisch. Bei mir klappt das nicht. Der Counter bleibt auf 1 stehen. Ich verwende C++ Builder 6.
    An was könnte das liegen? Einstellungen?



  • Klappt auch im BCB 6 einwandfrei, wenn man die von audacia empfohlene Methode verwendet.



  • TApplicationEvents::OnActivate

    Jo, es passt. Vielen Dank!
    Tom1


Anmelden zum Antworten