请问如何在一个窗体Form上放置两个控件,一个作为标题栏,一个作为内容放在假标题栏下(只能在下,不能和假标题栏重叠)? ( 积分: 100 )

  • 主题发起人 主题发起人 dejoy
  • 开始时间 开始时间
D

dejoy

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何在一个窗体Form上放置两个控件,一个作为标题栏,一个作为内容放在假标题栏下(只能在下,不能和假标题栏重叠)?
具体描述如下:
原来的窗体自带的标题栏不要,标题栏要用自己做的,Form作为一个弹出窗口(popup window)使用,取消标题栏功能已经实现了,用一个Panel来替代作为标题栏实现拖动功能也实现了,但在放置另一个控件(如Panel)到窗体上时如果使用Panel1.Top := 0 就会和假标题栏Panel重叠在一起(使用Align属性并重载AlignControls函数没问题),假标题栏用的是Align = alTop最上端对齐。
现在要达到的是:
假标题栏Panel能对齐到窗体的最上端,但其它放在窗体上的控件最高只能放到假标题栏下面,指使用XX.Top :=0的方法,而不是使用Align = alTop的方法。
简单的来说,就是如何控制使放入一个容器(比如Panel)的控件最上面的位置,不能小于某一个值。能根据放入的不同的控件设置不同的上限制。而不管使用Align或使用SetBounds或直接设置Top=X的方法。
请教各位。
 
正常的情况下是不能做到你说的要求的,
不过有一个方法可以达成你想要的结果, 那就是在NCPaint事件中去针对标题栏画出你想要的标题(正常情况下无法重绘标题栏),而其它的控件就可以如原来的使用或设置方式去使用了。
 
经过尝试多种方法,证明在正常情况下是不能完成的,最后采用了放置两个panel,上面的一个设置align=altop,下面的align=clclient的笨方法来解决了
 
接受答案了.
 

Similar threads

D
回复
0
查看
825
DelphiTeacher的专栏
D
D
回复
0
查看
831
DelphiTeacher的专栏
D
D
回复
0
查看
664
DelphiTeacher的专栏
D
后退
顶部