Selasa, 14 Juni 2011

Membuat Form dengan VB6


Untuk posting yang pertama kali, Saya ingin membagikan ilmu walaupun hanya sekadarnya. Semoga apa yang Saya sampaikan dapat bermanfaat. Amin ...
Pada kali pertama ini, Saya ingin memposting cara membuat Frame sendiri dengan menggunakan VB6. Biasanya apabila kita membuat suatu Aplikasi selalu menggunakan Frame atau Form yang telah disediakan oleh VB6. Namun, sebenarnya kita dapat membuat Form sendiri sesuai dengan kreatifitas dan kreasi kita.
Frame atau form yang Saya buat tampilannya sebagai berikut:
Kalau ingin tau langkah-langkahnya dan source kodenya, sebagai berikut:
Langkah ke 1
Buatlah beberapa gambar dalam format ”.gif” di photoshop atau aplikasi yang biasa anda gunakan. Ada beberapa gambar yang harus dibuat, yaitu:
1.      Header, nantinya akan dibuat menjadi header dari form atau frame yang kita buat. Contoh gambarnya seperti di bawah ini: 
2.      Garis tepi, nantinya akan dibuat menjadi garis dari form atau frame. Contoh gambarnya seperti di bawah ini:

3.      Garis bawah, nantinya akan dibuat menjadi garis tepi bawah pada form atau frame. Contoh gambarnya seperti di bawah ini:

4.      Pojok, nantinya akan di buat sebagai pojok kanan dan kiri bawah pada form atau frame. Contoh gambanya seperti di bawah ini:

*) Dalam pembuatan gambar-gambar tersebut disesuaikan dengan selera kita dan kreatifitas kita dalam mendesain gambar agar lebih menarik.

Langkah ke 2
Setelah gambar-gambar yang di butuhkan telah siap, selanjutnya kita buka VB6.
1.      Buatlah form dengan ”ActiveX Control” dan ganti nama Project1 menjadi ”buatframe”, BackColor = white.
2.      Insert gambar header, tepi, garis bawah, dan pojok yang telah dibuat menggunakan ’Image’ dan atur posisi sehingga menjadi sebuah form.
3.      Buatlah label dan ‘caption’ menjadi ‘buat frame’, kemudian visible = false
4.      Setelah semua objek telah dimasukkan di View Object, lalu klik menu 'View + Code'
kemudian copy paste Source code di bawah ini.

Option Explicit
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
    

Private Const HTCAPTION = 2
Private Const WM_NCLBUTTONDOWN = &HA1

Private Sub MoveForm(hWnd As Long)
    ReleaseCapture
    SendMessage hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0
End Sub

Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
        MoveForm Form1.hWnd
    End If
End Sub

Private Sub Image8_Click()
    Unload UserControl.Parent
    End
End Sub

Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
        MoveForm Form1.hWnd
    End If
End Sub

Private Sub UserControl_Resize()
    On Error Resume Next
    
    Dim helft As Long
    
    With UserControl
       
        Image3.Top = .Height - Image3.Height
        Image3.Left = .Width - Image3.Width
        Image4.Top = .Height - Image4.Height
        Image4.Width = .Width - Image3.Width
        Image4.Width = .Width - Image2.Width
        Image2.Left = 0
        Image2.Top = .Height - Image2.Height
        Image5.Left = 0
        Image5.Top = 200
        Image5.Height = .Height - Image2.Height
        Image6.Left = .Width - Image6.Width
        Image6.Top = 200
        Image6.Height = .Height - Image3.Height
        Image1.Top = 0
        Image1.Left = 0
        Image1.Width = .Width
        Image7.Top = Image1.Top - -Image1.Height
        Image7.Height = .Height - Image1.Height - Image7.Height
        Image7.Left = Image3.Left - -Image3.Width
        Image7.Width = .Width - Image3.Width - Image6.Width
    End With
End Sub

Public Property Get BackColor() As OLE_COLOR
    BackColor = UserControl.BackColor
End Property

Public Property Let BackColor(ByVal New_BackColor As OLE_COLOR)
    UserControl.BackColor() = New_BackColor
    PropertyChanged "BackColor"
    UserControl.Refresh
End Property

Public Property Get Caption() As String
    Caption = Label1.Caption
End Property

Public Property Let Caption(ByVal New_Caption As String)
    Label1.Caption() = New_Caption
    PropertyChanged "Caption"
    UserControl.Refresh
End Property

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
    UserControl.BackColor = PropBag.ReadProperty("BackColor", &H8000000F)
    Set Picture = PropBag.ReadProperty("Image", Nothing)
    Label1.Caption = PropBag.ReadProperty("Caption", "")
    Set Picture = PropBag.ReadProperty("Picture", Nothing)
    UserControl.Refresh
End Sub

Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
    Call PropBag.WriteProperty("BackColor", UserControl.BackColor, &H8000000F)
    Call PropBag.WriteProperty("Image", Picture, Nothing)
    Call PropBag.WriteProperty("Caption", Label1.Caption, "")
    Call PropBag.WriteProperty("Picture", Picture, Nothing)
    UserControl.Refresh
End Sub

Public Property Get Picture() As Picture
    Set Picture = Image7.Picture
    UserControl.Refresh
End Property

Public Property Set Picture(ByVal New_Picture As Picture)
    Set Image7.Picture = New_Picture
    PropertyChanged "Picture"
    UserControl.Refresh
End Property

5.      Kemudian, simpan user control tersebut. Setelah disimpan, pada jendela menu general akan tampil pilihan “buatframe” yang baru saja kita buat.



Langkah ke 3
Untuk menggunakan form atau frame yang baru saja kita buat, ikuti langkah-langkah berikut:
1.      Tambahkan 1 form, ubah BackColor menjadi white.
2.      Insert “buatframe”, nanti akan tampil frame yang telah kita buat tadi dalam form1.
3.      Buatlah 2 buah tombol commandbutton. Commandbutton1 ganti ‘caption’ menjadi ‘x’ dang anti warna menjadi merah dan commadbutton2 ganti ‘caption’ menjadi ‘-‘ dan ganti warna menjadi biru.
*) commadbutton yang saya gunakan yaitu menggunakan commadbutton dari “OseanXPButton”
4.       Kemudian tambahkan source code berikut:


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

Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long

Private Sub Form_Load()
Call MakeRoundObject(Form1, 30)
End Sub

Private Sub OsenXPButton1_Click()
Unload Me
End Sub

Private Sub OsenXPButton2_Click()
Me.WindowState = vbMinimized
End Sub

'pojok form tidak siku
Private Sub MakeRoundObject(objObject As Object, Value As Long)
Static lngHeight, lngLong, lngReturn, lngWidth As Long
lngWidth = objObject.Width / Screen.TwipsPerPixelX
lngHeight = objObject.Height / Screen.TwipsPerPixelY
SetWindowRgn objObject.hWnd, CreateRoundRectRgn(0, 0, lngWidth, lngHeight, Value, Value), True
End Sub


Selamat mencoba dan semoga di postingan yang pertama ini dapat bermanfaat bagi pembaca semuanya.



0 comments:

Posting Komentar

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Sweet Tomatoes Printable Coupons