hasilnya bisa di download disini http://aguselek.tk/upload/datafile/formtransparant.rar
Tentunya ketika
kita ingin membuat suatu program, kita ingin program kita lebih menarik
dipandang oleh mata, para user pun lebih tertarik memakai program yang dinamis
dan tidak monoton sehingga user akan betah berlama-lama menggunakan program
tersebut.
Windows sendiri menyediakan banyak sekali rutin procedure yang
dapat dimanfaatkan dan dipanggil setiap saat. Sebut saja fungsi win32 API,
yaitu fungsi API windows yang berbasis 32bit yang sangat umum dan sangat banyak
dokumentasi mengenainya di internet. Sehingga
akan lebih mudah untuk dimanfaatkan. Win32 API sendiri menyediakan banyak
procedure siap pakai yang dapat dimanfaatkan untuk mempercantik dan membuat
aplikasi yang kita buat lebih menarik. Sebut
saja library gdi32.dll yang merupakan gu dang kode pemrograman yang berorientasi
untuk menangani grafik, sedangkan user32.dll dapat kita pakai untuk mengatub
objek – objek yang terdapat di layar. Nah untuk membuat suatu form menjadi
transparat kita membutuhkan fungsi API SetLayeredWindowAttributes dari
user32.dll. selain itu kita juga membutuhkan 2 fungsi API tambahan untuk
menjadikan form jendela yang kita buat berfungsi sebagai Layered window, yaitu
GetWindowLong dan SetWindowLong dari user32.dll juga.
Untuk constanta yang kita butuhkan adalah GWL_EXSTYLE, WS_EX_LAYERED
dan LWA_ALPHA.
Nah intinya kita memanggil fungsi SetLayeredWindowAttributes untuk
menjadikan form menjadi transparan dengan Attribut LWA_ALPHA, LWA_ALPHA sendiri
merupakan konstanta yang secara default bernilai 2.
Nah mari kita buat procedure untuk membut form menjadi transparent.
Di bagian awal kita harus membuat pendeklarasian fungsi API
sehingga kita dapat memanggil fungsi tersebut, sebagai berikut.
function SetLayeredWindowAttributes(hWnd: HWND; crKey: Longint;
bAlpha: Byte;dwFlags: Longint): Longint; stdcall;
function SetLayeredWindowAttributes; external user32;
dan juga kita harus memakai file windows.pas di bagian uses;
procedure Make_Transparent (hWnd: Longint;Value: Byte);
var
WinInfo: Integer;
begin
WinInfo :=
GetWindowLong(hWnd, GWL_EXSTYLE);
If Value < 255 Then
begin
WinInfo:= WinInfo Or
(WS_EX_LAYERED);
SetWindowLong (hWnd,
GWL_EXSTYLE, WinInfo);
SetLayeredWindowAttributes (hWnd, 0, Value, LWA_ALPHA);
end
Else
begin
WinInfo:= WinInfo Xor
WS_EX_LAYERED;
SetWindowLong (hWnd,
GWL_EXSTYLE, WinInfo);
End;
end;
dan untuk procedure tersebut tambahkan component scrollbar dengan
nama scrollbar1 dan komponen label dengan nama lbl pada form,
kemudian tuliskan kode berikut :
procedure TForm1.ScrollBar1Change(Sender: TObject);
var
value:integer;
initTrans: integer;
begin
value:=scrollbar1.Position;
initTrans:=255-round(value * 2.55);
lbl.Caption :=
'Transparansi = ' + inttostr(value) + ' %';
Make_Transparent(self.Handle,initTrans);
end;
Dan berikut hasil compile program yang sudah kita buat tadi, dengan transparansi 32% yang menampilkan sebagian tampilan di belakang form :
Ok, sampai disini dulu penjelasan tentang pembuatan form transparan
ini, semoga dapat menambah wawasan kita semua dan bermanfaat.. Amiiin
Salam hangat,
Agus Minanur Rohman
Tidak ada komentar:
Posting Komentar