zoukankan      html  css  js  c++  java
  • TImage 显示 资源中 的图片、TResourceStream、资源文件

    unit Unit5;
    
    interface
    
    uses
      Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
      Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Imaging.pngimage, Vcl.Imaging.jpeg,
      Vcl.ComCtrls, Vcl.Imaging.GIFImg;
    
    type
      TForm5 = class(TForm)
        Button1: TButton;
        Image1: TImage;
        Button2: TButton;
        Button3: TButton;
        Button4: TButton;
        Button5: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure Button3Click(Sender: TObject);
        procedure Button4Click(Sender: TObject);
        procedure Button5Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form5: TForm5;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm5.Button1Click(Sender: TObject);
    begin
      Image1.Picture.Bitmap.LoadFromResourceName(HInstance, 'Bitmap_1');
    end;
    
    procedure TForm5.Button2Click(Sender: TObject);
    var
      png: TPngImage;
      stream: TResourceStream;
    begin
      png := TPngImage.Create;
      stream := TResourceStream.Create(HInstance, 'PngImage_1', RT_RCDATA);
      try
        png.LoadFromStream(stream);
        Image1.Picture.Assign(png);
      finally
        png.Free;
        stream.Free;
      end;
    end;
    
    procedure TForm5.Button3Click(Sender: TObject);
    var
      jpg: TJPEGImage;
      stream: TResourceStream;
    begin
      jpg := TJPEGImage.Create;
      stream := TResourceStream.Create(HInstance, 'JpgImage_1', RT_RCDATA);
      try
        jpg.LoadFromStream(stream);
        Image1.Picture.Assign(jpg);
      finally
        jpg.Free;
        stream.Free;
      end;
    end;
    
    procedure TForm5.Button4Click(Sender: TObject);
    var
      gif: TGIFImage;
      stream: TResourceStream;
    begin
      gif := TGIFImage.Create;
      stream := TResourceStream.Create(HInstance, 'GifImage_1', RT_RCDATA);
      try
        gif.LoadFromStream(stream);
        gif.AnimationSpeed := 300; //动画速度
        gif.Animate := True;//是否动画
        Image1.Picture.Assign(gif);
      finally
        gif.Free;
        stream.Free;
      end;
    end;
    
    procedure TForm5.Button5Click(Sender: TObject);
    begin
      Image1.Stretch := True; //这句对icon无效.
      Image1.Picture.Icon.LoadFromResourceName(HInstance, 'Icon_1');
    end;
    
    procedure TForm5.FormCreate(Sender: TObject);
    begin
      Image1.Stretch := True;
      ReportMemoryLeaksOnShutdown := True;
    end;
    
    end.

     

    切记:资源管理器 与 项目是连接的,当向资源管理器中增加图片的时候,这个图片会同时加到项目的中来(相当于project---add);任何一方去除则两方同时自动去除!!!!所以要慎重操作一旦,去除了一方 另一方也会自动去除,那么如果之前有重命名的话 需要寻找之前的资源命名 然后重命名;工作量巨大,所以不要随便删 任何一方。 

  • 相关阅读:
    Java知识体系总结(2021版)
    第三篇 makefile的伪目标
    第二篇 makefile的基本结构
    第一篇 make与makefile介绍
    hdu 1994 利息计算
    Python中Class中的object是什么意思?
    编译语言和解释语言有什么不同?
    从文本文件hello.txt到可执行文件hello
    classmethod和staticmethod
    Uninstall NetBeans
  • 原文地址:https://www.cnblogs.com/del88/p/6890488.html
Copyright © 2011-2022 走看看