【问题标题】:Why is Bitmap not displayed in ListView为什么ListView中不显示Bitmap
【发布时间】: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


    【解决方案1】:

    解决方案是使用示例应用程序 ListViewAddThumbnailAndCaption 中的 TListItemImage 的技术,但它并没有立即显现出来,所以虽然我在发布我的问题之前尝试过这种方法,但它似乎不起作用的事实让我到我的帖子。

    该方法不起作用的原因是图像被定位在 ListView 的尺寸之外。一旦我解决了这个问题,剩下的就变成了调整的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-20
      • 1970-01-01
      相关资源
      最近更新 更多