Delphi中易混淆的概念

阿亞灬承

阿亞灬承

2016-01-29 14:02

Delphi中易混淆的概念,Delphi中易混淆的概念
 

一、Owner和Parent的区别:

  Parent属性是指构件的包容器,构件只能在此范围内显示和移动。举例子如下:
  (1)在Form1的窗体上,放一个Panel1,并将Panel1拉大,
  (2)在Panel1上放一Button1;
  (3)在Form1上放一Button2。
  现在如果移动Panel1,则Button1随着Panel1移动,这是因为Button1的Parent是Panel1。现在将Button2移到Panel1上,再次移动Panel1,Button2并不跟着移动,这是因为Button2的Parent是Form1。除在窗体设计中,应注意构件的Parent是谁外,在动态创建构件时,也应指出构件的Parent,如在上例中继续操作:
  1)Procedure Tform1.Button2click(Sender:Tobjet);
  2)Var
  3) Button:Tbutton;
  4) Begin
  5) Button:Tbutton.cerate(self);
  6) Button.parent=panel1;
  7) Button.lleft=0;
  8) Button.top=0;
  9) Button.caption:='OK';
  10) End;
  当按Button2时,将在Panel1上创建一个Button,而如果把第6句改为Button.parent:=self;按Button2时,将在Form1上创建一个Button了。如果将第6句删除,按Button2时,什么都不会发生,这是因为创建方法无法知道应在哪里显示构件。
  Owner属性是指构件的所有者,它负责构件的创建和释放。如在上例中,系统默认窗体上所有构件的所有者是窗体,而窗体的所有者是Application。顺便指出,create方法应带有表示构件所有者的参数,如在上例中,构件所有者是窗体,即self。
  Parent属性和Owner属性是运行阶段的属性,只能在运行阶段,通过代码设置。  


二、Self和Sender的区别:

  在事件处理程序参数表中,至少含有一个参数Sender,它代表触发事件处理程序的构件,如在上例中,Sender就指Button2,有了Sender参数,可以使多个构件共用相同的事件处理程序,如下例:
  Procedure Tform1.Buttonclick(Sender:Tobject);
  Begin
  If sender=button1 then
              Label1.caption:='看庭前花开花落 '
  Else Label2.caption:='望天上云卷云舒'
  End;
  在此例中,Button1,Button2共用了Buttonclick事件处理程序。
  Self是指所编的程序范围是在哪一个类中,Delphi中大都在窗体范围内编程,因此,self即指窗体,如果在编写一个类或是一个组件,则self指该类或组件。我们在函数或过程的声明中可看出self是代表哪个组件,即self代表‘.’号之前的组件,如在第一个例子中,self代表Tform1。另外应注意,self只能用在类方法中,而不能用在过程或函数中,如下例用法是错的:
Function a1(B:Integer):Integer;
  Begin
  ……
  Button:=tbutton.create(self);……
  End;  

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/delphi/)

三、Clientheight和Height,Clientwidth和Width的区别:

  对于一般的构件而言,Height就是Clientheight,Width就是Clientwidth,而对于窗体而言,Height是包括标题条在内的高度,而Clientheight是指窗体工作区的高度。同理,Clientwidth是指定窗体工作区的宽度。
  从上面陈述可知,理解Ower和Parent,Self和Sender,Clientheight和Height,Clientwidth和Width区别,对于Delphi中正确编程是重要的。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/delphi/) 
展开更多 50%)
分享

猜你喜欢

Delphi中易混淆的概念

Delphi
Delphi中易混淆的概念

XML数据库中几个容易混淆的概念

Web开发
XML数据库中几个容易混淆的概念

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SQL Server 中易混淆的数据类型

SQLServer
SQL Server 中易混淆的数据类型

XML数据库中几个容易混淆的概念2

Web开发
XML数据库中几个容易混淆的概念2

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

XML数据库中几个容易混淆的概念1

Web开发
XML数据库中几个容易混淆的概念1

基于Delphi的组件设计之概念

Delphi
基于Delphi的组件设计之概念

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

用Delphi4实现风Word97格的工具栏

用Delphi4实现风Word97格的工具栏

《勇者斗恶龙7》魔兽洞穴练级刷金史莱姆攻略

《勇者斗恶龙7》魔兽洞穴练级刷金史莱姆攻略
下拉加载更多内容 ↓