Hallo,
ich habe eine Klasse "Basis" definiert die letztlich eine GroupBox ist und dort ein PopupMenu mit 2 MenuItems erzeugt. Hier ist mal ein Beispielcode, damit man mein Problem besser verstehen kann:
Jetzt habe ich diverse Klassen, die von "Basis" abgeleitet sind und möchte jetzt beim Klick der MenuItems eine Ereignisfunktion der neuen Klassen aufrufen, doch das funktioniert nicht.
In diesen neuen Klassen habe ich eine Funktion MyOnClick(TBject *Sender) die ich für die MenuItemClicks eintrage:
Hat jemand eine Idee was ich falsch mache?
Bye - Peter
ich habe eine Klasse "Basis" definiert die letztlich eine GroupBox ist und dort ein PopupMenu mit 2 MenuItems erzeugt. Hier ist mal ein Beispielcode, damit man mein Problem besser verstehen kann:
Code:
//--------------------------------------------------------------------------- class TBasis { private: // Anwender-Deklarationen TPopupMenu *PopupMenu; TComponent* Parent; public: // Anwender-Deklarationen __fastcall TBasis(TWinControl* Win,TComponent* Owner); __fastcall ~TBasis(void); TGroupBox *GB; }; //--------------------------------------------------------------------------- __fastcall TBasis::TBasis(TWinControl* Win, TComponent* Owner) { Window = Win; Parent = Owner; GB = new TGroupBox(Owner); GB->Parent = (TWinControl*)Owner; PopupMenu = new TPopupMenu(GB); TMenuItem *M1 = new TMenuItem(PopupMenu); PopupMenu->Items->Add(M1); M1->Caption = "MenuItem1"; TMenuItem *M2 = new TMenuItem(PopupMenu); PopupMenu->Items->Add(M2); M2->Caption = "MenuItem2"; GB->PopupMenu = PopupMenu; PopupMenu->Items->Items[0]->OnClick = OnClick; PopupMenu->Items->Items[1]->OnClick = OnClick; } //--------------------------------------------------------------------------- void __fastcall TBasis::OnClick(TObject *Sender) { Application->MessageBox("Test","Test",MB_OK); } //---------------------------------------------------------------------------
In diesen neuen Klassen habe ich eine Funktion MyOnClick(TBject *Sender) die ich für die MenuItemClicks eintrage:
Code:
__fastcall TMyClass::TMyClass(TWinControl* Win, TComponent* Owner) : TBasis(Win,Owner) { GB->PopupMenu->Items->Items[0]->OnClick = MyOnClick; GB->PopupMenu->Items->Items[1]->OnClick = MyOnClick; } //--------------------------------------------------------------------------- void __fastcall TMyClass::MyOnClick(TObject *Sender) { Application->MessageBox("Gut","Okay",MB_OK); } //---------------------------------------------------------------------------
Bye - Peter
Comment