我在程序中使用了TImage
组件。
在运行时,我使用:
将图像添加到组件Image1.Picture.LoadFromFile('C:\Users\53941\Pictures\eq1.jpg');
现在,我想在其他计算机上运行此程序,该计算机在代码中提供的源代码中没有此图像文件。
那么,我如何将这个图像文件存储在程序可执行文件中呢?
答案 0 :(得分:10)
使用.rc
脚本或IDE的Resources and Images
对话框将图像文件存储在程序的资源中。阅读Embarcadero的文档了解更多详情:
然后,您可以使用TResourceStream
在运行时访问资源数据。构造一个TJPEGImage
对象,将流加载到其中,然后将其分配给TImage
:
uses
..., Classes, Jpeg;
var
Strm: TResourceStream;
Jpg: TJPEGImage;
begin
Strm := TResourceStream.Create(HInstance, '<Resource identifier>', RT_RCDATA);
try
Jpg := TJPEGImage.Create;
try
Jpg.LoadFromStream(Strm);
Image1.Picture.Assign(Jpg);
finally
Jpg.Free;
end;
finally
Strm.Free;
end;
end;
答案 1 :(得分:6)
在设计表单时,可以使用Object Inspector分配图像。图像将存储在Form的DFM中,并在程序运行时自动加载。
选择TImage
,然后在对象检查器中
Picture
属性如果你想在代码中加载图像,只需按照Remy所示。