检索 FLowLayout 中的中断数

Retrieving the number of breaks in a FLowLayout

我想以编程方式检索 TFlowLayout 中 breaks/newlines 的数量。

我有一个简单的 TFlowLayout,里面有 4 个常规控件(TFlowLayout 不包含任何 TFlowLayoutBreak 控件)。

根据布局的宽度,它看起来像:

// * = control

// Scenario #1: No breaks
* * * *

// Scenario #2: 1 break
* * * 
*

// Scenario #3: 2 breaks
* * 
* * 

// Scenario #4: 3 breaks
*
*
*
*

是否可以通过编程方式检索 TFlowLayout 的中断数,或者我是否可以仅关闭布局的宽度以确定中断数?

计算控件 Y 值的变化看起来可行,因为数组是按布局顺序排列的。

procedure TForm1.Button1Click(Sender: TObject);
var
  Cnt, I : integer;
begin
  if FlowLayout1.ControlsCount = 0 then Cnt := 0 else Cnt := 1;
  for I := 1 to FlowLayout1.ControlsCount - 1 do
    if FlowLayout1.Controls[I-1].Position.Y <> FlowLayout1.Controls[I].Position.Y then inc(cnt);
  button1.Text := IntToStr(Cnt);
end;