dynamisch erzeugte panels mit onClick Methode erstellen



  • wie kann ich bei einem dynamisch, also zur laufzeit erzeugtem panel (oder anderer komponente) eine onClick Methode realisieren?

    habe in vielen Foren und auch im Netz intensiv danach gesucht, aber leider nix gefunden. Das überschreiben der Click Methode hab ich bereits probiert, allerdings wird die methode anscheinend nicht aufgerufen.... hier der code dafür:

    header:

    class FC : public TPanel
    {
    public:
             __fastcall FC(TComponent *Owner);
    
    protected:
            DYNAMIC void __fastcall Click();
    };
    

    cpp:

    #pragma hdrstop
    
    #include "fc.h"
    __fastcall FC::FC(TComponent *owner)
     :TPanel(owner)
    {
    
    }
    void __fastcall FC::Click()
    {
     this->Caption="test";
     TPanel::Click();
    }
    #pragma package(smart_init)
    

    der Code bringt keine Fehler, doch wenn ich nun auf das panel clicke passiert gar nix.

    ich hoffe mir kann jemand weiter helfen.... Danke.

    mfg FlashLight



  • weisse einfach dem Ereignis OnClick eine entsprechende Routine zu.

    // im Header von Form1
    private:
    
      void __fastcall MyPanelOnClick(TObject *Sender);
    
    void __fastcall TForm1::MyPanelOnClick(TObject *Sender)
    {
      // blahfasel
    }
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      // neues Panel erzeugen und Methode zuweisen
      MyPanel *Panel = new MyPanel;
      Panel->Parent  = *this; 
      Panel->OnClick = MyPanelOnClick;
    }
    


  • Hallo

    siehe auch FAQ.

    bis bald
    akari



  • danke, hatte irgendwie nen denkfehler 🙂

    mfg FlashLight


Anmelden zum Antworten