Delphi FMX编程使用TListview

tjvv9vkg  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(551)

日安
我正在尝试构建一个应用程序,它要求我以可选择的大小分组显示多个图像。这些图像由位图和文本字段组成。我的想法是将图像组放在TListview中(我希望可以水平显示),然后将这些listview组添加到TFlowlayout中以管理屏幕布局。
然而,我只是没有正确地通过编程创建一个TListview项来显示图像。我曾尝试创建一个TListItemImage以及简单地添加一个TListViewItem,但都没有成功,因为我在屏幕上看不到任何东西。
我包含了我的测试代码(注意它从一个文件夹中提取图像进行测试)。注解掉的部分可能会指示我尝试的一些实验。
我可能也很难将TListviews添加到TFlowlayout中。一些建议将非常感谢。想法是应用程序将在Android移动的和桌面上运行。

function TForm1.BuildGrpObj(GroupSize, CurrPicIdx: integer): boolean;
var
  aPicObj : TListViewitem;
  k: Integer;
  aPicObjImg: TListItemImage;
//  aPicObjImg: TListViewItem;
  FName: string;
begin
  for k := 0 to GroupSize-1 do
  begin
    aPicObj := Listview1.Items.Add;
    aPicObj.Text := 'Picture: ' + inttostr(CurrPicIdx + k);
    aPicObjImg := TListItemImage.Create(aPicObj);
//    aPicObjImg :=  Listview1.Items.Add;
    FName := LList[CurrPicIdx + k];
//    aPicObjImg.Bitmap := TBitmap.Create;
    aPicObjImg.Bitmap.LoadFromFile(FName);
    aPicObjImg.Align := TListItemAlign.Center;
    aPicObjImg.VertAlign := TListItemAlign.Center;
    aPicObjImg.PlaceOffset.X := 0;
    aPicObjImg.PlaceOffset.Y := 0;
    aPicObjImg.Width := 40;
    aPicObjImg.Height := 40;
    aPicObjImg.invalidate;
  end;
  result := true;
end;
rekjcdws

rekjcdws1#

您需要将TListItemImage添加到TListViewItem中,而不是添加到TListView中。

aPicObj := Listview1.Items.Add;
aPicObj.Text := 'Picture: ' + inttostr(CurrPicIdx + k);
aPicObjImg := TListItemImage.Create(aPicObj);
aPicObj.AddObject(aPicObjImg);

应该可以。

相关问题