OnClick auf eine Funktion weiterleiten



  • Hallo leute ich habe da plobelm.
    ich will eine OnClik ereignis auf eine Funktion weiterleiten.
    ich habe folgendermaßen versucht:

    [code]
           for (int f=0; f < Max ;f++)
               {
               for (int g=0; g < Max ;g++)
                   {
                   Box[f][g]          = new TPanel(Form1);
                   Box[f][g]->Parent  = Form1;
                   ...
                   Box[f][g]->Tag = Karte[f][g]->Tag ;
                   Box[f][g]->OnClick =  PanelOnClick(f,g) ;
    
                   }
               }
    //--------------------------------------------------------------
    void PanelOnClick(int f, int g)
    {
     Box[f][g]...;
    }
    

    [/code]
    allerdings ist sowas nicht möglich!
    hat jemand eine Idee?



  • Nein, so einfach ist das nicht möglich.

    Der Einfachheit halber:

    Setze das Standard OnClick-Ereignis und leite in diesem auf die gewünschte Funktion weiter



  • imbius schrieb:

    void PanelOnClick(int f, int g)
    {
     Box[f][g]...;
    }
    

    Wozu soll das gut sein? Das normale OnClick liefert dir per Sender doch bereits das tasächlich angeklickte Objekt.



  • Hallo

    siehe auch FAQ, Abschnitt Komponenten benutzen.

    bis bald
    akari




  • erhalten bleiben um weitere aktion durchzuführen.
    wenn ich in ein onclick ereignis die funktion weiterleite kann ich die x und y
    nicht weiterhin benutzen.
    Ideal wäre wenn in eine eigene OnClick Ereignis mit x und y selber schreiben
    könnte.
    leider kann ich in FAQ nicht passendes finden.

    dank im vorraus



  • Hallo

    nein du findest nicht einen genau passenden Code in der FAQ. Du must schon ein paar der Threads dort durchlesen und kombinieren.
    Die Ausgangslge ist, das du nur den Event an sich an OnClick übergeben kannst, aber ohne weitere Parameter.
    Stattdessen hat OnClick den Parameter Sender, der das auslösende Control übergibt. In deinem Fall wären das die Panels. Das findest du im FAQ-Thread Sendernamen auslesen.

    Normalerweise benutzt mandann die Tag-Eigenschaft für x und y, aber Tag hast du ja schon belegt.

    bis bald
    akari



  • Du könntest im OnClick durch das Array iterieren und gegen Sender vergleichen. Bei einem Treffer hast du in den Zählvariablen der Schleifen dann auch wieder dein f und g.


Anmelden zum Antworten