效果图:
需求:
当用户新增或者删除控件时,后面的控件(如果有的话)自动后退或者前移
实现:
需要用的控件是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;
标签:控件,TFlowPanel,delphi,tflowpanel,TscGPEdit,设置,true From: https://www.cnblogs.com/yoooos/p/17175376.html