突然发现个问题,一直都常见的XXXX(Sender : Tobject),Sender是什么意思还没搞清楚。 试试这个就明白了:procedure TForm1.Button1Click(Sender: TObject);begin Form1.Caption:= Sender.ClassName;end; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Sender是触发这个事件的对象你看看Vcl的源代码就知道了比如: if Assigned(FOnClick) then FOnClick(Self);这里的Self就是对象自己。 需要从他的内部实现来:内部有一个(其实是由TControl实现的) FOnClick: TNotifyEvent; //只一个是函数的指针又有 TNotifyEvent = procedure(Sender: TObject) of object;真正的调用有类似下面的方法,当接受到鼠标点击的消息时有类似以下的处理:if Assigned(FOnClick) then FOnClick(self); //传递的参数是控件自身的对象指针 就是当前触发事件对象的地址值procedure TForm1.Button1Click(Sender: TObject);begin ShowMessage(IntToStr(Integer(Button1))); ShowMessage(IntToStr(Integer(Sender)));end;procedure TForm1.Form1Click(Sender: TObject);begin ShowMessage(IntToStr(Integer(Form1))); ShowMessage(IntToStr(Integer(Sender)));end;显示信息都相同,看出点意识出来了吧 如何让TreeView根据目录和文件名各显示不同图标 如何解决Excel文件中的复制图像,粘贴到Delphi的Image控件中 请问高手同志们:DbGrid或DbGridEh中!有无办法实现零值不显示(即显示为空白)?急!急!急! ★★★★★★★★写通用查询模块时碰到的两个问题★★★★★★★★★★ 钩子问题 我想做个密码验证,可不知道该如何做,高手帮忙!有代码 vb版的版主都是煞笔,同意的UP 怎样用delphi写自动创建odbc的程序 如何做先是登陆窗体后主窗体 数据源问题? copyfile支持win2000吗? 请教:怎样在DELPHI中插入FLASH动画图片??
你看看Vcl的源代码就知道了
比如:
if Assigned(FOnClick) then
FOnClick(Self);
这里的Self就是对象自己。
需要从他的内部实现来:内部有一个(其实是由TControl实现的) FOnClick: TNotifyEvent; //只一个是函数的指针又有 TNotifyEvent = procedure(Sender: TObject) of object;
真正的调用有类似下面的方法,当接受到鼠标点击的消息时有类似以下的处理:if Assigned(FOnClick) then FOnClick(self); //传递的参数是控件自身的对象指针
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(IntToStr(Integer(Button1)));
ShowMessage(IntToStr(Integer(Sender)));
end;
procedure TForm1.Form1Click(Sender: TObject);
begin
ShowMessage(IntToStr(Integer(Form1)));
ShowMessage(IntToStr(Integer(Sender)));
end;
显示信息都相同,看出点意识出来了吧