delphi如何加上spliter分割条,任意调整大小
2016-02-05 23:02
447 查看
如题1:如何把一个panel分割成四个小的panle
2:也就是如何加上spliter,分割条,任意调整大小
3、如何有独立的handle使用多个总共5个为什么呢,你放4个panel 然后放spliter,不行吗??
放5个不够,1、先在窗体放一个大的,作为容器,如果直接使用窗体,这个可以省。
2、在大PENEL上放两个PANEL,一个SPLITER,其中一个align 设为 left (假如名为PanelLeft), 一个设置为Client(名为PanelRight), splier设为left(名为Spliter2)
3、在PanelLeft中再放两个Panel, 一个Spliter, 一个Align 设为 Top(假设名为PanelLeftTop), 另一个设为Client(PanelLeftBottom), Spliter设为Top)
4、在PanelRight照第三步 (Panel名分别为PanelRightTop,PanelRightBottom, Spliert3)
5、在Spliter2中 OnMove中设置 PanelRightTop.Height := panelLeftTop.Height,在Spliter3中OnMove中设置PanelLeftTop.Height := PanelRightTop.Height , 实现横向移动时联动。楼上的,问题解决,如果是很多小窗口,如何去做,如果按这种思路去做就很麻烦了,谢谢..没人关注哦..........使用4个panel 和3个apliter,3个panel属性align为ClLeft,剩下的为ClClient四个小窗口问题按levi的方法已解决了!如果是很多个小窗口,这种方法就显的很笨拙了,有没有好的方法,像拿铅笔划分窗口那样简单的思路?好像不能象VC那样设计,只能用这种方法 ,不影响视觉啊。
Delphi窗口分割并动态调节其大小
在Delphi编程中实现窗口分割的关键是:
使用Delphi的一个TSplitter组件(在Additional页中)。假设要把窗口分成左、右两部分,并且在运行中可以动态调节其相对大小,做法如下:
1.在一个空白的Form中加入Panel1,Align设为alLeft。(也可根据实际情况设为alRight,alBottom或alTop)。
2.在Form1的空白处加入一个Splitter,可以看到它自动处于紧贴Panel1的位置,它的Align属性的缺省值也是alLeft。如果Panel1的Align为alTop,Splitter也应设为alTop,依此类推。
3.加入Panel2,Align设为alClient。在这里,必须有一个Panel为alClient。运行,把鼠标停在两个Panel之间,当光标改变成双向箭头形状时拖动它。是不是很好用啊 呵呵 而且代码都不用自己来写就可以实现。
2:也就是如何加上spliter,分割条,任意调整大小
3、如何有独立的handle使用多个总共5个为什么呢,你放4个panel 然后放spliter,不行吗??
放5个不够,1、先在窗体放一个大的,作为容器,如果直接使用窗体,这个可以省。
2、在大PENEL上放两个PANEL,一个SPLITER,其中一个align 设为 left (假如名为PanelLeft), 一个设置为Client(名为PanelRight), splier设为left(名为Spliter2)
3、在PanelLeft中再放两个Panel, 一个Spliter, 一个Align 设为 Top(假设名为PanelLeftTop), 另一个设为Client(PanelLeftBottom), Spliter设为Top)
4、在PanelRight照第三步 (Panel名分别为PanelRightTop,PanelRightBottom, Spliert3)
5、在Spliter2中 OnMove中设置 PanelRightTop.Height := panelLeftTop.Height,在Spliter3中OnMove中设置PanelLeftTop.Height := PanelRightTop.Height , 实现横向移动时联动。楼上的,问题解决,如果是很多小窗口,如何去做,如果按这种思路去做就很麻烦了,谢谢..没人关注哦..........使用4个panel 和3个apliter,3个panel属性align为ClLeft,剩下的为ClClient四个小窗口问题按levi的方法已解决了!如果是很多个小窗口,这种方法就显的很笨拙了,有没有好的方法,像拿铅笔划分窗口那样简单的思路?好像不能象VC那样设计,只能用这种方法 ,不影响视觉啊。
Delphi窗口分割并动态调节其大小
在Delphi编程中实现窗口分割的关键是:
使用Delphi的一个TSplitter组件(在Additional页中)。假设要把窗口分成左、右两部分,并且在运行中可以动态调节其相对大小,做法如下:
1.在一个空白的Form中加入Panel1,Align设为alLeft。(也可根据实际情况设为alRight,alBottom或alTop)。
2.在Form1的空白处加入一个Splitter,可以看到它自动处于紧贴Panel1的位置,它的Align属性的缺省值也是alLeft。如果Panel1的Align为alTop,Splitter也应设为alTop,依此类推。
3.加入Panel2,Align设为alClient。在这里,必须有一个Panel为alClient。运行,把鼠标停在两个Panel之间,当光标改变成双向箭头形状时拖动它。是不是很好用啊 呵呵 而且代码都不用自己来写就可以实现。
Delphi实现容器分隔 随着Windows95的流行,分隔器控件已成为操作系统的常用部件,它将容器(通常为 窗体或面板)的客户区域分为可调整大小的若干部分,称为窗格。我们最常见到的例子就是 Windows95的资源管理器,它使用了一个分隔器控件(也就是在资源管理器中可以用鼠标左 右拖动的竖条)将目录树视图和文件表视图分隔开,可以由用户任意调整。Delphi提供了一 个分隔器控件TSplitter来实现这种功能,下面以制作一个简单的资源管理器为例来介绍设 计步骤: 1.从Standard 标记页中选择容器Panel控件,将其放入Form1中,命名为Panel1,并 将其Align属性设置为alClient。 2.从Win3.1标记页中选择DirectoryListBox控件,将其放入容器Panel1中,命名为 DirectoryListBox1,置Align属性为alLeft,并调整其初始宽度。 3.从Additional标记页中选择Splitter控件,放入容器Panel1中,置Align属性为alLeft, Width属性为5。 4.再从Win3.1标记页中选取FileListBox控件放入Panel1中,命名为FileListBox1,置 Align属性为alClient。 5.最后,将DirectoryListBox1的FileList属性置为FileListBox1。 现在,按F9运行程序,便会出现一个简单的资源管理器,设计出的窗体具有随意调 整窗格大小的能力。在Delphi中实现容器分隔非常简单,甚至一句程序代码也不用写。要 注意的是,封装了分隔器控件的TSplitter只有在Delphi 3 以上才有,Delphi 2 以下必须编 写一段程序代码才能实现此功能。 (江苏 韩世伟) http://blog.csdn.net/sushengmiyan/article/details/7404797[/code]
相关文章推荐
- delphi高手突破学习笔记之面向对象类和对象的本质(有汇编解释 good)
- delphi模态窗体最小化会隐藏的问题
- 终于懂了:Delphi消息的Result完全是生造出来的,不是Windows消息自带的(Delphi对Windows编程体系的改造越大,学习收获就越大)
- 终于懂了:Delphi重定义消息结构随心所欲,只需要前4个字节是消息编号就行了,跟Windows消息虽然尽量保持一致,但其实相互没有特别大的关系。有了这个,就有了主动,带不带句柄完全看需要。
- WM_PAINT在微软官方定义中,wParam和lParam都没有使用,所以就被Delphi给重定义了这个消息,还增加了DC(Delphi可任意改写消息的结构,只需要保持前4个字节是消息即可,另外要携带微软定义的所有必要信息就行了)
- WM_PAINT中应该用BeginPaint与EndPaint这两个api,它们的功能正是使无效区域恢复(所以WM_PAINT里即使什么都不做,也必须写上BeginPaint与EndPaint)——Delphi里WM_PAINT消息的三个走向都做到了这一点
- Delphi和C++数据类型对照表
- Delphi中如何获得光标
- 利用Delphi编写Socket通信程序
- (delphi)DbgridEh排序
- ListView 百分比进度条(delphi版)
- Delphi的RTTI还分为对类和对象的判断,以及对普通属性的判断——相比之下,C++的RTTI实在太弱!
- 终于懂了:TWinControl主要是Delphi官方用来封装Windows的官方控件,开发者还是应该是有TCustomControl来开发三方控件
- C++能在三个地方创造对象,而Delphi只有一个地方
- delphi 怎么获取工程版本号
- Delphi 10 Seattle不支持intel atom?
- 不是什么时候都可以用栈来声明对象并使用(自动释放)——Delphi里到处都是编译器魔法,并且自动帮助实例化界面元素指针
- Delphi XE7下如何创建一个Android模拟器调试
- DelphiXE Android的所有权限按照分类总结说明
- DelphiXE8怎么使用调试模式(朱建强)