Membuat Efek Blow Saat Form di Load dan di Close

Kali ini Admin akan berbagi sebuah kode untuk membuat Animasi Form dengan Efek Blow saat form di Load dan di Close.

Efek ini akan menampilkan denyutan Form dengan kedipan background hitam yang terlihat dalam sekian detik.

Untuk membuatnya perhatikan langkah-langkah berikut :

  1. Buka Form VB 6
  2. Tambahkan 1 Command Button (Caption: "Close")
  3. Tambhakan 1 buah Module
  4. Pada Module1 ketik kode dibawah ini :

Option Explicit

Type RECT

  Left As Long

  Top As Long

  Right As Long

  Bottom As Long

End Type

 

Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long

Declare Function SetBkColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long

Declare Function Rectangle Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long

Declare Function SelectObject Lib "user32" (ByVal hdc As Long, ByVal hObject As Long) As Long

Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

Public Const IMPLODE_EXPLODE_VALUE = 1500   'you can change the value


Kemudian pada bagian Form ketik kode berikut :

 
Sub ExplodeForm(f As Form, Movement As Integer)
    Dim myRect As RECT
    Dim formWidth%, formHeight%, i%, X%, Y%, Cx%, Cy%
    Dim TheScreen As Long
  Dim Brush As Long
  GetWindowRect f.hwnd, myRect
    formWidth = (myRect.Right - myRect.Left)
    formHeight = myRect.Bottom - myRect.Top
      TheScreen = GetDC(0)
    Brush = CreateSolidBrush(f.BackColor)
    For i = 1 To Movement
        Cx = formWidth * (i / Movement)
        Cy = formHeight * (i / Movement)
        X = myRect.Left + (formWidth - Cx) / 2
        Y = myRect.Top + (formHeight - Cy) / 2
        Rectangle TheScreen, X, Y, X + Cx, Y + Cy
    Next i
  X = ReleaseDC(0, TheScreen)
    DeleteObject (Brush)
End Sub
 
Public Sub ImplodeForm(f As Form, Movement As Integer)
    Dim myRect As RECT
    Dim formWidth%, formHeight%, i%, X%, Y%, Cx%, Cy%
    Dim TheScreen As Long
    Dim Brush As Long
    GetWindowRect f.hwnd, myRect
    formWidth = (myRect.Right - myRect.Left)
    formHeight = myRect.Bottom - myRect.Top
    TheScreen = GetDC(0)
    Brush = CreateSolidBrush(f.BackColor)
    For i = Movement To 1 Step -1
        Cx = formWidth * (i / Movement)
        Cy = formHeight * (i / Movement)
        X = myRect.Left + (formWidth - Cx) / 2
        Y = myRect.Top + (formHeight - Cy) / 2
        Rectangle TheScreen, X, Y, X + Cx, Y + Cy
    Next i
    X = ReleaseDC(0, TheScreen)
    DeleteObject (Brush)
End Sub

Private Sub Command1_Click()
    Call ImplodeForm(Me, IMPLODE_EXPLODE_VALUE)
    End
    Set Form1 = Nothing
End Sub
   
Private Sub Form_Load()
    Call ExplodeForm(Me, IMPLODE_EXPLODE_VALUE)
End Sub

Lalu simpan dan jalankan Program Anda, lihat hasilnya.

No comments: