界面布局设置如下
创建一个过程添加新项目
procedure TForm1.AddItem(name: string; age: Integer); var layout: TLayout; begin // 设置姓名标签的文本 Label3.Text := name; // 设置年龄标签的文本 Label4.Text := IntToStr(age); // 克隆 Layout1,并将克隆得到的对象赋值给 layout 变量 layout := TLayout(Layout1.Clone(VertScrollBox1)); // 设置布局控件的宽度为 VertScrollBox1 的宽度减去 32 layout.Width := VertScrollBox1.Width - 32; // 设置布局控件在垂直滚动框内的水平位置为 16 layout.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); begin Layout1.Visible := False; YY := 0; end;
按钮点击的时候添加新Item
procedure TForm1.Button1Click(Sender: TObject); begin VertScrollBox1.Content.DeleteChildren; YY := 12; for var i := 0 to 30 do begin AddItem('zhangsan-' + IntToStr(i), Random(100)); end; end;
运行在win用鼠标可以滚动,安卓可以用手上下滑动显示内容