郁闷:子类化的TComboBox在Destroy的时候不能访问Items.Count(50分)

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

Beast

Unregistered / Unconfirmed
GUEST, unregistred user!
我的组件继承自TComboBox,不添加任何代码,Override了Destroy方法,代码如下
begin
if Self.Items.Count>0 then …………
end;

只要访问Items的Count就会出错,说空间的parent是空。Faint~~~
各位看看.
 
你必须要Override构造函数的。
 
没有道理呀,再说即使我Override了构造函数,那么仅仅Override就可以了?被覆盖的构造函数中写些什么呢?
而且我也试过覆盖构造函数了,跟这个应该没有关系
 
type
TComboBox1 = class(TComboBox)
private
{ Private declarations }
protected
{ Protected declarations }
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
end;

procedure Register;

implementation

constructor TComboBox1.Create(AOwner: TComponent);
begin
inherited Create(AOwner);//
end;

destructor TComboBox1.Destroy;
var
i:integer;
begin
if Self.Items.Count>0 then i:=i+1;
inherited ;
end;

procedure Register;
begin
RegisterComponents('私人控件', [TComboBox1]);
end;

end.

已经测试过,没有问题。
 
哦?会不会因为我写的时候…………
constructor TComboBox1.Create(AOwner: TComponent);
begin
inherited Create(AOwner);//您的代码
inherited;//我的代码
end;
因为是没有将AOwner显示传递给父类造成的。

Faint!
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
705
import
I
后退
顶部