我正在尝试以下列方式使用 TFlowPanel 组件:
- 放置在主窗体
Form1组件上FlowPanel1: TFlowPanel。 - 设置
Form1.Width = 400,FlowPanel1.Align = alTop,FlowPanel1.AutoSize = True,FlowPanel1.AutoWrap = True. - 放置在
FlowPanel15 个 SpeedButton 上并将其设置Width为 64。 - 编译并运行。
- 减小表格的宽度(关于
Form1.Width = 200)。
出于某种原因,当用户调整表单大小时,速度按钮不会自动排成两行。AutoSize = False虽然,当,时,它们确实排成两排AutoWrap = True。
这种行为的原因是什么以及如何解决?
编辑:我找到了“快速而肮脏”的解决方案。以下代码是事件的事件处理程序TFlowPanel.OnResize:
procedure TForm1.FlowPanel1Resize(Sender: TObject);
begin
with FlowPanel1 do
begin
AutoSize := False;
Realign; // line up controls
AutoSize := True; // adjust TFlowPanel.Height
end;
end;
但是,我仍然想知道是否有解决问题的标准方法。