Runtimekomponente und Events



  • Hallo,

    ich erzeuge TTimer Komponente, nur weiß ich nicht, wie ich nun dem neuen Timer eine n Event zuordnen kann.
    Also beim neu erzeugten Timer soll der "OnTimer" Event aufgerufen werden, wobei dieser ja auch noch zuerst geschrieben werden muss.
    Wie stelle ich das an?

    Ich erzeuge so meine Komponente

    TTimer *ClockTimer;
      ClockTimer = new TTimer(Page);
      ClockTimer->Name = "TimerSheet" + (String)counter;
      ClockTimer->Enabled = true;
      ClockTimer->Interval = 1000;
    

    und dann gleich noch ne ähnliche Frage hinterher...
    wenn ich genau auf die gleiche Weise ein Label erzeuge,
    wie kann ich dann den Caption des Labels ändern?

    "LabelSheet" + (String)counter->Caption = "text";
    

    das ist ja leider nicht möglich, wie stelle ich das an?

    Dankeschön 🙂



  • Siehe FAQ, "Komponenten benutzen", dabei insbesondere (aber nicht nur) "zur Laufzeit erstellen ...".



  • Danke Jansan,
    wobei mir das nun peinlich ist, dass das in der FAQ zu finden war.

    Ich habe soweit alles umsezten können,
    eines bekomme ich aber dennoch nicht hin:

    ClockTimer->OnTimer = LadeURL(counter);
    

    LadeURL ist folgendermaßen deklariert

    void __fastcall TForm1::LadeURL(int Index)
    

    Dies ist wird aber nicht zugelassen --> E2109 Not an allowed type

    Der OnTimer Event soll aber eine Funktion mit Parametern aufrufen.

    Verbleibe Dankend



  • Du kannst den Events nicht einfach eine x-beliebige Funktion zuweisen, das muss schon mit der Deklaration des Events übereinstimmen.
    Im Event kannst du dann machen was du willst.



  • Hallo

    Du sollst die Funktion nicht aufrufen, sondern derren Adresse übergeben :

    ClockTimer->OnTimer = LadeURL;
    

    /Edit : und die Metthode muß so aussehen :

    void __fastcall TForm1::LadeURL(TObject *Sender)
    

    bis bald
    akari



  • Hallo ihr zwei,

    dessen war ich mir bewusst, dass "TObject *Sender" verwendet werden _kann_, ich habe aber auch angenommen, dass man dann aber doch noch was machen könnte.
    Schließlich muss ich doch der Funktion noch einen Paramter übergeben, verbleibt nun die Frage wie ich das anstellen soll

    Aber da muss ich selber einen Lösungsweg finden.



  • Hallo

    Sender ist der Parameter. Siehe in der FAQ, wie Jansen bereits genannt hat.
    Du kannst mit dem Sender einiges machen, um herauszufinden was passieren soll.

    /Edit : siehe auf diesen Thread wo es um dieses Thema geht.

    bis bald
    akari



  • funktioniert wunderbar

    😋


Anmelden zum Antworten