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