我有一个带有大TImage的表格作为背景。问题是,这直接以位图的形式存储在DFM中,大约占用3 MB。原始的PNG文件约为250K。我想尝试通过将PNG嵌入资源中,然后在OnCreate期间让表单加载它来减少膨胀。现在,既然Delphi 2009包含PNG支持,我就可以做到这一点,除了我不太了解如何使用PNG构建资源文件。有人知道怎么做吗?

最佳答案

示例文本文件(名为myres.rc):

MYPNG RCDATA mypng.png

添加到项目:
{$R 'myres.res' 'myres.rc'}

在运行时加载的示例:
uses
  PngImage;

var
  Png: TPngImage;
begin
  Png := TPngImage.Create;
  try
    Png.LoadFromResourceName(HInstance, 'MYPNG');
    Image1.Picture.Graphic := Png; // Image1: TImage on the form
  finally
    Png.Free;
  end;
end;

07-24 09:23