请教一下,inherited和owner的用法.(100分)

  • 主题发起人 主题发起人 donglei216
  • 开始时间 开始时间
D

donglei216

Unregistered / Unconfirmed
GUEST, unregistred user!
我是初学者,看了帮助,但是有点迷糊,可能对面向对象的概念还不太理解.哪位能给我解释一下.看了几个程序,象下面这样的两个,还是不太明白:
procedure Tform1.FormShow(Sender: TObject);
begin
inherited;
..........
end;
//
Tform1(Tform2(owner).Owner)
 
inherited;一般在继承过程中使用,表示执行父类的过程。

owner是拥有值
 
inherited 用在方法覆盖时
构造函数中可以用来调用默认构造函数,
消息过程中可以用来调用默认消息处理

Owner是组件的拥有者,
被拥有的组件是这个组件的子组件,
拥有者(组件的主人)会负责释放它所拥有的组件
 
能具体些吗,最好举例来讲讲。
 
Inherited:
有一个类TSub继承了父类TBase,即TSub=class(TBase),这时他就继承了父类的属性和方法,最常见的
inherited出现在析构函数中。如:

destructor Destroy;override;
begin
//tsub类的析构
if FTest<>nil then FTest :=nil;
//继承父类
inherited;
end;
这里的inherited就相当于把父类的destroy析构函数再执行一遍,以释放父类中创建的资源。

owner:
你在form1中放一个button1(或随便一个控件),然后在button1中写如下代码:
showmessage(button1.Owner.Name);
就明白了
 
procedure Tform1.FormShow(Sender: TObject);
begin
inherited;
..........
end;
老兄有这样写的么/
 
to hygsxy:
呵呵,没有见过吧?
当工程中有一个窗体类是Tform1的类,那么就出现了楼上的情况了。
inherited表示调用父类的方法,如果不想调用父类的方法,去掉就行了。
owner是对象的所有者,当程序结束时或者owner关闭时负责释放该对象的资源。
 
我也没有见过,Highpeak,这种方法
除非你的TForm1不是从TForm继承过来的,
使用了窗体继承,
否则,这样恐怕编译通不过的
 
接受答案了.
 
后退
顶部