Delphi中Self和Sender的区别
创始人
2024-07-29 14:30:28
0

在事件处理程序参数表中,至少含有一个参数Sender,它代表触发事件处理程序的构件,如在上例中,Sender就指Button2,有了Sender参数,可以使多个构件共用相同的事件处理程序,如下例:

  1. Procedure Tform1.Buttonclick(Sender:Tobject);   
  2.   Begin   
  3.   If sender=button1 then   
  4.   Label1.caption:=′看庭前花开花落   
  5. ′   Else Label2.caption:=′望天上云卷云舒′   
  6.   End;  

 

在此例中,Button1,Button2共用了Buttonclick事件处理程序。

Self是指所编的程序范围是在哪一个类中,Delphi中大都在窗体范围内编程。

因此,self即指窗体,如果在编写一个类或是一个组件,则self指该类或组件。

我们在函数或过程的声明中可看出self是代表哪个组件,即self代表‘.’号之前的组件,如在***个例子中,self代表Tform1。

另外应注意,self只能用在类方法中,而不能用在过程或函数中,如下例用法是错的:

  1. Function a1(B:Integer):Integer;   
  2.   Begin   
  3.   ……   
  4.   Button:=tbutton.create(self);……   
  5.   End; 

Clientheight和Height,Clientwidth和Width的区别:

对于一般的构件而言,Height就是Clientheight,Width就是Clientwidth,而对于窗体而言,Height是包括标题条在内的高度,而Clientheight是指窗体工作区的高度。同理,Clientwidth是指定窗体工作区的宽度。

从上面陈述可知,理解Ower和Parent,Self和Sender,Clientheight和Height,Clientwidth和Width区别,对于Delphi中正确编程是重要的。

【编辑推荐】

  1. 亲身实践讲述SEO赚钱门路
  2. Delphi编程实现QQ聊天窗口的修改
  3. Delphi如何清空日志文件
  4. 如何在Delphi中自动录入数据
  5. 基于Delphi的屏幕抓图技术的实现
  6. Delphi与C#之父:技术理想架构开发传奇

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...