Home, Forum diskusi, Chatting, Download


Latihan 1

Judul : Membuat Picture Viewer

Tanamkan pada form anda kontrol-kontrol berikut : DriveListBox, DirListBox, FileListbox, Line, dan Image

Kita perlu mempersiapkan beberapa variabel Form Level yang dapat digunakan oleh semua Sub yang ada, adapun variabel tersebut adalah :

Dim LebarTempatGambar As Integer    'Untuk menyimpan lebar tempat Gambar yang tersedia
Dim TinggiTempatGambar As Integer   'Tinggi Gambar
Dim PosisiKiriGambar As Integer     'Posisi kiri tempat Gambar
Dim PosisiAtasGambar As Integer     'Posisi atas tempat Gambar

Selanjutnya kita buat sebuah Sub untuk menentukan posisi dan ukuran masing-masing kontrol diatas form ketika ukuran Form berubah :

Private Sub HitungPosisi()
MyDrive.Top = 0                     'Kontrol Drive Rapat
MyDrive.Left = 0                    'Kiri atas Form
MyDrive.Width = 2500
MyDir.Top = MyDrive.Height          'Kontrol Dir berada dibawah
MyDir.Left = 0                      'kontrol Drive dan rapat kiri
MyDir.Width = 2500
MyDir.Height = Me.ScaleHeight \ 3   'Tingginya 1/3 tinggi form
MyFile.Top = MyDir.Top + MyDir.Height    'Kontrol File berada dibawah kontrol Dir
MyFile.Left = 0
MyFile.Width = 2500
MyFile.Height = Me.ScaleHeight - MyDrive.Height - MyDir.Height  'Tingginya adalah tinggi sisa setelah Drive dan Dir
Pemisah.Y1 = 0                      'Garis Pemisah Antara Drive, Dir, File dengan Gambar
Pemisah.Y2 = Me.ScaleHeight
Pemisah.X1 = MyDrive.Width + 1      'Berada disamping kanan kontrol Drive
Pemisah.X2 = MyDrive.Width + 1
PosisiAtasGambar = 0                'Hitung Tempat sisa untuk Gambar
PosisiKiriGambar = Pemisah.X1 + 50
TinggiTempatGambar = Me.ScaleHeight
LebarTempatGambar = Me.ScaleWidth - PosisiKiriGambar
End Sub

Kita juga perlu membuat sebuah Sub yang berfungsi membuat tampilan Gambar berada ditengah kalau ukurannya lebih kecil dari tempat gambar yang tersedia.

Private Sub BuatGambarKeTengah()
If Gambar.Width < LebarTempatGambar Then        'Jika lebih sempit
   Gambar.Left = PosisiKiriGambar + (LebarTempatGambar - Gambar.Width) \ 2
Else
   Gambar.Left = PosisiKiriGambar               'Rapat kiri
End If
If Gambar.Height < TinggiTempatGambar Then
   Gambar.Top = PosisiAtasGambar + (TinggiTempatGambar - Gambar.Height) \ 2
Else
   Gambar.Top = PosisiAtasGambar
End If
End Sub

Selanjutnya kita lakukan koding pada Event Load untuk membatasi jenis file yang ditampilkan pada FileListBox:

Private Sub Form_Load()
'Batasi hanya file Grafik
MyFile.Pattern = "*.bmp;*.gif;*.jpg;*.wmf;*.ico"
End Sub

Lakukan koding untuk Event Resize pada Form untuk memposisikan ulang semua kontrol kalau terjadi perubahaan ukuran Form :

Private Sub Form_Resize()
Call HitungPosisi            'Hitung ulang posisi dan ukuran
Call BuatGambarKeTengah      'Buat grafik ke tengah kalau lebih kecil dari tempat gambar
End Sub

Lakukan koding pada Event DriveListBox, DirListBox, FileListBox

Private Sub MyDrive_Change()
MyDir.Path = MyDrive.Drive
End Sub
Private Sub MyDir_Change()
MyFile.Path = MyDir.Path
End Sub
Private Sub MyFile_Click()
Dim fName As String
If Right(MyFile.Path, 1) = "\" Then      'Kalau sudah ada backslash
   fName = MyFile.Path & MyFile.FileName
Else
   fName = MyFile.Path & "\" & MyFile.FileName  'Tambahkan \
End If
Gambar.Visible = False                   'Sembunyikan Gambar
Gambar.Picture = LoadPicture(fName)      'GantiGambar
Call BuatGambarKeTengah                  'Buat ketengah kalau lebih kecil dari tempat gambar
Gambar.Visible = True                    'Tampilkan
End Sub

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