首页  编辑  

控件可以容纳其他控件

要使一个控件可以作为控件容器,其实只要使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大法来修改。:),不过这样你了解得更多,可惜我没有把这个功能和题目要求联想起来。 :-(