Frage zu "TObject *Sender"
-
Ich habe ein MainMenu und Untermenus und möchte wenn ich auf ein Menüpunkt klicke, das er mir in der Caption des Fensters den Namen des ausgewählten Menüeintrages anzeigt.
Beispiel:
SubMenu->OnClick = MeinEreignis; void __fastcall TForm1::MeinEreignis(TObject *Sender) { Caption = (TMenuItem*)Sender->Caption; // So klappts leider nicht }Eigentlich auch des Hauptmenüpunktes des gewählten Submenüs, kann mir jemand dabei helfen?
-
So ich denke ich habs doch selber hinbekommen. Falls noch ander Wege gibt würde ich mich freuen die zu hören.
TMenuItem *Item = dynamic_cast<TMenuItem*>(Sender);
-
Hallo
Das ist schon richtig. Du kannst auch static_cast nehmen wenn sicher ist das diese Eventmethode nur von MenuItem aus aufgerufen wird.
Der Vollständigkeit halber noch die berichtigung für den alten C-Cast, da haben nur zwei Klammern gefehlt :Caption = ((TMenuItem*)Sender)->Caption;Aber die C++ Cast sind besser da typsicher.
bis bald
akari
-
Argh, ja klar. Danke für die Korrektur!