上一篇用设计好界面后用代码添加稍微有些麻烦,所以改为用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