andrypein.net : Masih dalam tema animasi, kali ini tentang animasi masking form delphi dimana saat mouse kita digerakkan maka akan muncul efek masking pada image nya.
Penampakannya bisa dilihat pada gambar animasi dibawah ini :
Supaya bisa dipahami aing tambahkan komentar di source code sebagai deskripsi penjelasan singkat.
Ok next lanjut siapkan form dan satu buah TImage.
Pilih gambar pada image namun hanya yang berekstensi .BMP ingat gan,hanya .BMP, selain itu maka si animasi tidak akan berjalan.
Atur-atur gambar, dan buat dia stretch di propertiesnya.
Pada kodingan nya, terlebih dahulu tambahkan variabel global dengan tipe HRGN nama bebas lah di bawah TForm1.
var Form1: TForm1; region : HRGN; //holdRegion
Lalu pada form OnCreate beri kode :
procedure TForm1.FormCreate(Sender: TObject); begin region:=CreateEllipticRgn(0,0,100,100); end;
Masih pada form, beri event OnDestroy dan masukan kode ini :
procedure TForm1.FormDestroy(Sender: TObject); begin DeleteObject(region); end;
Lalu pada Image nya, beri event OnMouseMove dan ketik kode :
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var Temp : TBitmap; begin Temp:=TBitmap.Create; Temp.Width:=Image1.Width; Temp.Height:=Image1.Height; ExtSelectClipRgn(Temp.Canvas.Handle,Region,RGN_AND); //buat bitmap,dan Image1 akan menjadi invisible OffsetClipRgn(Temp.Canvas.Handle,x-25,y-25); //region yang terpotong akan ditandai Temp.Canvas.Draw(0,0,image1.Picture.Bitmap); {pindahkan gambar yang tersimpan pada image1 ke bitmap. area yang terpotong akan tergambar sebagai lingkaran dengan area kecil } Canvas.Draw(image1.Left,image1.Top,Temp); //tampilkan pada form dengan hasil sebuah lingkaran Temp.Free; //bebaskan memori bitmap end;
Terakhir dan masih pada form lagi beri event OnKeyDown ketik kode :
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = VK_ESCAPE then close; end;
Selesai dan dicoba di run maka akan sperti gif yang diatas.