В 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));
Что я не понимаю, так это как Bitmap ListViewItem может отображать ожидаемые измерения, которые намного меньше, чем элементы в ListView, и что Bitmap можно скопировать в отдельный ImageControl, где он выглядит, как и ожидалось, но Bitmap ListViewItem не отображается в ListView. Текст ListViewItem действительно появляется в ListView, но, сохраняю ли я это или удаляю, растровое изображение не отображается. Уменьшение размеров миниатюр до половины этих значений не приводит к отображению изображения в растровом изображении.
Я пропустил шаг, который применяется к отображению ListViewItem.Bitmap в ListView?
Например, как это то, что LItem.Text появляется без каких-либо иных значений, кроме присвоения ему значения, в то время как LItem.Bitmap требует какой-то другой обработки?
Я смотрю на то, как работает пример приложения под названием SampleListViewAddThumbnailAndCaption, но он немного запутан и полагается в ListViewItem.BitmapRef, который не является точно задокументированным свойством, поэтому это может быть просто кладжа, потому что он указывает на невидимое изображение. Кроме того, пример приложения использует значение «TI» в качестве имени миниатюры, и я не выяснил, является ли это значимым или пустым.