Gradasi warna

Sebuah program yang baik bukan hanya bersifat mudah digunakan, dan mengutamakan efesiensi saja. Tetapi juga harus memperhatikan tampilan (interface) agar tampak lebih menarik. Salah satu cara mempercantik tampilan adalah memberikan efek gradasi warna pada form atau kontrol-kontrol lain.
Ketika Anda meng-install program Visual Basic, pernahkah Anda memperhatikan warna latar belakang yang ditampilkan? Tampak di sana sebuah form dengan warna gradasi dari biru ke hitam.
Teknik berikut ini adalah teknik mengubah warna form atau PictureBox menjadi gradasi.

Buat proyek baru! Tambahkan sebuah module, ketik kode ini:

Option Explicit

Declare Function GetSysColor Lib "user32" ( _
ByVal nIndex As Long) As Long

Sub GradientObject(Obj As Object, Jenis As Integer, _
Warna1 As Long, Warna2 As Long)
    Dim Y!, X!

    Dim sngMerah!, sngHijau!, sngBiru As Single
    Dim Merah%, Hijau%, Biru%
    Dim Merah2%, Hijau2%, Biru2 As Integer

    Dim Temp As Long

    Obj.AutoRedraw = True

    'Kalkulasi awal warna
    Temp = (Warna1 And 255)
    Merah = Temp And 255

    Temp = Int(Warna1 / 256)
    Hijau = Temp And 255

    Temp = Int(Warna1 / 65536)
    Biru = Temp And 255

    Temp = (Warna2 And 255)
    Merah2 = Temp And 255

    Temp = Int(Warna2 / 256)
    Hijau2 = Temp And 255

    Temp = Int(Warna2 / 65536)
    Biru2 = Temp And 255

    'Kalkulasi Warna
    If Jenis = 1 Then
        sngMerah = Abs(Merah - Merah2) / Obj.ScaleHeight
        sngHijau = Abs(Hijau - Hijau2) / Obj.ScaleHeight
        sngBiru = Abs(Biru - Biru2) / Obj.ScaleHeight
    Else
        sngMerah = Abs(Merah - Merah2) / (Obj.ScaleWidth)
        sngHijau = Abs(Hijau - Hijau2) / (Obj.ScaleWidth)
        sngBiru = Abs(Biru - Biru2) / (Obj.ScaleWidth)
    End If

    If Merah2 < Merah Then sngMerah = -sngMerah
    If Hijau2 < Hijau Then sngHijau = -sngHijau
    If Biru2 < Biru Then sngBiru = -sngBiru

        'Mulai mengcat Object
    If Jenis = 1 Then
            'Arah gradient vertikal
        For Y = 0 To Obj.ScaleHeight
            Merah2 = Merah + sngMerah * Y
            Hijau2 = Hijau + sngHijau * Y
            Biru2 = Biru + sngBiru * Y
            Obj.Line (0, Y)-(Obj.Width, Y), _
            RGB(Merah2, Hijau2, Biru2)
        Next Y
    Else
            'Arah Gradient Horisontal
        For X = 0 To Obj.ScaleWidth
            Merah2 = Merah + sngMerah * X
            Hijau2 = Hijau + sngHijau * X
            Biru2 = Biru + sngBiru * X
            Obj.Line (X, 0)-(X, Obj.Height), _
            RGB(Merah2, Hijau2, Biru2)
        Next X
    End If
End Sub

Tambahkan empat buah PictureBox di dalam form, Ketik kode di bawah ini pada form:

Private Sub Form_Load()
    'Gradasi warna arah vertikal
    'mengambil warna konstanta VB
    GradientObject Me.Picture1, 1, vbGreen, vbBlue

    'Gradasi warna arah horisontal
    'mengambil warna berdasarkan nilai Hexa
    GradientObject Me.Picture2, 0, &HFF, &HBBCCDD

    'Gradasi warna arah vertikal
    'mengambil warna system
    GradientObject Me.Picture3, 1, GetSysColor(&HFFFFFF And 2), _
    GetSysColor(&HFFFFFF And 15)

    'Gradasi warna arah horisontal
    'mengambil warna berdasarkan nilai RGB
    GradientObject Me.Picture4, 0, RGB(225, 100, 190), _
     RGB(125, 130, 190)
End Sub

Private Sub Form_Resize()
    'Gradasi warna arah vertikal
    'mengambil warna berdasarkan konstanta QBColor
    GradientObject Me, 1, QBColor(9), QBColor(0)
End Sub

Tampilan form:

Online  Free Image Share Hosting

Kode bisa dimbil di:


http://www.4shared.com/file/71707017/fae52c3b/35_Gradasi_warna.html

Perihal Novian Agung
Pengangguran

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: