Auf Eigenschaft Dynamisch zugreifen



  • Hallo und Guten Tag,

    ich Benötige mal eure Hilfe.

    In einem Formular in dem ich 10 Buttons über die IDE gesetzet habe,
    möchte ich über das Ereignis die Eigenschaft des button ändern.

    //--- Standart --
    __fastcall TForm1::Button1Click(Objekt *Sender)
    {
         Button1->Caption = StrToInt(Button1->Caption)++;
    }
    
    __fastcall TForm1::Button2Click(Objekt *Sender)
    {
      Button1->Caption = StrToInt(Button1->Caption)++;
    ....
    usw
    

    Meine Idee ist das ich zwar das OnClick eine jeden Button nutze
    aber die eigenschaften in einer unterfunktion ändere.
    Nur wie ich das Anstelle dafür fehlt mir die Erfahrung

    __fastcall TForm1::Button1Click(Objekt *Sender)
    {
       UnterFunktion( ????  );  
       Button1->Caption = StrToInt(Button1->Caption)++;
    }
    
    TForm1::UnterFunkton( ???? Quelle)
    {
      Quelle->Caption = ............
    
    }
    

    Damit kann ich dann aus der Unterfunktion die Eigenschaften änder.
    Und Brauche das nicht fuer jeden Button einzelnd zu machen.

    Dann brauche ich nur das Ereignis OnClick um die Unterfunktion auf zurufen.

    Ich habe schonmal geschaut ob ich *Sender dafür nutzen kann, bin aber nicht fündig geworden.

    Gruss
    MB



  • Wär ganz schön, wenn du die Syntax das nächste mal richtig übernehmen würdest, es heißt nämlich nicht
    Objekt Sender
    sondern
    TObject *Sender
    ...

    Und wenn du dir dann auch noch mal die Hilfe zu
    dynamic_cast
    anguckst, dann siehst du auch, wie du das machen kannst...
    Kleiner Tipp:

    dynamic_cast<TButton*>(Sender)->Caption="hallo";
    

    Und wieso benutzt du im oberen fall eingentlich nicht für jeden Button das SELBE Ereignis?
    :p 😉



  • Ausserdem schreibt man Standard nur mit einem 't'! 😉

    Aber im Ernst, im ObjectInspector kannst du allen Buttons das OnClick-Event des ersten zuweisen. Der Rest geht dann über Sender und dynamic_cast, wie von aaaabyx erwähnt und auch in den diversen FAQ-Beispielen beschrieben.



  • Danke nochmal,

    ich hatte das mit dem sender schon gestet Sender-> ,
    nur ich kamm nicht auf die Caption eigenschalft.

    Mit dem dynamic_cast<TButton*>(Sender)->.. klappt es bestens

    Danke


Anmelden zum Antworten