控件的Owner属性的问题 ( 积分: 16 )

  • 主题发起人 主题发起人 autra
  • 开始时间 开始时间
A

autra

Unregistered / Unconfirmed
GUEST, unregistred user!
最近尝试写一个简单的控件,控件放在form上一切正常,但是放到panel上就会出错,打开dfm一看,发现并没有真正把控件放到panel上去。
我贴出部分代码,请高手指点迷津。
TMSelComb = class(TWinControl)
private
{ Private declarations }
BtnEdit:TRzBtnEdit ;
FListFm:TForm ; //the form to contain the List
CKList: TRzCheckList;
..
end
constructor TMSelComb.Create(AOwner:TComponent) ;
begin
inherited Create(AOwner);
self.parent := TWinControl(AOwner);
btnEdit := TRzButtonEdit.Create(Self) ;
btnEdit.parent := self ;
FListFm := TForm.Create(Self);
FListFm.Visible := false ;
CKList := TRzCheckList.Create(FListFm);
CKList.Parent := FListFm ;
....
end ;
就这个部分有问题,请高手帮帮忙啊。
 
最近尝试写一个简单的控件,控件放在form上一切正常,但是放到panel上就会出错,打开dfm一看,发现并没有真正把控件放到panel上去。
我贴出部分代码,请高手指点迷津。
TMSelComb = class(TWinControl)
private
{ Private declarations }
BtnEdit:TRzBtnEdit ;
FListFm:TForm ; //the form to contain the List
CKList: TRzCheckList;
..
end
constructor TMSelComb.Create(AOwner:TComponent) ;
begin
inherited Create(AOwner);
self.parent := TWinControl(AOwner);
btnEdit := TRzButtonEdit.Create(Self) ;
btnEdit.parent := self ;
FListFm := TForm.Create(Self);
FListFm.Visible := false ;
CKList := TRzCheckList.Create(FListFm);
CKList.Parent := FListFm ;
....
end ;
就这个部分有问题,请高手帮帮忙啊。
 
要放在Panel上,你必须用代码创建对象。而不能直接拖上去的。
 
不会吧,我是说,有一个panel 已经放在form上了,我现在要把握的控件放在panel上而不是放在form 上,parent属性设为panel ,但是在使用create(Aowner)的时候,Aowner是form,我如何才能得到这个panel?
 
self.parent := TWinControl(AOwner);//这个不要
 
同意 wk_knife 的看法,楼主可以多看看 Delphi 的源码。
 
多人接受答案了。
 
后退
顶部