程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi制作的動畫屏保例子

Delphi制作的動畫屏保例子

編輯:Delphi

Delphi調用多張圖片編寫實現的簡單動畫屏保例子,每張圖片自動切換,切換方式每張都不一樣,晃動鼠標即可結束屏幕保護,

Delphi動畫屏保

vIEw source print? 001 unit Unit1; 002 interface 003 uses 004   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 005   Dialogs, ExtCtrls; 006 type 007   TForm1 = class(TForm) 008     Image1: TImage; 009     Timer1: TTimer; 010     Image2: TImage; 011     procedure FormCreate(Sender: TObject); 012     procedure FormKeyDown(Sender: TObject; var Key: Word; 013       Shift: TShiftState); 014     procedure Timer1Timer(Sender: TObject); 015     procedure FormDestroy(Sender: TObject); 016     procedure Image1Click(Sender: TObject); 017     procedure Image2Click(Sender: TObject); 018   private 019     { Private declarations } 020   public 021     { Public declarations } 022   end; 023 Const Bmp:array[1..6of String= 024 ('bmp1.bmp','bmp2.bmp','bmp3.bmp', 025 'bmp4.bmp','bmp5.bmp','bmp6.bmp'); //定義位圖文件名的字符串數組 026 var 027   Form1: TForm1; 028   i,w,h:integer; 029 implementation 030 {$R *.dfm} 031 procedure TForm1.FormCreate(Sender: TObject); 032 begin 033 Form1.Color:=clBlack; 034 Image1.Top:=150; 035 Image1.Left:=150; 036 Image1.Width:=Image2.picture.Width; 037 Image1.Height:=Image2.Picture.Height; 038 w:=Image2.picture.Width; 039 h:=Image2.Picture.Height; 040 Timer1.Enabled:=True;   //程序一運行就開啟時鐘 041 i:=0;   //變量i要在使用它的函數外預先定義,或者不預先定義,系統會默認為0 042 end; 043 procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; 044   Shift: TShiftState); 045 begin 046 If key=27 Then 047   Application.Terminate          //退出程序 048 Else; 049 end; 050 procedure TForm1.Timer1Timer(Sender: TObject); 051 var k:Integer; 052 begin 053 If i>=6 Then 054 I:=0; 055 i:=i+1; 056 Image2.Picture.LoadFromFile(Bmp[i]); 057 Case Of 058 1:Begin 059   For k:=0 To Do 060   Begin     //向左收縮效果 061    Image1.Canvas.CopyRect(Rect(0,0,w,h),Image2.Canvas,Rect(0,0,k,h)); 062    Form1.Canvas.Draw(Image1.Left,Image1.Top,Image1.picture.bitmap); 063   end; 064   end; 065 2:Begin 066  For k:=0 To Do 067   Begin       //向右上角尖滅 068    Image1.Canvas.CopyRect(Rect(k,0,w,h),Image2.Canvas,Rect(0,k,w,h)); 069    Form1.Canvas.Draw(Image1.Left,Image1.Top,Image1.picture.bitmap); 070   end; 071  end; 072 3:Begin 073   For k:=0 To 500 Do 074   Begin      //神奇地模糊轉化為清晰的效果 075    Image1.Canvas.CopyRect(Rect(0,k,w,h),Image2.Canvas,Rect(0,k,w,k+1)); 076    Form1.Canvas.Draw(Image1.Left,Image1.Top,Image1.picture.bitmap); 077   end; 078   end; 079 4:Begin 080  For k:=0 To 500 Do 081   Begin        //平緩下拉效果 082    Image1.Canvas.CopyRect(Rect(0,k-1,w,k),Image2.Canvas,Rect(0,k-1,w,k)); 083    Form1.Canvas.Draw(Image1.Left,Image1.Top,Image1.picture.bitmap); 084   end; 085   end; 086 5:Begin 087  For k:=0 To Do 088   Begin         //由下向上拉伸 089    Image1.Canvas.CopyRect(Rect(0,w-k,w,h),Image2.Canvas,Rect(0,0,w,k)); 090    Form1.Canvas.Draw(Image1.Left,Image1.Top,Image1.picture.bitmap); 091   end; 092   end; 093 6:Begin 094   For k:=0 To 500 Do 095   Begin       //逐漸快速放大 096    Image1.Canvas.CopyRect(Rect(0,0,w,h),Image2.Canvas,Rect(k,0,w,h)); 097    Form1.Canvas.Draw(Image1.Left,Image1.Top,Image1.picture.bitmap); 098   end; 099   end; 100 end;  //CASE語句結束 101 end//IF語句結束 102 procedure TForm1.FormDestroy(Sender: TObject); 103 begin 104   //釋放資源 105 Image1.Picture.Bitmap:=Nil; 106 Image2.Picture.Bitmap:=Nil; 107 Timer1.Enabled:=False;    //關閉時鐘 108 end; 109 procedure TForm1.Image1Click(Sender: TObject); 110 begin 111   close; 112 end; 113 procedure TForm1.Image2Click(Sender: TObject); 114 begin 115   close; 116 end; 117 end.
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved