检索 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;
我想以编程方式检索 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;