Home, Forum diskusi, Chatting, Download


Latihan 1

Judul : Memanfaatkan HScrollBar dan VScrollBar untuk membuat gambar yang dapat bergeser.

Trik : Untuk membuat gambar yang dapat bergeser anda perlu menanamkan sebuah kontrol image, kontrol VscrollBar dan HScrollBar diatas sebuah kontrol Picture. Jadi dalam hal ini kontrol Picture bertindak sebagai kontainer.

Kontrol Properti Value
Picture1 Name picBingkai
Image1 Name imgGambar
HScroll1 Name HScroll
VScroll1 Name VScroll

Membuat Sub StatusBingkai yang berfungsi membuat ukuran Picturebox sama dengan ukuran Form sebelah dalam (ScaleWidth, ScaleHeight) dengan menggunakan Metoda Move. Dan membuat kontrol imgGambar rapat kiri atas terhadap kontainernya (0,0)

Private Sub StatusBingkai()
PicBingkai.Move 0 , 0, Me.ScaleWidth , Me.ScaleHeight
ImgGambar.Move 0, 0
End Sub

Membuat Sub AturScrollBar yang berfungsi menentukan keaktifan tampilan dari VScroll dan HScroll. Adapun syarat penampilan dari kedua kontrol tersebut adalah :

HScroll, jika ukuran lebar gambar (imgGambar.Width)  > ukuran tinggi bingkai (PicPingkai.Width)

VScroll, jika ukuran tinggi gambar (imgGambar.Height)  > ukuran tinggi bingkai (PicPingkai.Height)

Private Sub AturScrollBar()
If ImgGambar.Width > PicBingkai.ScaleWidth Then      'Jika gambar lebih lebar dari pada bingkai
   HScroll.Visible = True                            'aktifkan horizontal scrollbar
Else
   HScroll.Visible = False                            
End If
If ImgGambar.Height > PicBingkai.ScaleHeight Then    
   VScroll.Visible = True
Else
   VScroll.Visible = False
End If
End Sub

Membuat Sub StatusHScroll yang berfungsi  mengatur penempatan HScroll pada picturebox (Left dan Top) dan ukuran dari HScroll (Width), serta Min, Max, SmallChange dan LargeChange.

Private Sub StatusHScroll()
If ImgGambar.Width > PicBingkai.ScaleWidth Then
   HScroll.Left = 0
   HScroll.Top = PicBingkai.ScaleHeight - HScroll.Height
   If ImgGambar.Height > PicBingkai.ScaleHeight Then
      HScroll.Width = PicBingkai.ScaleWidth - VScroll.Width
   Else
      HScroll.Width = PicBingkai.ScaleWidth
   End If
   HScroll.Min = 0
   HScroll.Max = (ImgGambar.Width - HScroll.Width) - 1
   HScroll.SmallChange = HScroll.Max \ 50
   HScroll.LargeChange = HScroll.Max \ 10
End If
End Sub

Membuat Sub StatusVScroll

Private Sub StatusVScroll()
If ImgGambar.Height > PicBingkai.ScaleHeight Then
   VScroll.Top = 0
   VScroll.Left = PicBingkai.ScaleWidth - VScroll.Width
   If ImgGambar.Width > PicBingkai.ScaleWidth Then
      VScroll.Height = PicBingkai.ScaleHeight - HScroll.Height
   Else
      VScroll.Height = PicBingkai.ScaleHeight
   End If
   VScroll.Min = 0
   VScroll.Max = (ImgGambar.Height - VScroll.Height) - 1
   VScroll.SmallChange = VScroll.Max \ 50
   VScroll.LargeChange = VScroll.Max \ 10
End If
End Sub

Melakukan Koding terhadap Event Change pada VScroll dan HScroll, yang berfungsi mengatur Top dan Left dari imgGambar terhadap kontainernya, dimana adalah jika pemakai melakukan geser kebawah, maka imgGambar perlu digeser keatas ( -VScroll.Value), dan jika pemakai melakukan geser kekanan, maka imgGambar perlu digeser kekiri (-HScroll.Value)

Private Sub VScroll_Change()
ImgGambar.Top = -VScroll.Value      'Berlawanan arah
End Sub
Private Sub HScroll_Change()
ImgGambar.Left = -HScroll.Value     'Berlawanan arah
End Sub

Melakukan koding terhadap Event Form Resize

Private Sub Form_Resize()
Call StatusBingkai
Call AturScrollBar
Call StatusVScroll
Call StatusHScroll
End Sub

Untuk melakukan percobaan terhadap project ini anda perlu menentukan gambar yang berukuran besar pada imgGambar.

 


Dibuat  oleh hendra@indoprog.com
Medan - Sumatera Utara
Indonesia