Autor Beitrag
Nano-Ware
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: Mo 03.05.10 16:43 
Hey ;D,

wenn ich ein Control habe ( in dem Fall 2 Buttons ) und verweise beide auf die selbe Procedure und will nun in einem Label anzeigen, ob von Button1 oder von Button2 gesendet worden ist. Ich möchte aber nicht "If Sender = ..." denn das werden recht viele Buttons ;D Also sozusagen so:


Label1.Caption := DIE_FUNKTION(Sender);
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mo 03.05.10 16:47 
Recht einfach, sogar ohne FUNKTION ;)

Den Button bekommst du, indem du Sender in TButton castest. Und jedes Control weiß ja, wie es heißt:

ausblenden Delphi-Quelltext
1:
Label42.Caption:= (Sender as TButton).Name;					


So kommst du auch an alle anderen Eigenschaften von TButton ran.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Nano-Ware Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: Mo 03.05.10 16:52 
OMG da hät ich auch selbst drauf kommen können^^ danke ;D

EDIT:// Es gibt doch noch ein Problem :

Ich habe auf meiner Form ca. 20-30 Textboxen. Ihr Name beginnt mit "sv_" wie kann ich denn jetzt einen nach der anderen durchgehen? Und den vollständigen Namen anzeigen?
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mo 03.05.10 16:58 
;)

Kleiner Hinweis vielleicht noch, ist mir nach dem Absenden noch eingefallen: falls es sein kann, dass das Ereignis nicht nur von Buttons aufgerufen wird, sollte man noch testen, ob denn der Sender überhaupt ein Button ist:
ausblenden Delphi-Quelltext
1:
2:
if Sender is TButton then
  Label42.Caption:= (Sender as TButton).Name;

Der as-Operator macht das zwar intern, wirft dann aber eben eine Exception, wenns nicht passt.


user profile iconNano-Ware hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe auf meiner Form ca. 20-30 Textboxen. Ihr Name beginnt mit "sv_" wie kann ich denn jetzt einen nach der anderen durchgehen? Und den vollständigen Namen anzeigen?

FindComponent

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."