Senin, 01 November 2010

Membuat Grafiti NAMA di VB 6.0



~ Contoh grafiti yang lain bisa dilihat disini

Bagaimana cara membuat gambar seperti di atas di VB 6.0?


Langkah – langkah pembuatannya adalah seperti berikut :
1. Membuat project baru bertipe exe di VB 6.0

2. Mengatur property object sebagai berikut

3. Menulis fungsi – fungsi yang saya ambil dari API Guide seperti di bawah ini

'Fungsi yang berguna untuk mengombinasikan region yang telah dibuat.
Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, _
ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
'Fungsi yang berguna untuk membuat region elips.
Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As Any, _
ByValnCount As Long, ByVal nPolyFillMode As Long) As Long
Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, _
lpPoint As Any, ByVal nCount As Long) As Long

'Fungsi yang berguna untuk membuat region berupa polygon.
Private Declare Function SetWindowRgn Lib "User32" (ByVal hWnd As Long, _
ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long

Fungsi yang berguna untuk membuat window region berupa pada sebuah window.
Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, _
ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Fungsi yang berguna untuk membuat window region berupa pada sebuah window.
Private Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, _
ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, _
ByVal Y3 As Long) As Long

'Fungsi yang berguna untuk membuat persegi dengan sudut yang tumpul(melengkung).
Private Declare Function ReleaseCapture Lib "User32" () As Long
Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) _
As Long

'Fungsi yang berguna supaya region yang sudah dibuat bisa digeser atau dipindah.
Const WM_NCLBUTTONDOWN = &HA1
Const HTCAPTION = 2
'Mendeklarasikan konstanta yang digunakan fungsi SendMessage
Dim lngReturnValue As Long

'Mendeklarasikan variable yang digunakan untuk melewatkan nilai dari fungsi SendMessage.
Private Type COORD
X As Long
Y As Long
End Type

'Mendeklarasikan variable yang nanti akan digunakan untuk melewatkan nilai dari fungsi CreatePolygonRgn

4. Menulis kode untuk region pada form load dengan menekan F7 atau klik dua kali pada form

'huruf N
'sebelah kiri
N0 = CreateRectRgn(0, 30, 60, 50) 'persegi atas
N1 = CreateRectRgn(10, 30, 60, 250) 'persegi bawah
N2 = CreateRectRgn(0, 230, 60, 280) 'persegi bawah
NumCoords = 3
poly(1).X = 0
poly(1).Y = 0
poly(2).X = 0
poly(2).Y = 230
poly(3).X = 30
poly(3).Y = 240
N4 = CreatePolygonRgn(poly(1), NumCoords, ALTERNATE) 'kiri luar
Nx = CreateRoundRectRgn(0, 260, 100, 300, 200, 200) 'lengkungan bawah
'sebelah kanan
N3 = CreateRoundRectRgn(50, 40, 190, 290, 300, 300) 'lengkungan bawah
N5 = CreateRoundRectRgn(68, 20, 191, 220, 200, 200) 'lengkungan atas
N6 = CreateEllipticRgn(60, 80, 150, 400) 'lengkungan dalam
N7 = CreateRectRgn(130, 270, 200, 320) 'kanan bawah
nNumCoords = 3
poly_n(1).X = 150
poly_n(1).Y = 150
poly_n(2).X = 130
poly_n(2).Y = 290
poly_n(3).X = 160
poly_n(3).Y = 270
N8 = CreatePolygonRgn(poly_n(1), nNumCoords, ALTERNATE) 'kanan dalam
n_NumCoords = 3
polyn(1).X = 130
polyn(1).Y = 290
polyn(2).X = 130
polyn(2).Y = 320
polyn(3).X = 200
polyn(3).Y = 320
N9 = CreatePolygonRgn(polyn(1), n_NumCoords, ALTERNATE) 'kanan bawah
N10 = CreateEllipticRgn(160, 250, 200, 290) 'lengkungan kanan bawah
'huruf I
i = CreateRectRgn(250, 100, 300, 250) 'persegi utama
I1 = CreateRectRgn(230, 240, 310, 260) 'persegi bawah
I2 = CreateRectRgn(230, 100, 300, 120) 'persegi atas
n = 3
i3(1).X = 230
i3(1).Y = 100
i3(2).X = 300
i3(2).Y = 85
i3(3).X = 300
i3(3).Y = 100
segiI3 = CreatePolygonRgn(i3(1), n, ALTERNATE) 'atas
a = 3
i4(1).X = 223
i4(1).Y = 103
i4(2).X = 230
i4(2).Y = 100
i4(3).X = 230
i4(3).Y = 120
segiI4 = CreatePolygonRgn(i4(1), a, ALTERNATE) 'kiri atas
I5 = CreateRectRgn(230, 210, 250, 250) 'lengkungan kiri
I6 = CreateEllipticRgn(200, 190, 251, 250) 'lengkungan kiri
O = CreateEllipticRgn(250, 50, 320, 80) 'titiknya
'huruf E
e = CreateRoundRectRgn(340, 90, 480, 260, 200, 100) 'dasarnya
E1 = CreateRoundRectRgn(365, 110, 440, 140, 405, 45) 'lubang atas
E2 = CreateRectRgn(380, 170, 500, 220) 'lubang bawah
E3 = CreateEllipticRgn(380, 190, 440, 250) 'lubang dalam bawah
E4 = CreateRoundRectRgn(390, 180, 480, 245, 100, 100) 'oval bawah
e5 = CreateRoundRectRgn(375, 155, 470, 180, 30, 30) 'lengkungan di bawah lubang
'huruf K
'sebelah kiri
K0 = CreateEllipticRgn(500, 30, 580, 280) 'oval kiri
k1 = CreateEllipticRgn(550, 30, 650, 280) 'oval kanan
c = 3
segi_k(1).X = 500
segi_k(1).Y = 30
segi_k(2).X = 590
segi_k(2).Y = 20
segi_k(3).X = 560
segi_k(3).Y = 70
k2 = CreatePolygonRgn(segi_k(1), c, ALTERNATE) 'pojok kanan atas
k3 = CreateRectRgn(480, 30, 560, 55) 'pojok kiri atas
k4 = CreateRectRgn(490, 250, 550, 280)
k5 = CreateEllipticRgn(440, 240, 575, 290) 'persegi kiri bawah
k6 = CreateEllipticRgn(440, 250, 600, 380) 'lengkungan bawah
k7 = CreateRectRgn(440, 240, 490, 290) 'potongan kiri bawah
k8 = CreateRectRgn(500, 40, 530, 130) 'lengkungan kiri atas
k9 = CreateRoundRectRgn(430, 40, 501, 80, 25, 25) 'persegi atas
'sebelah kanan atas
k10 = CreateRoundRectRgn(550, 90, 720, 250, 150, 150) 'lengkungan atas
k11 = CreateRoundRectRgn(570, 110, 700, 250, 150, 150) 'lengkungan bawah
k12 = CreateRectRgn(650, 165, 750, 185) '
k13 = CreateRectRgn(690, 140, 720, 170)
k14 = CreateEllipticRgn(620, 120, 720, 170) 'oval tengah
'sebelah kanan bawah
d = 3
segi_k15(1).X = 550
segi_k15(1).Y = 195
segi_k15(2).X = 900
segi_k15(2).Y = 171
segi_k15(3).X = 650
segi_k15(3).Y = 550
k15 = CreatePolygonRgn(segi_k15(1), d, ALTERNATE)
k16 = CreateRoundRectRgn(530, 170, 710, 310, 300, 100) 'lengkungan atas
k17 = CreateEllipticRgn(530, 190, 670, 270) 'lengkungan bawah
f = 3
segi_k18(1).X = 545
segi_k18(1).Y = 171
segi_k18(2).X = 520
segi_k18(2).Y = 240
segi_k18(3).X = 560
segi_k18(3).Y = 260
k18 = CreatePolygonRgn(segi_k18(1), f, ALTERNATE) 'kaki kiri sebelah kanan
k19 = CreateRectRgn(560, 260, 720, 390) 'di bawah kaki
k20 = CreateRectRgn(655, 230, 715, 300) 'persegi bawah
k21 = CreateRectRgn(640, 250, 720, 300) 'persegi bawah
g = 3
segi_k22(1).X = 655
segi_k22(1).Y = 230
segi_k22(2).X = 680
segi_k22(2).Y = 230
segi_k22(3).X = 680
segi_k22(3).Y = 225
k22 = CreatePolygonRgn(segi_k22(1), g, ALTERNATE) 'lengkungan kanan dalam
h = 3
segi_k23(1).X = 715
segi_k23(1).Y = 230
segi_k23(2).X = 700
segi_k23(2).Y = 230
segi_k23(3).X = 702
segi_k23(3).Y = 200
k23 = CreatePolygonRgn(segi_k23(1), h, ALTERNATE) 'lengkungan kanan luar
'huruf O
b11 = CreateEllipticRgn(740, 100, 920, 250) 'oval dasar
b12 = CreateRoundRectRgn(800, 100, 920, 210, 60, 60) 'kanan atas
b13 = CreateEllipticRgn(750, 140, 910, 210) 'lubang
'huruf W
'sebelah kiri
w1 = CreateRoundRectRgn(270, 350, 400, 600, 100, 100)
w2 = CreateEllipticRgn(240, 390, 370, 580)
w3 = CreateEllipticRgn(300, 370, 370, 580)
w4 = CreateRectRgn(340, 320, 365, 500)
w5 = CreateRectRgn(270, 330, 340, 370)
w6 = CreateRoundRectRgn(270, 350, 400, 300, 100, 100)
'pojok kiri atas
w = 3
segi_w7(1).X = 270
segi_w7(1).Y = 370
segi_w7(2).X = 230
segi_w7(2).Y = 450
segi_w7(3).X = 300
segi_w7(3).Y = 370
w7 = CreatePolygonRgn(segi_w7(1), w, ALTERNATE)
ww = 3
segi_w8(1).X = 340
segi_w8(1).Y = 347
segi_w8(2).X = 315
segi_w8(2).Y = 385
segi_w8(3).X = 350
segi_w8(3).Y = 370
w8 = CreatePolygonRgn(segi_w8(1), ww, ALTERNATE)
'sebelah kanan
w9 = CreateEllipticRgn(390, 370, 520, 580)
w10 = CreateEllipticRgn(390, 340, 490, 550)
'atas tengah
wat = 3
segi_w11(1).X = 420
segi_w11(1).Y = 340
segi_w11(2).X = 398
segi_w11(2).Y = 390
segi_w11(3).X = 365
segi_w11(3).Y = 353
w11 = CreatePolygonRgn(segi_w11(1), wat, ALTERNATE)
w12 = CreateRectRgn(365, 340, 420, 355)
w13 = CreateRoundRectRgn(390, 355, 430, 440, 100, 100)
'atas kanan
wak = 3
segi_w15(1).X = 475
segi_w15(1).Y = 375
segi_w15(2).X = 530
segi_w15(2).Y = 375
segi_w15(3).X = 500
segi_w15(3).Y = 410
w15 = CreatePolygonRgn(segi_w15(1), wak, ALTERNATE)
wak0 = 3
segi_w16(1).X = 495
segi_w16(1).Y = 390
segi_w16(2).X = 520
segi_w16(2).Y = 390
segi_w16(3).X = 510
segi_w16(3).Y = 425
w16 = CreatePolygonRgn(segi_w16(1), wak0, ALTERNATE)
'menggabungkan bangun
CombineRgn N1, N1, N2, 2
CombineRgn N1, N1, N3, 2
CombineRgn N1, N1, N4, 4
CombineRgn N1, N1, N5, 2
CombineRgn N1, N1, N6, 4
CombineRgn N1, N1, N7, 2
CombineRgn N1, N1, Nx, 4
CombineRgn N1, N1, N8, 2
CombineRgn N1, N1, N9, 4
CombineRgn N1, N1, w1, 2
CombineRgn N1, N1, w2, 2
CombineRgn N1, N1, w3, 4
CombineRgn N1, N1, w4, 4
CombineRgn N1, N1, w5, 2
CombineRgn N1, N1, w6, 4
CombineRgn N1, N1, w7, 4
CombineRgn N1, N1, w8, 4
CombineRgn N1, N1, w9, 2
CombineRgn N1, N1, w10, 4
CombineRgn N1, N1, w11, 2
CombineRgn N1, N1, w12, 2
CombineRgn N1, N1, w13, 4
CombineRgn N1, N1, w14, 2
CombineRgn N1, N1, w15, 2
CombineRgn N1, N1, w16, 4
CombineRgn N1, N1, N0, 2
CombineRgn N1, N1, i, 2
CombineRgn N1, N1, K, 2
CombineRgn N1, N1, K0, 2
CombineRgn N1, N1, k1, 4
CombineRgn N1, N1, k2, 2
CombineRgn N1, N1, k3, 2
CombineRgn N1, N1, k4, 2
CombineRgn N1, N1, k5, 2
CombineRgn N1, N1, k7, 4
CombineRgn N1, N1, k8, 2
CombineRgn N1, N1, k9, 4
CombineRgn N1, N1, k10, 2
CombineRgn N1, N1, k11, 4
CombineRgn N1, N1, k12, 4
CombineRgn N1, N1, k13, 4
CombineRgn N1, N1, k15, 4
CombineRgn N1, N1, k16, 2
CombineRgn N1, N1, k14, 2
CombineRgn N1, N1, k17, 4
CombineRgn N1, N1, k6, 4
CombineRgn N1, N1, k18, 2
CombineRgn N1, N1, k19, 4
CombineRgn N1, N1, k20, 2
CombineRgn N1, N1, k21, 4
CombineRgn N1, N1, k22, 2
CombineRgn N1, N1, k23, 2
CombineRgn N1, N1, e, 2
CombineRgn N1, N1, E1, 4
CombineRgn N1, N1, E2, 4
CombineRgn N1, N1, E3, 4
CombineRgn N1, N1, E4, 2
CombineRgn N1, N1, I1, 2
CombineRgn N1, N1, O, 2
CombineRgn N1, N1, I2, 2
CombineRgn N1, N1, segiI3, 2
CombineRgn N1, N1, segiI4, 2
CombineRgn N1, N1, N10, 4
CombineRgn N1, N1, I5, 2
CombineRgn N1, N1, I6, 4
CombineRgn N1, N1, e5, 4
CombineRgn N1, N1, b11, 2
CombineRgn N1, N1, b12, 2
CombineRgn N1, N1, b13, 4
SetWindowRgn Me.hWnd, N1, True
End Sub

End Sub

5. Simpan lalu jalankan program(tekan F5)

Source code komplit bisa didownload di http://www.ziddu.com/download/19099347/GrafitiNama.rar.html 

2 komentar:

  1. awawawaw...
    baru tau ane kalo VB 6 bisa dipakai bikin grafiti.. (O.o)
    coba ahh.. \(^o^)/

    BalasHapus
  2. model grafiti bisa bermacam-macam sesuai kreasi kita masing-masing.
    Hal ini bisa digunakan untuk mempercantik tampilan program

    BalasHapus