Ereignis OnClick (BTN) zur Laufzeit erzeugen



  • Hallo,
    ich empfange Daten über UDP in meiner Anwendung. Die Daten unterscheiden sind durch eine Kennung, die den eigentlichen Daten vorangestellt ist. Mit der Kennung möchte ein ein OnClick Ereignis unterschiedlicher Button in Abhängigkeit der Datenkennung auslösen.

    Wie mache ich das? In den FAQs habe ich nichts gefunden.

    Danke
    Evi48



  • Einfach das Click-Ereignis des entsprechenden Buttons aufrufen? Ist ja schliesslich auch nur ne Funktion wie jede andere auch?

    -junix



  • Hallo junix,
    mit anderen Worten ich schreibe einfach "MyButton->OnClick(this);"

    Evi48



  • Eigentlich ja... ausser die Übergabe von "this", die gefällt mir ned.

    Eigentlich müsstest du dan den auslösenden Button übergeben (Sender) oder NULL (unter der Bedingung du fängst das ab, bevor du auf Sender zugreifst).... Hald einfach den Auslöser des Events... wie DU sender interpretierst ist dir überlassen. Wird der Event allerdings aus dem framework ausgelöst so liegt in Sender der Zeiger auf den auslösenden Button...

    -junix



  • Erstelle eine Funktion im Header

    void __fastcall BtnClick(TObject* Sender);
    

    und weise dem Button diese Funktion zu.

    Button1->OnClick=BtnClick;
    

    Damit das funktioniert, musst du in der Funktion BtnClick den Parameter Sender auswerten.

    HINWEIS: Bei der Zuweisung dieser Funktion wird als Sender Button1 übergeben. Du kannst allerdings nicht auf Eigenschaften oder Methoden zugreifen, die von TButton sind, sondern nur auf solche, die von TObject sind.



  • Netter Beitrag, sieht man mal davon ab, dass er
    a) am Thema vorbei ist
    und b) schon - in etwas ausführlicherer Form in der FAQ zu finden ist.

    Ausserdem steht auch in dem entsprechenden FAQ-Eintrag, wie man deinen Hinweis entkräftet.

    Nächstes Mal bitte erst denken, dann posten.

    -junix



  • junix schrieb:

    Netter Beitrag, ...

    Danke.

    junix schrieb:

    sieht man mal davon ab, dass er
    a) am Thema vorbei ist
    und b) schon - in etwas ausführlicherer Form in der FAQ zu finden ist.

    Und nochmal danke, aber am Thema vorbei war's nicht wirklich. Immerhin hast du fast das gleiche gepostet, nur dass bei dir für jeden Button eine extra-Funktion entsteht... naja, so ähnlich... bei mir jedenfalls verwenden alle buttons die selbe funktion.

    junix schrieb:

    Nächstes Mal bitte erst denken, dann posten.

    Ich habe gedacht und erst dann gepostet. Ich hab z.B. getestet, ob's klappt..... und siehe da: Es geht.



  • Vielen Dank Euch allen. Es funktioniert

    Evi48



  • Windoof schrieb:

    Und nochmal danke, aber am Thema vorbei war's nicht wirklich.

    Absolut. Die Frage war ja nicht "Wie weise ich einem Button dynamisch ein Event zu" sondern "Wie löse ich eine Button-Event aus dem Code aus?".

    -junix


Anmelden zum Antworten