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

dejoy 2007-09-16 09:46:04
请问如何在一个窗体Form上放置两个控件,一个作为标题栏,一个作为内容放在假标题栏下(只能在下,不能和假标题栏重复)?
具体描述如下:
原来的窗体自带的标题栏不要,标题栏要用自己做的,Form作为一个弹出窗口(popup window)使用,取消标题栏功能已经实现了,用一个Panel来替代作为标题栏实现拖动功能也实现了,但在放置另一个控件(如Panel)到窗体上时如果使用Panel1.Top := 0 就会和假标题栏Panel重叠在一起(使用Align属性并重载AlignControls函数没问题),假标题栏用的是Align = alTop最上端对齐。
现在要达到的是:
假标题栏Panel能对齐到窗体的最上端,但其它放在窗体上的控件最高只能放到假标题栏下面,指使用XX.Top :=0的方法,而不是使用Align = alTop的方法。请教各位。
...全文
82 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dejoy 2007-09-27
  • 打赏
  • 举报
回复
楼上两位说的其实是同一种方法,我现在想到并实现的也是这种方法,其它方法实在是太复杂了,我搞了一个星期也搞不定,还是用这个偷懒的方法吧~~
hsmserver 2007-09-17
  • 打赏
  • 举报
回复
直接XX.Top :=假标题栏的高不就行了
do2008 2007-09-17
  • 打赏
  • 举报
回复
就我看来,有个另类的方式 --

1.你已经做好的:假标题栏用的是Align = alTop最上端对齐
2.再添加一个PanelClient,Align = alClient占满,Form的其它区域
3.
要达到这个目的
》但其它放在窗体上的控件最高只能放到假标题栏下面,指使用XX.Top :=0的方法

即把它放在窗体上的控件,全部弄到PanelClient上

嘿嘿,就是用Penel的布局特性
dejoy 2007-09-16
  • 打赏
  • 举报
回复
简单的来说,就是如何控制使放入一个容器(比如Panel)的控件最上面的位置,不能小于某一个值。能根据放入的不同的控件设置不同的上限制。而不管使用Align或使用SetBounds或直接设置Top=X的方法。

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧