TTimer OnTimer Funktionsaufruf ...



  • Hallo,

    warum kann der Timer nur published Methoden aufrufen?
    Kann ich nicht selbst deklarierte Methoden private oder public für das OnTimer Event setzen??

    mfg

    Blade



  • Du kannst diese doch aus dem OnTimerEvent aufrufen



  • Dann muss ich aber erst eine Methode erstellen lassen, die nichts beinhaltet ausser "meinen eigentlichen" Methodenaufruf ... auch doof oder?



  • wozu willst du die std-callback-funktion verändern? deren parameter-liste ist festgelegt, da kannst du nichts eigenes hinpacken, es sei denn die funktion verfügt über die selben parameter wie die std-ereignis-funktion. macht hier also keinen sinn was zu ändern oder ich sehe ihn nicht...



  • Sorry was ist die std-callback Funktion?
    Wenn ich zum Beispiel einen Button eifünge, dann sieht die Methoden-deklaration ca. so aus:

    void __fastcall Button1Click(TObject *Sender);
    

    ... auf diese Methode kann ich bei OnTimerEvent verweisen und sie ausführen lassen. Bei meinen eigenen Methoden "void test();" würde das nicht gehen.
    Es ist doch nicht sinnvoll extra für die onTimerEvent einen Button zu erstellen auf den ich verweise oder?

    Schmeiss ich da gerade was durcheinander oder geht das wirklich nicht?

    Thanx...
    Blade



  • verstehe zwar nicht ganz was du zu erreichen versuchst:

    // im Header (private) -> void __fastcall MeineFunktion();
    void __fastcall TForm1::MeineFunktion()
    {
      //...
    }
    
    // ohne deklaration im header ist das ne funktion die nur
    // in der cpp von TForm1 sichtbar und aufrufbar ist
    void NochEineFunktionVonMir()
    {
      //...
    }
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      //...
    }
    
    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
      Button1Click(Sender);     // OnClick von Button1 aufrufen
    
      MeineFunktion();          // meine 1. Funktion aufrufen
      NochEineFunktionVonMir(); // meine 2. Funktion aufrufen
    }
    


  • void test();

    oder

    void __fastcall test(TObject *Sender);

    Probier das mal

    Dann muss ich aber erst eine Methode erstellen lassen, die nichts beinhaltet ausser "meinen eigentlichen" Methodenaufruf ... auch doof oder?

    Gibt schlimmeres, glaube ich



  • Juhuuuuu

    DANKE @Sunday & @Christian211...
    jetzt hab ichs gecheckt 🙂 ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke ...danke


Anmelden zum Antworten