关于owner和parent

zhenyu362 2005-04-18 04:28:15
owner和parent他们之间的联系和区别,以及他们的用途,大家帮我讲解一下,分不够可以再加
...全文
175 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwyyxx26 2010-06-06
  • 打赏
  • 举报
回复
记一个号
icwin 2005-04-20
  • 打赏
  • 举报
回复
up
constantine 2005-04-19
  • 打赏
  • 举报
回复
Self 在bcb里相当于this
constantine 2005-04-19
  • 打赏
  • 举报
回复
Sender--意义:指本对象。Sender在什么对象相关代码里,那么Sender就是什么。
Self--意义:指本类,也就是Self被引用的类。比如若在类TMyClass内引用了Self,那么Self=TMyClass.
Owner--意义:哪个对象释放我的内存啊?

如:Pan:=TPanel.Create(Self);其中Create的参数是:AOwner:TComponent。Owner释放Pan的内存。因为窗口释放Pan的内存,但窗口类的对象是Self.一般给Owner传Self就可以。
比如:
代码段一:
pan:=TPanel.Create(Self);
with Pan do begin
try
Left:=20;
Top:=20;
parent:=Self; //Parent:=Form1也可以。
Visible:=true;
ShowMessage('Created');
finally
Pan.free;
end;
end;
-----------------------------------------------------
Parent--
意义:此对象包括在哪个对象里那?
说明:若组件不是从TControl继承来的,那么在创建组件后不必声明此属性。
zhenyu362 2005-04-19
  • 打赏
  • 举报
回复
假如我现在有一个窗体A,A上面有一个按钮B,同时还有一个窗体C,如何把C变得像B一样,融入到A上面去?~~~~~~~~把c放到一个frame里面去~~~~就能放上去了
不是设计时实现,我希望能在运行时实现。

而 if B'parent is A,A关闭的时候并不会影响 B,是不是这样?~~~~~~不是这样的,A会管理B的资源的。假如他们不属于同一个进程呢?
NetSpider9804040 2005-04-19
  • 打赏
  • 举报
回复
受益非浅!
zhenyu362 2005-04-19
  • 打赏
  • 举报
回复
感谢热情的安吉尔,
Parent--
意义:此对象包括在哪个对象里那?(这个包括是不是控件位置意义上的包括?)
3996906 2005-04-18
  • 打赏
  • 举报
回复
不是很贴切,将就着理解吧

Owner是实参~~~~~~~是个实例,指某个控件的parent

parent是rtti用到的,是系统管理的时候用的,总的来说

parent形象化一点,Owner要到一个具体的实例,不要拘泥在这个地方

而 if B'parent is A,A关闭的时候并不会影响 B,是不是这样?~~~~~~不是这样的,A会管理B的资源的

假如我现在有一个窗体A,A上面有一个按钮B,同时还有一个窗体C,如何把C变得像B一样,融入到A上面去?~~~~~~~~把c放到一个frame里面去~~~~就能放上去了
zhenyu362 2005-04-18
  • 打赏
  • 举报
回复
改变一个窗口的Parent可以用SetParent()这个API,但是如何更改一个窗口的Owner呢?
if B'owner is A,那么当A窗口被关闭的话B也会被销毁,对不?
而 if B'parent is A,A关闭的时候并不会影响 B,是不是这样?
假如我现在有一个窗体A,A上面有一个按钮B,同时还有一个窗体C,如何把C变得像B一样,融入到A上面去?
happyct 2005-04-18
  • 打赏
  • 举报
回复
parent相当与“容器”,没有其它关系,只是用来乘放的

owner表明某某用有某某


TComponent::Owner
Indicates the component that is responsible for streaming and freeing this component.
晨星 2005-04-18
  • 打赏
  • 举报
回复
owner应该是有用这个窗口的窗口,比如从一个窗口跳出一个对话框,可以设定对话框的owner就是原来的那个窗口,这样,对话框的位置坐标就是相对于它的那个owner而言的。
而parent应该是它所在的父控件,比如一个按钮位于某个对话框上,按钮的parent就是那个对话框。

不知道偶说的对不对。:P

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧