ffi-^--!^-r 41 MERANCANG KOMPONEN GRADAS WARNA FORM PADA BORLAND DELPH Oleh: pin B. A. dan Carwoto*) Program aplikasi dengan beberapa form yang warnanya sama, terkesan monoton. sedangkan program aplikasi d.engan warna form berbeda-beda, jika pilihan warnanya tidak tepat, akan terlihat sangat kontras serta terkesan "semrawut", Untuk menghindari hal di atas dalam merancang aplikasi perlu menggunakan form dengan warna bergradasi. Form dengan warna bergradasi sanggup memberi kesan artistik tertentu, sehingga dapat mengurangi kejenuhan pemakai aplikasi (user), Disamping itu, form dengan warna bergradasi bisa membimbing pandangan user ketika beralih Sedangkan form default-nya tidak memiliki properti ini. oleh karena itu, untuk memberi gradasi warna pada form, kita harus merancangnya sendiri. Pada kesempatan ini, akan dibahas bagaim ana cara merancang komponen untuk memberi gradasi warna pada form. Komponen hasil rancangan ini dapat didaftarkan pada daftar Component Palette agar dapat secara praktis dipakai setiap kali dibutuhkan. Perancangan Komponen Langkah pertama yang harus dilakukan dalam merancang komponen adalah memilih Gambar l. Kotak Dialog Komponen Expert dari form dengan wama tunggal tertentu ke form lain dengan warna tunggal lainnya sec ara perlahan. Ada komponen pada Component Palette Borland Delphi yang sudah memiliki properti gradasi warna, yaitu komponen TChart. menu Eile New eomponentjetelah muncul kotak dialog seperti pada Gambar l, isilah kotak Qlass Name dengan nama komponen yang akan dibuat. Pada kotak Ancestor type, pilihlah konnponen dari mane kita akan meiiurunkaii komponen yang akan dibuat. Sebagai contoh, Pilihlah kotak Class Name dengan "TGradasi" dan Ancestor type dengan otcustompanel". Pada kotak palette ') pin Bustanul AriJin, Carwolo,keduanya adalah mahasiswa Program Studi Teknik Elektro Fakultas Teknik Universitas Diponegoro, Semarang. t i{, ; i 4,
Page, pilihlah halaman dimana komponen akan diletakkan. Kita dapat memilih sembarang halaman yang terdapat pada Component Palette seperti Standard, Data Access, Data Controls, dan seterusnya. Dalam contoh ini komponen diletakkan pada halaman "CLcK". Bila Kita mengklik button Create Unit, maka Delphi akan membuat kerangka unit untuk menuliskan kode-kode program. Untuk membuat komponen Gradasi Warna Form, ketikkan kodekode program seperti yang dapat dilihat pada listing GRADAS.PAS di bawah ini" "Procedure Register" seperti terlihat pada baris nomor 102-105 akan otornatis dibuat setelah kita mengklik button Create Unit. Prosedur ini mendaftarkan kelas TGradasi ke Component Palette bagian ''CLcK". Tanpa pendaftaran ini, komponen tersebut tidak akan muncul pada Component Palette. Komponen TGradasi yang akan dirancang ini berupa custom panel dengan align: altop, tinggi : 00, default warna awal: putih, dan default warna akhir: hitarn. Constructor pada program, seperti pada baris nomor 46 sampai dengan baris nomor 54, berfungsi untuk menset properti-properti yang dibutuhkan sebagai kondisi default komponen TGradasi. Prosedur "TGradasi.Paint", berfungsi untuk mewarnai komponen TGradasi dengan tingkat warna yang berubah dari warna awal hingga warna akhir. Sedangkan prosedur "TGradasi,WarnaKeRGB", untuk mengkonversi warna dari tipe TColor menjadi warna prirner (Red,Green,Blue). Sebaliknya procedure "TGradasi.RcBkeWarna" untuk rnenggabungkan warna-warna primer menjadi tipe TColor Berikut adalah isting program GRADAS.PAS selengkapnya. Listing GRADAS.PAS - Turbo Pascal/)elphi 1 2 3 4 5 5 -l 9 1-0 l_1 L2 1_3 L4 L5 16 L7 1B 19 20 2L 22 23 24 25 26 21 28 29 30 31 32 33 34 J5 36 37 38 / /erogram / /vite / /copyright : Gradasi Warna Form : GRADAS. PAS : 1998, CLcK Software House. uses windows, Messages, Sysutifs, Classes, Graphics, controls, lolms, Dialogs, Extctrfs; type Tcradasi = class (TcustomPanel) pr j.vate FAwalwarna : Tco1or; FAkhirlilarna : TCoori FonPaint : TNotifyEvent, Procedure SetAwalwarna (Awai.walna:TColor), Proceciure SeE.Akhirwarna (Akhlrwarna : TColor) ; protected public Constructox Create (Aowner:Tconponent) i Overridei Destructor Destroyi Overridei Procedure Paint, or,zerridei Procedure WarnaKeRGB (Warna : Tcolor,'var R, G, B: Byte ), Eunction RcBKewarna (R,G, B: Byte) :Tcoloft published Property Awalwarna : Tcolor Read EAwalwarna Write SetAwalwarnai Property Akhirwarna : Tcofor Read fakhirwarna write SetAkbirwarna, Property OnPaint : TNotifyEvent Read EonPaint Write FonPaint, Property Aign, Property Bevelnner,' Property Bevelouteri Property BevelWidth; Property Borderstyle;
39 40 41" 42 43 44 45 46 47 48 49 50 s1 tro JL 53 54 qq 56 57 58 59 50 67 62 53 64 6s 66 67 58 69 70 77 t/.?3 tq, 75 -t 6 77 78 79 80 81 82 83 84 85 86 81 88 B9 90 91 92 93 94 95 96 97 98 99 100 101 ta2 103 LA4 10s 106 'Property BorderWidth; end; procedure Register; implementation constructor TGradasi. create (Aowner: TComponent ) ; nherited Create (Aowner) ; Contro1Style: =ControlStyle+ [ csreplicatable ] ; Align: =altop; Height::100; : FAwalWarna: =cwhi te; FAkhi rwarna : =e1 B ack ; Procedure TGradasi. paint; Var : fnteger; Rt, GL, B1 : Byte; R2, G2,82 : Byte; Rx, Gx, Bx : ntegeri With nherited Canvas Do Begln WarnaKeRGB ( FAwa1Warna, R1, GL, 81 ) ; WarnaKeRGB ( FAkhirWarna, R2, G2, 82 i ; For f::0 To Height-L Do Rx::Round(R1+ ( (/ (Heighr-1) ) * (R2-R1) ) ); Gx::Round(G1+ (, lf / (Height-1) ) * (G2-G1t ) ); Bx::Round(81+ ( fi/ (Height-1)) * (F,2-e1)) ) ; Brush. Color : :RGBKeWarna ( Rx, Gx, Bx ) ; FillRect (Rect (0, f,wicith, i1)) ; End ; f Assigned (FOnPalnt) Then FOnpainr-- (SeLf i ; Procedure TGradas i. WarnaKeRGB ( Wa rna : TCo 1 c r ; Va r R, G, B : Byt e ) ; R: =Warna And $000000FF; G::Warna And $0000pF.00 Shr B; B: =Warna And $00FF0000 Shr 16; Function TGradasi. RGBKewarna (R, G, B: Byte) : TColor,. Result:= (R+G*$100+e*$10000) And $OOFFFFFF; End,. Procedure TGradasi. setawalwarna (Awalwarna: TColor) ; FAwalWarna : :Awa1V[arna,. fnvalidate; Procedure TGradasi. SetAkhirWarna (Akhirwarna : TColor) ; FAkhi rwarna =Akhi rwa rna ; fnvalidate; procedure Register,. begin RegisterCcmponents (' CLfcK', TGradasi ] ) ; end;.. Ke halaman berikutnya...
Setelah menyelesaikan unit ini, kita dapat melakukan pengujian komponen tersebut. Kemudian mendaftarkannya ke ComPonent Palette. Carany&, pilih menu eomponent [nstall ComPonent dan isi kotak dialog nstall Component" Apabila Delphi telah selesai mengkompilasi ulang ComPonent Palette, kita dapat menggunakan komponen Gradasi Warna ini hanya dengan mengklik mouse pada komponen baru tersebut dan menempatkannya pada form yang sedang kita rancang. Berikut ini adalah contoh tampilan form saat perancangan setelah dibubuhi komponen Gradasi Warna, dengan warna awal: cla7ile, warna akhir: clgre n, dan align: alclient. Gambar 1. Forml yang dibubuhi gradasi \Yarna dengan warna awalaqua dan warna akhir Green Kemungkinan Pengembangan GRADAS.PAS Yang dibahas dalam tulisan ini adalah contoh yang sederhana, karena hanya mampu membuat gradasi warna dengan perubahan gradasr vertikal. Kita dapat komponen ini secara lurus mengembangkan sendiri sesuai
keinginan. Misalny&, untuk membuat gradasi warna secara lurus horisontal, warna yang bergradasi dari suatu pusat lingkaran ke arah keliling lingkar&r, dari pusat bujur sangkar bergradasi ke arah sisisisinya, atau gradasi untuk bentuk segi banyak yang lain. Selamat berkreasil Daftar Pustaka 1. Delphi 3 Help, Borland nternationalnc.,lgg7 2. Jogiyanto HM Teori dan Aplikasi Program Komputer bahasa Pascal Jilid, cet.v, Andi Offset, Yogyakarta, t993 3. Pranata, A., Pemrograman Borland Delphi, penerbit AND, yogyakarta 1997