Komponen gradasi warna untuk form dalam Borland Delphi dirancang untuk memberi kesan artistik dan menghindari kesan monoton. Komponen ini dapat membuat gradasi warna secara vertikal dari warna awal ke akhir. Komponen ini dapat dikembangkan lebih lanjut untuk membuat gradasi warna dengan pola yang berbeda seperti secara horizontal, lingkaran, atau bentuk geometri lain.
Menyiapkan Kuis pada Pembelajaran Berbasis Web Menggunakan CMS Moodle
MERANCANG KOMPONEN GRADASI WARNA FORM PADA BORLAND DELPHI
1. MERANCANG KOMPONEN GRADASI WARNA
FORM
PADA BORLAND DELPHI
Oleh: Ipin B. A. dan Carwoto*)
Program aplikasi dengan beberapa form
yang warnanya sama, terkesan monoton.
sedangkan program aplikasi d.engan warna form
jika pilihan warnanya tidak tepat,
berbeda-beda,
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
Gambar
l. Kotak Dialog Komponen
Expert
dari form dengan wama tunggal tertentu
ke form lain dengan warna tunggal lainnya sec ara
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
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.
bagaim
Perancangan Komponen
Langkah pertama yang harus dilakukan
dalam merancang komponen adalah memilih
menu Eile I New I 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.
perlahan.
Ada komponen pada Component Palette
Borland Delphi yang sudah memiliki properti
gradasi warna,
yaitu komponen
TChart.
Sebagai contoh, Pilihlah kotak Class
Name dengan "TGradasi" dan Ancestor type
dengan oTCustomPanel". Pada kotak palette
t
') Ipin Bustanul AriJin, Carwolo,keduanya adalah mahasiswa Program
Studi Teknik Elektro
Fakultas Teknik Universitas Diponegoro, Semarang.
i{,
;
i
4,
ffi-^--!^-r
41
2. Komponen TGradasi
Page, pilihlah halaman dimana komponen akan
Kita
dapat memilih
sembarang
diletakkan.
halaman yang terdapat pada Component Palette
seperti Standard, Data Access, Data Controls, dan
seterusnya. Dalam contoh
ini
komponen
diletakkan pada halaman "CLIcK".
Bila Kita mengklik button Create Unit,
maka Delphi akan membuat kerangka unit untuk
menuliskan kode-kode program. Untuk membuat
komponen Gradasi Warna Form, ketikkan kode-
kode program seperti yang dapat dilihat
listing GRADASI.PAS di bawah ini" "Procedure
Register" seperti terlihat pada baris nomor 102105 akan otornatis dibuat setelah kita mengklik
button Create Unit. Prosedur ini mendaftarkan
kelas TGradasi ke Component Palette bagian
''CLIcK". Tanpa pendaftaran ini, komponen
tersebut tidak akan muncul pada Component
pada
yang
alTop, tinggi : I00, 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 Iisting
program GRADASI.PAS selengkapnya.
Palette.
Listing GRADASI.PAS
1
2
3
4
Pascal/I)elphi
- Turbo
: Gradasi Warna Form
: GRADASI. PAS
: 1998, CLIcK Software
/ /erogram
/ /vite
/ /copyright
House.
5
5
-l
I
9
1-0
l_1
uSes
L2
windows, Messages,
1_3
Extctrfs;
L4
L5
16
L7
pr j.vate
1B
FAwalwarna
19
20
2L
22
23
Sysutifs, Classes, Graphics, controls, Ilolms, Dialogs,
type
Tcradasi = class (TcustomPanel)
:
Tco1or;
FAkhirlilarna : TCoIori
FonPaint : TNotifyEvent,
Procedure SetAwalwarna (Awai.walna:TColor),
Proceciure SeE.Akhirwarna (Akhlrwarna : TColor)
;
protected
26
public
Constructox Create (Aowner:Tconponent) i Overridei
Destructor Destroyi Overridei
21
28
Procedure
Procedure
24
25
29
I
I
30
31
32
33
34
J5
36
37
38
Paint,
or,zerridei
WarnaKeRGB (Warna
RcBKewarna (R,G, B:
:
Tcolor,'var
R, G, B:
Byte ) ,
Byte) :Tcoloft
Eunction
published
Property Awalwarna : Tcolor Read EAwalwarna Write SetAwalwarnai
Property Akhirwarna : Tcofor Read fAkhirwarna write SetAkbirwarna,
Property OnPaint : TNotifyEvent Read EonPaint Write FonPaint,
Property AIign,
Property BevelInner,'
Property Bevelouteri
Property BevelWidth;
Property Borderstyle;
akan
dirancang ini berupa custom panel dengan align:
3. 39
40
'Property BorderWidth;
end;
41"
42
procedure Register;
43
44
45
implementation
46
constructor TGradasi . create (Aowner: TComponent ) ;
47
48
49
50
s1
tro
JL
53
54
qq
56
57
58
Begin
Inherited Create (Aowner)
Align: =alTop;
Height::100;
Procedure TGradasi . paint;
Var I
G2,82 : Byte;
R2,
Rx, Gx,
66
67
58
69
70
77
t/.
: fnteger;
Rt, GL, B1 : Byte;
50
67
62
53
64
:
FAwalWarna: =cIWhi te;
FAkhi rWarna : =e1 BI ack ;
End;
59
6s
;
Contro1Style: =ControlStyle+ [ csReplicatable ] ;
Begin
Bx : Integeri
With Inherited Canvas
Do
Begln
WarnaKeRGB ( FAwa1Warna, R1, GL, 81 ) ;
WarnaKeRGB ( FAkhirWarna, R2, G2, 82 i
For f::0 To Height-L
;
Do
Begin
Rx::Round(R1+ ( (I/ (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, Ii1)) ;
?3
End ;
tq,
End;
75
-t
6
77
78
79
80
If Assigned (FOnPalnt) Then
End;
Procedure TGradas i
Begin
R:
.
FOnpainr-- (SeLf i ;
WarnaKeRGB
(
Wa
rna
: TCo 1 c
r ; Va r R, G, B : Byt
=Warna And $000000FF;
81
82
83
84
85
G::Warna And $0000pF.00 Shr
86
Begin
81
88
Result:= (R+G*$100+e*$10000) And
B: =Warna
End;
B;
And $00FF0000 Shr 16;
Function TGradasi.
RGBKewarna (R, G, B:
End,.
Byte) : TColor,.
$OOFFFFFF;
B9
90
91
92
93
94
95
96
Procedure TGradasi. setAwalwarna (Awalwarna: TColor)
Begin
fnvalidate;
End;
Procedure TGradasi . SetAkhirWarna (Akhirwarna : TColor)
97
98
99
Begin
100
101
End;
ta2
103
LA4
10s
106
;
FAwalWarna : :Awa1V[arna,.
FAkhi rWarna I =Akhi rWa rna ;
fnvalidate;
procedure Register,.
begin
RegisterCcmponents (' CLfcK', ITGradasi ] ) ;
end;
Ke halaman berikutnya.
.
..
.
;
e);
4. 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 Install
Component"
selesai
Apabila Delphi telah
mengkompilasi ulang ComPonent
Palette, kita dapat menggunakan
ini hanya
mengklik mouse pada
dengan
komponen baru tersebut dan
menempatkannya pada form yang
sedang kita rancang. Berikut ini
adalah contoh tampilan form saat
komponen Gradasi Warna
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
GRADASI.PAS Yang dibahas
dalam tulisan ini adalah contoh yang
sederhana, karena hanYa mamPu
membuat gradasi warna
dengan
perubahan
gradasr
secara lurus
vertikal.
Kita dapat mengembangkan
komponen ini sendiri sesuai
5. 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.
2.
3.
Delphi 3 Help, Borland InternationalInc.,lgg7
Jogiyanto HM Teori dan Aplikasi Program Komputer bahasa Pascal Jilid I,
cet.v, Andi Offset, Yogyakarta, t993
Pranata, A., Pemrograman Borland Delphi, penerbit ANDI, yogyakarta 1997