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.


Fery's


Posted in:

0 comments:
Posting Komentar