【发布时间】:2013-08-27 22:14:29
【问题描述】:
在 VCL 中,我有 ImageList 来存储图像。在 FireMonkey 中没有 ImageList 控件。如何将图像存储在 FireMonkey 中以备后用?
【问题讨论】:
标签: image delphi firemonkey
在 VCL 中,我有 ImageList 来存储图像。在 FireMonkey 中没有 ImageList 控件。如何将图像存储在 FireMonkey 中以备后用?
【问题讨论】:
标签: image delphi firemonkey
对于现在正在看这个问题的人,因为 Delphi XE8 FireMonkey 有 TImageList 组件
【讨论】:
因为在 Delphi Android 中没有 ImageList,你必须:
将您的图片添加到您的项目中
项目 -> 资源和图片
将 'Resources and Images' 中的图像删除为 ResourceType RCDATA
添加此过程:
->
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;
来自世界各地。
【讨论】:
在 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;
感谢彼得·冯卡
【讨论】:
通过Project > Resources and Images将您的图片添加为资源。
【讨论】:
在表单上放置一个 TPopupMenu 并添加一些菜单项并分配每个 TMenuItem 的 TBitmap。然后你可以用这个表达式访问位图:
PopupMenu1.Items[index].Bitmap
或
MenuItem1.Bitmap
MenuItem2.Bitmap
...
【讨论】: