捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >基础知识 > 正文
10 2025.11

Delphi使用TFlowPanel容器,实现对内含控件进行自动排版

点击次数:6 更新时间:2025/11/10 20:32:34  【打印此页

本文介绍了如何使用TFlowPanel和TscGPEdit控件实现动态布局,当新增或删除控件时自动调整。

同时,通过Tscrollbox和TRzFlowPanel解决滚动条问题,以及注意事项如窗口大小变化时的控件重排。

 

效果图:

 

需求:

  当用户新增或者删除控件时,后面的控件(如果有的话)自动后退或者前移。

 

实现:

  需要用的控件是TFlowPanel,临时演员是TscGPEdit。

  1、TFlowPanel设置好合适的对齐,其他基本上不用怎么设置,默认即可。

  2、设置TscGPEdit的 AlignWithMargins := true; // 启用控件的外边距功能,可以调整每个控件之间的间距。

 

 

  然后往下找到Margins属性,进行设置,设置好后,复制粘贴这个TscGPEdit任意次,然后就可以看到效果了

  

 

 

  3、设置业务代码

    因为TscGPEdit自带了一个RightButton功能与事件,所以业务代码我这里就直接写到里面去了

   

procedure TForm1.scGPEdit1RightButtonClick(Sender: TObject);
begin
  TscGPEdit(sender).Visible := False ;
end;

 

由于TFlowPanel中没有设置滚动条的相关属性。所以我们只好另辟溪径。再加一个tscrollbox来实现。

具体操作如下:

  1、先添加一个Tscrollbox,设置其align为alclient,autosize默认为false,不用改动。

  2、在其中添加一个tflowpanel,设置align为altop,autosize为true,autowrap为true。在这其中一定要将align设置为altop,如果设置为其它都不会有滚动条的。

 

  实际实验时,tflowpanel不起作用。而用trzflowpanel时,没问题。

  还有一点需要注意的是,当改变tflowpanel的大小时,其中的控件不能自动重排。需要重写根据情况定义下tflowpanel的宽度才行。

  如改变窗口大小时,在onresize中加上 flowpanel1.width := self.clientwidth;

提示
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:6 更新时间:2025/11/10 20:32:34  【打印此页
关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修