*Sender benutzen



  • Hi,

    ich mache gerade meine ersten Schritte mit Borland C++.

    Mein Code sieht so aus:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     TLabel* label[10];
     for(int i = 0; i < 10; i++)
     {
       label[i] = new TLabel(this);
       label[i]->Parent = Panel1;
       label[i]->Top = i*12+5;
       label[i]->Left = 10;
       label[i]->Caption = (char)(i+48);
       label[i]->OnClick = test;
     }
    }
    
    void __fastcall TForm1::test(TObject *Sender)
    {
    }
    

    Ich möchte, dass ich in der Methode test() herausfinden kann, welches der 10 Labels angeklickt wurde. Deshalb dachte ich, dass ich über *Sender an den Namen des Objekts komme.

    Aber die Fehlermeldung, die erscheint, lautet:

    Name ist kein Element von TObject

    Der Code ist dieser:

    void __fastcall TForm1::test(TObject *Sender)
    {
       ShowMessage(Sender->Name);
    }
    

    Wie komme ich denn an die Werte, die das "aufrufende" Objekt hat, heran?

    Simon



  • Ich habs:

    void __fastcall TForm1::test(TObject *Sender)
    {
    ShowMessage(dynamic_cast<TLabel*>(Sender)->Name.c_str());
    }
    

Anmelden zum Antworten