首页 > 其他分享 >delphi firemonkey使用 TListbox 自定义列表数据(二StyleBook方式实现)

delphi firemonkey使用 TListbox 自定义列表数据(二StyleBook方式实现)

时间:2024-01-14 23:35:06浏览次数:36  
标签:ItemText 控件 firemonkey 自定义 delphi Assigned ListBoxItem TText ItemImage

上一篇用设计好界面后用代码添加稍微有些麻烦,所以改为用StyleBook设计好后添加Item

界面上添加ListBox后改Item高度为100

右键添加一条空白记录,观察高度,并且方便自定义编辑style样式

默认添加一条ListBoxItem1Style1的样式,添加Layout布局到这个样式下,并且添加需要的控件进去

layout布局改为如下显示,演示用的文本及图形显示,也可以添加任何控件进去,作为演示用添加的多了就稍显复杂

关闭设计界面时会提示是否应用

窗口上的按钮事件手动添加一条记录

procedure TForm1.Button1Click(Sender: TObject);
const
BitmapFile: string = 'D:\People\1.png';  // 图片文件路径

var
ListBoxItem: TListBoxItem;
ItemText: TText;
ItemImage: TImage;

begin
ListBoxItem := TListBoxItem.Create(nil);
ListBoxItem.Parent := ListBox1;
ListBoxItem.StyleLookup := 'ListBoxItem1Style1';  // 设置列表项的样式

ItemText := ListBoxItem.FindStyleResource('text1') as TText;  // 获取列表项中的文本控件
if Assigned(ItemText) then
ItemText.Text := '张三';  // 设置文本控件的文本内容为'张三'

ItemText := ListBoxItem.FindStyleResource('text2') as TText;  // 获取列表项中的文本控件
if Assigned(ItemText) then
ItemText.Text := '48';  // 设置文本控件的文本内容为'48'

ItemImage := ListBoxItem.FindStyleResource('Image1Style') as TImage;  // 获取列表项中的图片控件
if Assigned(ItemImage) then
if FileExists(BitmapFile) then
ItemImage.Bitmap.LoadFromFile(BitmapFile);  // 加载指定路径的图片文件到图片控件中
end;

执行后效果如下

 点击后取值,仅做示例

procedure TForm1.ListBox1ItemClick(const Sender: TCustomListBox; const Item: TListBoxItem);
var
  ItemText1: TText;
  ItemText2: TText;
  ItemImage: TImage;
begin
// 从被点击的列表框项中获取值
  ItemText1 := Item.FindStyleResource('text1') as TText;
  ItemText2 := Item.FindStyleResource('text2') as TText;
  ItemImage := Item.FindStyleResource('Image1Style') as TImage;

  if Assigned(ItemText1) then
    ShowMessage('文本1: ' + ItemText1.Text);

  if Assigned(ItemText2) then
    ShowMessage('文本2: ' + ItemText2.Text);

  if Assigned(ItemImage) and Assigned(ItemImage.Bitmap) then
    ShowMessage('图像: 已加载')
  else
    ShowMessage('图像: 未加载');
end;

 

标签:ItemText,控件,firemonkey,自定义,delphi,Assigned,ListBoxItem,TText,ItemImage
From: https://www.cnblogs.com/liessay/p/17964445

相关文章

  • SparkSQL 自定义聚合函数[强类型] & DSL
    本文的前提条件:SparkSQLinJava参考地址:UserDefinedAggregateFunctions(UDAFs)1.声明列实体类packagecn.coreqi.entity;importjava.io.Serializable;publicclassUserimplementsSerializable{privateStringusername;privateLongage;publi......
  • 使用 TListbox 自定义列表数据(界面显示)
    界面设计如下启动时默认值procedureTForm1.FormCreate(Sender:TObject);begin//启动时隐藏模板Layout1.Visible:=False;//开启隔行变色ListBox1.AlternatingRowBackground:=True;end;Listbox添加Item代码如下procedureTForm1.AddItem(name:string;......
  • 使用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中变量都是......
  • 解决 DELPHI 中执行外部命令出现屏幕一闪的问题的方法
    解决DELPHI中执行外部命令出现屏幕一闪的问题的方法有的时候我们在DELPHI中使用ShellExecuteEx(exInfo:TShellExecuteInfo)函数执行一些外部命令,但会出现,屏幕一闪的问题,解决方法如下:设置exinfo.nShow:=SW_HIDE;//隐藏命令执行的窗口,不会出现屏幕一闪的情况在exinfo......
  • 基于VueCli自定义创建项目
    前面学习的一些router封装,相关文件夹的创建,现在可以通过脚手架自动创建,简化了很多步骤1,使用shell命令选择项目目录vuecreatexx-project步骤2,  步骤3  路由模式默认是hash模式,history模式需要服务器端相关配置支持,这里选n,后面有需要可以在配置文件改......
  • .NET中的加密算法总结(自定义加密Helper类续)
    .NET中的加密算法总结(自定义加密Helper类续) 1.1.1摘要       相信许多人都使用过.NET提供的加密算法,而且在使用的过程我们必须了解每种加密算法的特点(对称或非对称,密钥长度和初始化向量等等)。我也看到过很多人写过.NET中加密算法总结,但我发现个别存在一些问题,很......