首页 > 其他分享 >使用 TListbox 自定义列表数据(界面显示)

使用 TListbox 自定义列表数据(界面显示)

时间:2024-01-14 21:34:30浏览次数:30  
标签:Layout1 layout 自定义 ListBox1 Padding item TListbox end 界面显示

界面设计如下

启动时默认值

procedure TForm1.FormCreate(Sender: TObject);
begin
  //启动时隐藏模板
  Layout1.Visible := False;
  //开启隔行变色
  ListBox1.AlternatingRowBackground := True;
end;

Listbox添加Item代码如下

procedure TForm1.AddItem(name: string; age: Integer; img: string);
var
  layout: TLayout;
  item: TListBoxItem;
begin
  //设置Label3和Label4标签的文本
  Label3.Text := name;
  Label4.Text := IntToStr(age);

  //创建一个新的ListBoxItem
  item := TListBoxItem.Create(ListBox1);
  //设置ListBoxItem的宽度与高度
  item.Width := ListBox1.Width;
  item.Height := Layout1.Height + 12;
  item.Selectable := False;

  //复制Layout1控件,并将其与item关联
  layout := TLayout(Layout1.Clone(item));
  layout.Align := TAlignLayout.Client;
  layout.Visible := True;

  //如果图片存在,则加载图片
  if FileExists(img) then
    ImageControl1.Bitmap.LoadFromFile(img);

  //设置ListBoxItem的边距
  item.Padding.Left := 5;
  item.Padding.Top := 5;
  item.Padding.Bottom := 5;
  item.Padding.Right := 5;

  //将layout添加到item中,并将item添加到ListBox1中
  item.AddObject(layout);
  ListBox1.AddObject(item);
end;

添加项目

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox1.Items.Clear;
  for var i := 0 to 20 do
  begin
    AddItem('zhangsan-' + IntToStr(i), Random(100), 'D:\People\' + IntToStr(Random(9) + 1) + '.png');
  end;
end;

完成后界面如下

 

标签:Layout1,layout,自定义,ListBox1,Padding,item,TListbox,end,界面显示
From: https://www.cnblogs.com/liessay/p/17964228

相关文章

  • 使用TVertScrollbox自定义列表数据
    界面布局设置如下创建一个过程添加新项目procedureTForm1.AddItem(name:string;age:Integer);varlayout:TLayout;begin//设置姓名标签的文本Label3.Text:=name;//设置年龄标签的文本Label4.Text:=IntToStr(age);//克隆Layout1,并将克隆得到......
  • SparkSQL 自定义聚合函数[强类型]
    本文的前提条件:SparkSQLinJava参考地址:UserDefinedAggregateFunctions(UDAFs)1.自定义实体类packagecn.coreqi.entity;importjava.io.Serializable;publicclassAverageimplementsSerializable{privatelongtotal;privatelongcount;publi......
  • SparkSQL 自定义聚合函数[弱类型]
    本文的前提条件:SparkSQLinJava代码如下1.自定义聚合函数packagecn.coreqi.udaf;importorg.apache.spark.sql.Row;importorg.apache.spark.sql.expressions.MutableAggregationBuffer;importorg.apache.spark.sql.expressions.UserDefinedAggregateFunction;import......
  • SparkSQL 自定义函数
    本文的前提条件:SparkSQLinJava参考地址:ScalarUserDefinedFunctions(UDFs)完整代码packagecn.coreqi;importstaticorg.apache.spark.sql.functions.udf;importorg.apache.spark.SparkConf;importorg.apache.spark.sql.*;importorg.apache.spark.sql.expres......
  • Jmeter参数化-用户自定义变量
    一 首先我们先来了解下jmeter做参数化的目的:1通过参数化来集中管理配置和测试数据2通过参数化实现数据驱动测试 二线程组添加配置元件中的用户自定义变量 添加变量名称,变量值三使用变量:通过名称来进行引用 四用户定义变量的好处?jmeter中变量都是......
  • 基于VueCli自定义创建项目
    前面学习的一些router封装,相关文件夹的创建,现在可以通过脚手架自动创建,简化了很多步骤1,使用shell命令选择项目目录vuecreatexx-project步骤2,  步骤3  路由模式默认是hash模式,history模式需要服务器端相关配置支持,这里选n,后面有需要可以在配置文件改......
  • .NET中的加密算法总结(自定义加密Helper类续)
    .NET中的加密算法总结(自定义加密Helper类续) 1.1.1摘要       相信许多人都使用过.NET提供的加密算法,而且在使用的过程我们必须了解每种加密算法的特点(对称或非对称,密钥长度和初始化向量等等)。我也看到过很多人写过.NET中加密算法总结,但我发现个别存在一些问题,很......
  • 自定义jQuery插件Step by Step
    自定义jQuery插件StepbyStep 1.1.1摘要随着前端和后端技术的分离,各大互联网公司对于MobileFirst理念都是趋之若鹜的,为了解决网页在不同移动设备上的显示效果,其中一个解决方案就是ResponsiveDesign;但我们今天不是介绍它,正由于前端开发已经十分重要了,所以我们将介绍如何......
  • 【flink番外篇】9、Flink Table API 支持的操作示例(7)- 表的join操作(内联接、外联接以
    文章目录Flink系列文章一、maven依赖二、示例:表的join操作(内联接、外联接以及联接自定义函数等)本文介绍了表的join主要操作,比如内联接、外联接以及联接自定义函数等。本文除了maven依赖外,没有其他依赖。一、maven依赖本文maven依赖参考文章:【flink番外篇】9、FlinkTableAPI支......
  • Qt/C++编写视频监控系统83-自定义悬浮条信息
    一、前言一般视频控件上会给出个悬浮条,这个悬浮条用于显示分辨率或者一些用户期望看到的信息,一般常用的信息除了分辨率以外,还有帧率、封装格式、视频解码器名称、音频解码器名称、实时码率等,由于实际的场景不一样,用户希望能过自定义勾选开启哪些信息,开启的就显示,不开启的则可以不......