![]() |
|
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 SubPrivate 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.