在DELPHI中顯示GIF動畫


想沒想過在DELPHI中顯示GIF動畫?Delphi的用戶是非常幸運的,因為有免費控件可以使用。最著名的控件是Anders Melander編寫的TGifImage,並提供完整的源程序。它原來的主頁是www.melander.dk/delphi/gifimage/,不過有很長時間沒有更新了。如果要在新版本的Delphi中使用,可以從http://finn.mobilixnet.dk/delphi/下載Finn Tolderlund改寫的Delphi 5/6/7版本的TGifImage 現在看看怎么在DELPHI中使用GIFImage.pas文件,顯示GIF動畫首先,新建一個工程,在Project-OPTIONS菜單中的Directories/Conditionals頁中的search中添加一個路徑,這個路徑指向GIFImage.pas所在文件夾然后在FORM1PUBLIC區添加一個變量GIF,定義為TGIFImage類型在form1onCreate中添加代碼:GIF := TGIFImage.Create; form1上添加一個按鈕button1,添加一個image控件在button1click事件中添加代碼: Gif.LoadFromFile('d:/abc.gif'); GIF.Paint(Image1.Canvas,Image1.ClientRect,[goAsync,goLoop,goAnimate]);

 

 

 

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs,GIFImage, ExtCtrls;

 

type

  TForm1 = class(TForm)

    Image1: TImage;

    Timer1: TTimer;

    Panel1: TPanel;

    Image2: TImage;

    procedure FormCreate(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

  private

    { Private declarations }

  public

  i:integer;

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.FormCreate(Sender: TObject);

var

  gif:TGIFImage;

  gif1:TGIFImage;

begin

  //include(GIFImageDefaultDrawOptions, goDirectDraw);

  gif:=TGIFImage.Create;

  gif1:=TGIFImage.Create;

  gif.LoadFromFile('test.gif');

  gif1.LoadFromFile('test.gif');

  try

   GIF.Paint(Image1.Canvas,Image1.ClientRect,[goTransparent,goDither,goAsync,goLoop,goAnimate,goDirectDraw]);

   GIF1.Paint(Image2.Canvas,Image2.ClientRect,[goTransparent,goAsync,goLoop,goAnimate]);

 

    //Image1.Picture.Assign(gif);

    //include(GIFImageDefaultDrawOptions, goDirectDraw);

    //Image2.Picture.Assign(gif1);

  finally

      //GIF.Free;

      //gif1.Free;

  end;

 

end;

 

procedure TForm1.Timer1Timer(Sender: TObject);

 

begin

//gif.PaintStart;

//image1.Picture.Assign(gif.Bitmap);

  //Image1.Repaint;

 // if (i<(gif.Images.Count-1)) then  Inc(i) else i:=0;

 

end;

 

end.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM