2017-07-25 15 views
3

我在程序中使用了一个TImage组件。如何在Delphi程序本身插入图片?

在运行时,我通过使用图像添加到组件:

Image1.Picture.LoadFromFile('C:\Users\53941\Pictures\eq1.jpg'); 

现在,我想运行其他一些计算机上运行此程序,它也不会在我已经给源有这个图像文件在代码中。

那么,如何将这个图像文件存储在程序可执行文件本身?

回答

8

使用.rc脚本或IDE的Resources and Images对话框将图像文件存储在程序资源中。阅读英巴卡迪诺的文档了解更多信息:

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; 
6

您可以将设计表单时使用对象检查图像。图像将存储在表单的DFM中,并在程序运行时自动加载。

选择TImage,并在Object Inspector,

  • 选择Picture财产
  • 点击......按钮,打开图片编辑器
  • 加载...按钮并选择图像文件
  • 关闭编辑器确定 bu tton。

如果你想要在代码中加载图像,只需像雷米所示。

+0

使用资源更好,因为您可以将资产直接保存在版本控制系统中。将它推入.dfm文件使追踪更难。 –

+0

当然,但这是通常的RAD方式。 –

+1

是的。它很糟糕。作为一名软件开发人员讲话。 –