1

在 VCL 中,我必须ImageList存储图像。在 FireMonkey 中没有ImageList控制。如何将图像存储在 FireMonkey 中以备后用?

4

5 回答 5

11

在 FireMonkey (XE4) 中添加图像

Project -> Resources and Images

然后访问它:

procedure TForm1.Button1Click(Sender: TObject);
var
  InStream: TResourceStream;
begin
  InStream := TResourceStream.Create(HInstance, 'MyPng', RT_RCDATA);
  try
    Image1.Bitmap.LoadFromStream(InStream);
  finally
    InStream.Free;
  end;
end;

感谢彼得·冯卡

于 2013-08-25T16:35:14.273 回答
5

因为 Delphi Android 中没有 ImageList,所以您必须:

  1. 将您的图像添加到您的项目中

    项目 -> 资源和图像

  2. 将“资源和图像”中的图像删除为 ResourceType RCDATA

  3. 添加此过程:

->

procedure TForm1.load_image_from_resource(var Im1: Timage; res_name: String);
var InStream: TResourceStream;
begin
  InStream := TResourceStream.Create(HInstance, res_name, RT_RCDATA);
  try
    Im1.Bitmap.LoadFromStream(InStream);
  finally
    InStream.Free;
  end;
end

然后加载您的图像,例如:

var i : nativeint;
begin
  i := 1;      
  load_image_from_resource(Image1, 'Bitmap_' + inttostr(i));
end;

从各地。

于 2013-12-10T04:15:01.860 回答
3

通过将您的图像添加为资源Project > Resources and Images

于 2013-08-25T08:23:35.850 回答
1

对于现在正在看这个问题的人,因为 Delphi XE8 FireMonkey 有 TImageList 组件

于 2016-12-21T08:02:37.750 回答
0

在表单上放置一个 TPopupMenu 并添加一些菜单项并分配每个 TMenuItem 的 TBitmap。然后您可以使用以下表达式访问位图:

PopupMenu1.Items[index].Bitmap

或者

MenuItem1.Bitmap
MenuItem2.Bitmap
...
于 2013-08-25T08:22:14.273 回答