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:
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.
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