大家遇到过这种问题没有?(30分)

  • 主题发起人 主题发起人 BeginDelphi
  • 开始时间 开始时间
B

BeginDelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
我新建了一个控件,想在控件中创建时自动完成一些设置。
但我重载了CREATE过程以后,
constructor Create(AOwner:TCOmponent);
begin
inherited;
...但Parent为空,我要用到Parent怎么办?
end;

用AfterConstructor过程也是一样的。怎么办呢?
 
constructor Create(AOwner:TCOmponent);
begin
inherited;
...
Parent := self;
...
end;
 
呵呵!我不是要简单的PARENT有定义,我是要得到PARENT。
因为下面我用到了PARENT的HANDLE和别的一些东西。
 
重载SetParentWindow方法,把涉及到Parent的初始化工作放到里面.
 
self.Parent不就是表示此控件的Parent吗?
 
to LeeChange
呵呵!谢谢你的回答,让我茅塞顿开。

但还有一个问题,如果不是Parent,是别的呢?比如自定义的一个Property,在Create
的时候也是空的,怎么办?
 
有一个方法可以重载的:
procedure loaded; override;
在这里写就OK了。帮助里写得很明白:
When the streaming system loads a form or data module from its form file,
it first constructs the form component by calling its constructor, then
reads its property values from the form file. After reading all the
property values for all the components, the streaming system calls the
Loaded methods of each component in the order the components were created.
This gives the components a chance to initialize any data that depends on
the values of other components or other parts of itself.
 
呵呵!谢谢大家的支持与参与。
我很感谢。
 
后退
顶部