gpt4 book ai didi

delphi - 带图像的 Firemonkey 列表框项目

转载 作者:行者123 更新时间:2023-12-02 00:30:31 25 4
gpt4 key购买 nike

我制作了一个 Firemonkey 自定义列表框项目,用样式书设计。当我尝试插入列表框项目时,除了更改列表框项目中的图片之外,一切正常(插入文本等)。

我按照本教程进行操作:http://www.experts-exchange.com .

这是我的代码:

procedure TForm2.Button1Click(Sender: TObject);
var
i : Integer;
LBItem : TListBoxItem;
ItemImage : Timage;
begin
ListBox1.BeginUpdate;
ListBox1.Items.Clear;
try
for i := 0 to 9 do begin

LBItem := TListBoxItem.Create(nil);
LBItem.Parent := ListBox1;
LBItem.StyleLookup := 'rowLayout';
LBItem.StylesData['textName'] := 'Some text...';
LBItem.StylesData['textFormat'] := 'Some more text...';

ItemImage := LBItem.FindStyleResource('picture') as TImage;
if Assigned(ItemImage) then
LBItem.ItemData.Bitmap.LoadFromFile('D:\MyTestPicture.jpg');
end;
finally
ListBox1.EndUpdate;
end;
end;

“rowLayout”是我在样式书中的布局,是我为 ListBox 项目制作的。“textName”和“textFormat”是一些TText,我将其放置在ListBox Item中。“图片”是我的列表框项中的 TImage。

我的代码出了什么问题?我正在使用 Delphi XE4。

感谢您的帮助和最诚挚的问候,霍尔格

最佳答案

您的图片不会改变,因为在您的代码中您只加载单个图像。您还犯了一个很大的错误,就是不断地循环加载图像,您应该在创建表单时只加载一次图像,然后简单地引用正确的位图。

if Odd(I) then
Item.ItemData.Bitmap := Image1.Bitmap
else
Item.ItemData.Bitmap := Image2.Bitmap;

讽刺的是,大多数人忘记检查 Samples 文件夹,该文件夹通常位于 C:\Users\Public\Documents\RAD Studio\XX.0\Samples\FireMonkey

您应该做的是仔细查看CustomListBox示例。

遵循其他教程没有任何问题,但考虑到 Firemonkey 更改每个版本的速度以及您链接的教程相当旧,我建议您回到已经包含的 Delphi 示例,它是最新的,易于理解基本上完全符合您的要求。

关于delphi - 带图像的 Firemonkey 列表框项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17693328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com