Delphi (发件人:托宾)

Delphi (发件人:托宾),delphi,Delphi,(发件人:TObject)是什么意思?? 例如: Sender是对触发事件的组件的引用。在这种情况下,发送者将是用户单击的按钮,称为Button1Click事件 当您有多个组件调用同一事件,并且需要确定是哪个组件导致触发事件时,这非常有用 例如,您可以执行以下操作: if Sender = Button1 then // ... Sender是触发事件(调用事件处理程序)时经常使用的参数。大多数时候,我会将它描述为触发事件的对象 但实际上,您可以将任何对象传递给发送方参数,只要它在这种特定情况

(发件人:TObject)是什么意思?? 例如:


Sender是对触发事件的组件的引用。在这种情况下,发送者将是用户单击的按钮,称为Button1Click事件

当您有多个组件调用同一事件,并且需要确定是哪个组件导致触发事件时,这非常有用

例如,您可以执行以下操作:

if Sender = Button1 then
// ...

Sender是触发事件(调用事件处理程序)时经常使用的参数。大多数时候,我会将它描述为触发事件的对象

但实际上,您可以将任何对象传递给发送方参数,只要它在这种特定情况下继承自TObject。正如Jim已经提到的,在这个特定的cast中,您向Button1的OnClick事件添加了一个事件处理程序。因此,当Button1被单击时,将执行方法Tform1.ButtonClick,发送方将包含对您单击的按钮实例的引用

问候,


Stefaan

您应该将此站点和此站点标记为书签:Delphi语言指南WIKI:@Jeff:您可能希望将其重新表述为“发件人是组件的引用”。(最后,您可以提到在Win32中,发送者在技术上是一个指针,但在其他环境中它不需要)。@ Jeroen:是的,我实际上是一个C++ Builder用户。我们与Delphi共享VCL(可视化组件库)。所以,发送者是我的指针。谢谢你提醒我翻译。事实上。。。即使这样也不是100%准确,因为如果你愿意,你几乎可以作为发送者传递任何东西。全局关注点是您应该使用它来发送对触发事件的类/对象的引用,但这本身不是一个要求。我并不是说传递任何其他内容都是一种好的做法,但我已经看到了错误假设的代码。这是一个糟糕的IMHO编码示例,但这是可能的。没有一个对象不是从
TObject
继承的。我想我表达错误了。只要是TObject,就可以在Sender参数中传递任何内容。
if Sender = Button1 then
// ...