Delphi中Owner和Parent的区别
Owner为创建者,Parent为容器 他们的类型不同,Owner为TComponent(元件),Parent为TWinControl(窗体控件)
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属性是运行阶段的属性,只能在运行阶段,通过代码设置。
Owner为创建者,Parent为容器 他们的类型不同,
Owner为TComponent(元件),Parent为TWinControl(窗体控件)
Delphi中Owner和Parent的区别的更多相关文章
- PHP中this,self,parent的区别
{一}PHP中this,self,parent的区别之一this篇 面向对象编程(OOP,Object OrientedProgramming)现已经成为编程人员的一项基本技能.利用OOP的思想进行P ...
- 转: PHP中this,self,parent的区别
{一}PHP中this,self,parent的区别之一this篇 面向对象编程(OOP,Object OrientedProgramming)现已经成为编程人员的一项基本技能.利用OOP的思想进行P ...
- Delphi的Owner与Parent可以不一致,而且Owner不是必须存在(一共7个问题) good
问题1:Owner与Parent不一致:新建一个Form,上面放一个Button1,一个Panel1,然后在Panel1上再放一个Button2,测试结果:procedure TForm1.Butto ...
- Delphi中Self和Sender的区别
在事件处理程序参数表中,至少含有一个参数Sender,它代表触发事件处理程序的构件,如在上例中,Sender就指Button2,有了Sender参数,可以使多个构件共用相同的事件处理程序,如下例: ...
- 教程-关于Owner和Parent的区别
Parent属性是指构件的包容器,构件只能在此范围内显示和移动 Owner属性是指构件的所有者,它负责构件的创建和释放.
- delphi中WebBrowser的parent改变时变成空白问题的解决(覆盖CreateWnd和DestroyWnd)
这段时间在做一个delphi界面打开网页的功能,且此网页所在窗口可完整显示,可缩小到另一个窗口的panel上显示 可是在改变网页所在窗口时,WebBrowser控件变成了空白 上网google了半天, ...
- Delphi中nil和null的区别
nil:空指针,空地址,对象也是指针,可以object := nil;null:是一个未定义值的变量,既不是0也不代表空字符串,它是未定义的.
- 转 PHP编程过程中需要了解的this,self,parent的区别
{一}PHP中this,self,parent的区别之一this篇 面向对象编程(OOP,Object Oriented Programming)现已经成为编程人员的一项基本技能.利用OOP的思想进行 ...
- 关于 Delphi 中的Sender和易混淆的概念(转)
/////////////////////////////////////////////////////// Delphi 中Sender对象的定义///////////////////////// ...
随机推荐
- leetcode 344. Reverse String 、541. Reverse String II 、796. Rotate String
344. Reverse String 最基础的旋转字符串 class Solution { public: void reverseString(vector<char>& s) ...
- Java中class的getName()和getCanonicalName()两个方法的区别
getName()返回的是虚拟机里面的class的表示 getCanonicalName()返回的是更容易理解的表示 对于普通类来说,二者没什么区别,只是对于特殊的类型上有点表示差异 比如byte[] ...
- zabbix使用percona的mysql监控模板监控
安装第三方插件仓库源: [root@iZ9j3yrx43sb5sZ ~]# yum install https://www.percona.com/redir/downloads/percona-re ...
- bzoj-1787-洛谷-4281(LCA板子题)
传送门(bzoj) 传送门(洛谷) 可以说这道也是一个板子题 由于题中是三个人需经过的路径最短 就会有一点点不太一样 那么 就两两求LCA 这样之后就会出现两种状况 一.所得到的三个LCA是相等的 那 ...
- Floyed
1.定义 可解任意两点间的最短路径 可判有向图或负权的最短路径问题,也可用于计算有向图的传递闭包 2.算法描述 简单点说,就是暴力遍历 时间复杂度O(n^3) 下面是简简单单的代码: #include ...
- OpenCV3编程入门笔记(一)
---恢复内容开始--- 图像处理技术一般包括图像压缩,增强和复原,匹配.描述和识别3个部分.图像处理和计算机视觉的区别在于:图像处理侧重于“处理”图像——如增强.还原.去噪.分割等:而计算机视觉重点 ...
- Objective-C Programming The Big Nerd Ranch Guide 笔记 19-37
Properties are either atomic or nonatomic, The difference has to do with multithreading. atomic is t ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(92)-打印EasyUI 的datagrid表格
前言 应用系统有时候需要打印Datagrid的表格内容,我们本节就来学习打印datagrid内容 打印主要使用:web打印(我们之前有讲过web打印插件jqprint) + 将datagrid重新编制 ...
- CSS 伪类 (Pseudo-classes)实例
CSS 伪类 (Pseudo-classes)实例CSS 伪类用于向某些选择器添加特殊的效果在支持 CSS 的浏览器中,链接的不同状态都可以不同的方式显示,这些状态包括:活动状态,已被访问状态,未被访 ...
- Eclipse新建Maven工程——git篇
1.eclipse,新建一个maven工程,步骤如下图: 右键新建的工程 发布前后工程对比如下: 2.发布为本地仓库 因为项目中,不是所有的文件,都需要提交到githut上,所以需要把不需要提交的问题 ...