界面布局设置如下
创建一个过程添加新项目
procedure TForm1.AddItem(name: string; age: Integer); varlayout: TLayout; begin// 设置姓名标签的文本Label3.Text := name;// 设置年龄标签的文本Label4.Text := IntToStr(age);// 克隆 Layout1,并将克隆得到的对象赋值给 layout 变量layout := TLayout(Layout1.Clone(VertScrollBox1));// 设置布局控件的宽度为 VertScrollBox1 的宽度减去 32layout.Width := VertScrollBox1.Width - 32;// 设置布局控件在垂直滚动框内的水平位置为 16layout.Position.X := 16;// 设置布局控件在垂直滚动框内的垂直位置为 YY(YY 是一个变量,代表当前布局控件的垂直位置)layout.Position.Y := YY;//重新设置下一个控件的纵向坐标YY := YY + layout.Height + 12;// 将布局控件设置为可见layout.Visible := True;// 将布局控件添加到垂直滚动框中VertScrollBox1.AddObject(layout); end;
新建窗体的时候设置下默认值
procedure TForm1.FormCreate(Sender: TObject); beginLayout1.Visible := False;YY := 0; end;
按钮点击的时候添加新Item
procedure TForm1.Button1Click(Sender: TObject); beginVertScrollBox1.Content.DeleteChildren;YY := 12;for var i := 0 to 30 dobeginAddItem('zhangsan-' + IntToStr(i), Random(100));end; end;
运行在win用鼠标可以滚动,安卓可以用手上下滑动显示内容