Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2350431
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:00:27

按照BCB帮助的解释,构造函数里面的 Owner 的作用:
控件分配内存和装入属性都依赖 Owner, 当 Owner (通常都是form) 装入属性或者分配、释放内存时,
控件也随着装入属性、分配、释放内存。

上面说的是可视化编程自动实现的,如果你自己动态定义控件,一般也需要用this作为Owner参数。
但是还要注意 Parent 属性,Parent 是把控件放在哪个“容器”里,
容器指 Form、Panel、GroupBox等可以容纳控件的控件。

如果你正在运行的程序中,给 Parent 属性重新赋值,会看到控件从一个容器跑进另一个容器里,
可以实现把控件从 Panel1 里面拿出,放进 Panel2 里。

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
  Edit1 = new TEdit(this);
  PgsBar = new TProgressBar(this);

  Edit1->Parent = this; //把控件放在form上,在这里this就是form
  PgsBar->Parent = Panel1; //把控件放在Panel1里,让Panel1作为PgsBar的容器
}
//---------------------------------------------------------------------------
__fastcall TForm1::~TForm1()
{
  delete PgsBar; //释放你自己定义的控件的内存
  delete Edit1; //释放你自己定义的控件的内存
}
//---------------------------------------------------------------------------

--------------------next---------------------

阅读(1104) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~