【发布时间】:2020-02-11 01:44:58
【问题描述】:
在 Delphi Rio 10.3.3 中,我创建了一个新的 FMX 应用程序并在表单上放置了三个组件。 TButton、TImageControl 和 TListView 大约为 600x400。在 Button1Click 我有:
var LItem: TListViewItem;
begin
LItem := ListView1.Items.Add;
LItem.Height := 250;
LItem.Bitmap.LoadThumbnailFromFile('My.jpg', 160, 120, False);
LItem.Text := 'Text';
ImageControl1.Bitmap := LItem.Bitmap;
ShowMessage(IntToStr(LItem.Bitmap.Width) + ' x ' +
IntToStr(LItem.Bitmap.Height));
我不明白的是 ListViewItem 的位图如何显示预期的尺寸,这比 ListView 中的元素小得多,并且可以将位图复制到一个单独的 ImageControl 中,它看起来像预期的那样,但 ListViewItem 的位图却可以不会出现在 ListView 中。 ListViewItem 的文本确实出现在 ListView 中,但无论我保留还是删除它,都不会显示位图。将缩略图大小降低到这些值的一半不会导致显示位图中的图像。
我是否缺少适用于在 ListView 中显示 ListViewItem.Bitmap 的步骤?
比如,LItem.Text 是怎么出现的,除了给它一个值,而 LItem.Bitmap 需要一些其他处理?
我正在研究名为 SampleListViewAddThumbnailAndCaption 的示例应用程序是如何工作的,但它有点令人费解,并且依赖于 ListViewItem.BitmapRef ,它不完全是一个记录的属性,所以它可能只是一个杂项,因为它指向一个不可见的图像.此外,示例应用程序使用“TI”值作为缩略图名称,我还没有发现这是否有意义或其他虚拟名称。
【问题讨论】:
标签: listview delphi bitmap listviewitem