如何在 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 的文档了解更多详情:

Resources and Images

然后您可以使用 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 所示操作即可。