Jika Anda pernah melakukan surfing di internet, Anda tentunya tidak asing dengan efek fade out, karena di internet cukup banyak situs yang menggunakan efek ini untuk mempercantik halaman web mereka.
Efek fade out merupakan suatu efek perubahan warna, misal perubahan warna dari warna terang menuju ke warna gelap, di mana setiap langkah perubahan ditampilkan sehingga tercipta efek transformasi bagi yang melihat.
Delphi menyediakan fungsi yang berguna untuk mendapatkan efek fade out.
Berikut adalah kode selengkapnya:
unit UMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons;
type
TForm4 = class(TForm)
Image1: TImage;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
procedure FadeOut(const BMP: TImage; Pause: Integer);
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.BitBtn1Click(Sender: TObject);
begin
FadeOut(Image1, 5);
end;
procedure TForm4.FadeOut(const BMP: TImage; Pause: Integer);
var
BytesForScan, w, h, counter: Integer;
p: pByteArray;
begin
if not(BMP.Picture.Bitmap.PixelFormat in [pf24Bit, pf32Bit]) then
raise exception.Create('Error, bitmap format not supported.');
try
BytesForScan:= Abs(Integer(BMP.Picture.Bitmap.ScanLine[1]) -
Integer(BMP.Picture.Bitmap.ScanLine[0]));
except
raise Exception.Create('Error');
end;
for counter:=1 to 256 do
begin
for h:=0 to BMP.Picture.Bitmap.Height - 1 do
begin
p:= BMP.Picture.Bitmap.ScanLine[h];
for w:=0 to BytesForScan - 1 do
if p^[w] > 0 then p^[w]:= p^[w]-1;
end;
Sleep(Pause);
BMP.Refresh;
end;
end;
end.

Comments
Post a Comment