如何将TImageList中的图片分配给TImage?

时间:2015-10-15 13:18:22

标签: delphi firemonkey

我刚刚使用AppMethod 1.17的试用版,即Delphi 10 Seattle。因此我无法查看源代码。

在VCL中,我使用TImageList.Draw(),但是使用新的TMultiResBitmap类,我不知道如何使用它。

2 个答案:

答案 0 :(得分:4)

我找到了一个解决方案,但不知道这是否是首选方式。

var
  s: TSizeF;
begin
  s.Create(32, 32); //Image size
  myImage.Bitmap := myImageList.Bitmap(s,imageIndex);
end;

答案 1 :(得分:0)

另一种方法是将位图添加到TImage的MultiResBitmap中:

var
  sz: TSize;
  bmpSrc, bmpTgt: TBitmap;

...

// Obtain the bitmap (e.g. from ImageList in data-module)
sz := TSize.Create(MaxInt, MaxInt); // Pick best size
DataModule1.ImageList1.BestSize(3, sz);
bmpSrc := DataModule1.ImageList1.Bitmap(sz, 3);

// Assign to Image1, to desired scale
bmpTgt := Image1.MultiResBitmap.Bitmaps[1.0];
bmpTgt.SetSize(bmpSrc.Size);
bmpTgt.Assign(bmpSrc);