![]() |
Self oder Sender?
Moin,
nur eine kurze Frage, wenn ich eine Prozedur aufrufe die einen "Sender" verlangt, sende ich dann "self" oder "Sender"(sofern die Prozedur die die andere Prozdedur aufruft selbst einen Paramater "Sender besitzt) ? |
Re: Self oder Sender?
Kommt drauf an. 'Reichst' Du ein Event 'nur durch', also ist das aufrufende Objekt in dem Falle nicht direkt selber der Sender des Events, dann übergibst Du den 'Sender' (sofern vorhanden, sonst self oder nil). In jedem anderen Fall (Dein Objekt löst das Event bewußt selber aus) übergibst Du 'self'.
Es kann passieren, das ein Event mit dem 'Sender' der übergeben wird irgendwas anstellt. z.B. kann ein Event bei einem Buttonklick den (Sender as TWincontrol).Enabled auf false setzen, damit das Event nicht zweimal ausgelöst wird. Demnach musst Du halt nachgucken, was als Sender in der Funktion überhaupt verlangt wird. |
Re: Self oder Sender?
Wenn du in der Ereignis-Prozedur den Sender nicht selbst verarbeitest, ist es eigentlich egal, dann kannst du auch nil angeben, im Zweifel würde ich die Komponente verwenden zu der das Ereignis primär gehört, also z.B.:
Delphi-Quellcode:
oder beim Form
Button1Click(Button1);
Delphi-Quellcode:
oder wie Phoenix eben sagt, den Sender 'durchreichen'.
OnClick(self);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz