Ereignis einer neu erstellen Komponente zuweisen



  • Habe in der FAQ folgendes Gefunden:

    Button1->OnClick = OnButton1Click;

    wobei irgendwo da steht:

    void __fastcall TForm1::OnButton1Click(TObject *Sender)
    {
    ...
    }

    ____________________________________________________________________

    Bei mir sieht das ganze so aus:

    void __fastcall TFrm_Rechnungsformular::OnLabelClick(TObject *Sender)
    {

    }

    void __fastcall TFrm_Rechnungsformular::Label1Click(TObject * Sender)
    {

    TLabel *label = new TLabel(Application);

    label->Parent = Panel1;
    label->Width = 21;
    label->Height = 13;
    label->Left = 24;
    label->Top = 24;
    label->Caption = "Text";
    label->DragMode = dmAutomatic;
    label->OnClick = OnLabelClick;

    }

    Darauf bekomme ich die Meldung:

    [C++ Fehler]
    u_rechnungsform.cpp(17): E2316 '_fastcall TFrm_Rechnungsformular::OnLabelClick(TObject *)' ist kein Element von 'TFrm_Rechnungsformular'

    was ist daran falsch im gegensatz zu der Lösung in der FAQ ?

    thx



  • hallo,

    wahrscheinlich hast du veergessen, dein event in der headerdatei zu redeklarieren, deshalb kommt die meldung das es kein element der klasse xy ist.
    du musst in der header also:

    class 0815: public tobject
    {
    
    ..
    public:
      void __fastcall OnLabelClick(TObject *Sender); 
    };
    

    schreiben, damit die klasse die routine kennt...

    mfg
    murph


Anmelden zum Antworten