Aufruf durch welches Objekt?



  • Hallo ich hab eine kleine Frage:
    Ich habe auf einer Form 5 TImage Komponenten und wenn ich auf eines davon klicke wird eine 2te Form aktiviert.
    Wie kann ich nun ermitteln welches Image angeklickt wurde um die Form zu oeffnen?

    Es gibt bestimmt eine leichte Antwort, allerdings bin ich wohl zu dumm um in google etwas zu finden.

    Vielen Dank im Voraus.



  • vielleicht hiflt Dir das weiter:

    void __fastcall TForm1::FormOpen(int index)
    {
      AnsiString nummer = index;
      Form2 = new TForm2(Application);
      Form2->Label1->Caption = "Image" + nummer;
      Form2->ShowModal();
      delete Form2;
    }
    

    Gruß myerscola



  • oder:

    TImage* MyImage = (TImage*)Sender;
    
    string s = MyImage->Name.c_str();
    

    gruss
    jeremin



  • Jeremin schrieb:

    oder:

    TImage* MyImage = (TImage*)Sender;
    
    string s = MyImage->Name.c_str();
    

    gruss
    jeremin

    Gefährlich... du gehst immer davon aus, dass der Sender TImage ist und benutzt den veralteten C-Style cast zur Konvertierung. Für den Compiler ist das in Ordnung, der wandelt ohne zu Murren Äpfel in Birnen um. Richtigerweise benutzt man dynamic_cast und prüft gegen das Ergebnis:

    TImage* Image = dynamic_cast<TImage*>( Sender );
    if( Image )
    {
       string s = Image->Name.c_str();
    }
    


  • danke, mal wieder was gelernt!


Anmelden zum Antworten