要使一个控件可以作为控件容器,其实只要使ControlStyle属性(集合类型)包含csAcceptsControls元素就可以了ControlStyle:= ControlStyle + [csAcceptsControls];
例如Delphi 5原来的状态栏控件不支持包含其他控件,改成下面的就可以了。需要扩展一下statusbar,加一个属性就行.分归我了.
//----------------------------------------------------------------------//
//扩展StatusBar
//加入特性:允许在状态条上加入任意控件
type
TMStatusBar=Class(TStatusBar)
private
protected
public
constructor Create(AOwner: TComponent); override;
published
end;
//TMStatusBar 事件扩展
constructor TMStatusBar.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
ControlStyle:= ControlStyle + [csAcceptsControls];
end;
**********************
仅仅利用Delphi自身的功能,不写任何代码,让一个控件可以容纳另外一个控件?
例如在一个Button里面包含另外一个Button?
答:查看和修改DFM文件即可!把另外一个Button的描述放在另外一个Button的定义里面就可以了!然后把窗体切换回来看看?:)。原创:ZsWang。
评论:这个方法简单可行!以前也直接修改过DFM文件,例如,在程序设计初期,对于窗体没有好好设计,后来加了一个Panel,需要把其他控件放到Panel里面,我就手工该过!当然你也可以利用C/P大法来修改。:),不过这样你了解得更多,可惜我没有把这个功能和题目要求联想起来。 :-(