日安
我正在尝试构建一个应用程序,它要求我以可选择的大小分组显示多个图像。这些图像由位图和文本字段组成。我的想法是将图像组放在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;
1条答案
按热度按时间rekjcdws1#
您需要将TListItemImage添加到TListViewItem中,而不是添加到TListView中。
应该可以。