Auf *Sender zugreifen?
-
ich sitze hier grad verzweifelt im Unterricht und komme nicht weiter. Mein Lehrer ist ABSOLUT unfähig, aber das ist ein andres Thema.
Also ich will auf den *Sender von einem Button zu greifen.
void __fastcall TForm1::BtnSpalte1Click(TObject *Sender)Mein Ziel ist es mittels ShowMessage(Sender->Name) oder ähnlichem den Namen wieder zu geben. In Delphi kann ich das per:
var MyButton: TButton; begin MyButton := Sender as TButton; ShowMessage(MyButton.Name); end;nur leider musste ich feststellen das es das "as" in dieser Form nicht zu geben scheint.
Danke
-
Gehört eigentlich ins BCB Forum...
Ich kenn mich mit der VCL nicht aus aber du musst es von TObject zu irgendwas casten mit dem du was anfangen kannst.
-
-
TButton* MyButton = static_cast<TButton*>(Sender); ShowMessage(MyButton->Name);
-
TButton* btn = dynamic_cast<TButton*>( Sender); if( btn != NULL) { ShowMessage( btn->name()); }Im Gegensatz zu "as" wirf dynamic_cast bei Pointern keine Exception sondern der Zielpointer ist NULL, wenn der cast nicht klappt. (Bei cast auf Referenzen wird eine std::bad_cast exception geworfen).
-
Nun hab ich extra auf den BCB geklickt dann war ich auch noch zu langsam

-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum VCL/CLX (Borland C++ Builder) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-