如何在 Delphi 程序本身中插入图片?
How to insert picture in the Delphi program itself?
我在程序中使用了 TImage
组件。
在 运行 时,我使用以下方法向组件添加图像:
Image1.Picture.LoadFromFile('C:\Users941\Pictures\eq1.jpg');
现在,我想 运行 在其他计算机上运行这个程序,而我在代码中给出的源代码中没有这个图像文件。
那么,如何将这个图像文件存储在程序可执行文件本身中?
使用 .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;
您可以在设计表单时使用对象检查器指定图像。图片会保存在Form的DFM中,程序运行时会自动加载。
Select TImage
并且在对象检查器中,
- select
Picture
属性
- 单击 ... 按钮打开图片编辑器
- 按 加载... 按钮和 select 图像文件
- 使用 确定 按钮关闭编辑器。
如果您想改为在代码中加载图像,只需按照 Remy 所示操作即可。
我在程序中使用了 TImage
组件。
在 运行 时,我使用以下方法向组件添加图像:
Image1.Picture.LoadFromFile('C:\Users941\Pictures\eq1.jpg');
现在,我想 运行 在其他计算机上运行这个程序,而我在代码中给出的源代码中没有这个图像文件。
那么,如何将这个图像文件存储在程序可执行文件本身中?
使用 .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;
您可以在设计表单时使用对象检查器指定图像。图片会保存在Form的DFM中,程序运行时会自动加载。
Select TImage
并且在对象检查器中,
- select
Picture
属性 - 单击 ... 按钮打开图片编辑器
- 按 加载... 按钮和 select 图像文件
- 使用 确定 按钮关闭编辑器。
如果您想改为在代码中加载图像,只需按照 Remy 所示操作即可。