Tentu bukanlah sesuatu yang mustahil apabila kita mau belajar dan mencoba.
Apa fungsinya Form AutoResize?
Form dengan kemampuan autoresize dibuat dengan maksud agar form selalu kompatibel dengan ukuran resolusi monitor PC/Laptop apapun. Form ini cocok digunakan ketika kita ingin membuat form dengan tampilan fullscreen. Ketika project yang kita buat kita buka di PC dengan resolusi yang lebih tinggi, ukuran form tersebut akan dapat memnuhi layar monitor. Karena prinsip kerjanya adalah dengan mengukur ukuran resolusi layar monitor kemudian form di atur ulang ukuran tinggi dan lebarnya sesuai dengan ukuran resolusi layar monitor PC tersebut.
Bagaimana Cara Membuatnya?
1) Buat file database baru dengan Ms. Access 2010 / Ms. Access 2013 kemudian simpan.
2) Buat Form baru, misal kita beri nama AutoResize.
3) Atur Property Sheet Form AutoResize seperti berikut:
4) Pada Tab Other (Property Sheet), atur seperti berikut:
catatan: Semua pengaturan property tersebut bersifat optional. Yang paling penting adalah untuk Pop Up di setting Yes.
5) Buat Module baru dengan cara klik Tab Create dan Klik Module
Sehingga akan membuka jendela baru Microsoft Visual Basic For Application.
6) Ketik kode berikut di Module1
Option Compare Database
Option Explicit
Public Declare PtrSafe Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Public Declare PtrSafe Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hDC As Long) As Long
Public Declare PtrSafe Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Long, ByVal nIndex As Long) As Long
Public Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Public Const LOGPIXELSX = "88"
Public Const LOGPIXELSY = "90"
Public Const HORZRES = "8"
Public Const VERTRES = "10"
Public Const TWIPSPERINCH = "1440"
Catatan: Jika Anda menggunakan Ms. Office 64 Bit, kode PtrSafe jangan dihapus. Namun apabila Anda menggunakan Ms.Office 32 Bit, kode PtrSafe dihapus saja.
Kode di atas merupakan API dari Windows yang berfungsi untuk mengukur ukuran resolusi layar monitor yang dipakai. Ukuran yang didapatkan masih dalam ukuran pixels yang kemudian akan dikonvert ke twip.
Twip merupakan ukuran standar yang dipakai Ms. Access dalam menagtur posisi dan ukuran object.
1 cm = 567 twips
1 inci = 1440 twips
7) Tambahkan kode berikut untuk membuat fungsi ukurForm
Public Sub ukurForm(ByRef x As Variant, ByRef y As Variant)
Dim hDC As Long
Dim IngRetVal As Long
Dim varScreenX As Variant
Dim varScreenY As Variant
Dim varPTIX As Variant
Dim varPTIY As Variant
hDC = GetDC(0)
varScreenX = GetDeviceCaps(hDC, HORZRES)
varScreenY = GetDeviceCaps(hDC, VERTRES)
varPTIX = GetDeviceCaps(hDC, LOGPIXELSX)
varPTIY = GetDeviceCaps(hDC, LOGPIXELSX)
IngRetVal = ReleaseDC(0, hDC)
x = (varScreenX / varPTIX) * 72
y = (varScreenY / varPTIY) * 72
End Sub
Nilai x dan y sebelum dikonversi adalah satuannya pixel/point/titik. Nah untuk itu dikonversi ke dalam inch terlebih dulu.
1 point/pixel=1/72 inci
8) Ctrl+S. Simpan Module1 dengan nama AutoResize.
9) Tambahkan event procedure pada Load Event di form AutoResize yang kita buat tadi.
10) Pada Module Form_AutoResize tambahkan kode berikut:
Private Sub Form_Load()
Dim x As Variant
Dim y As Variant
ukurForm x, y
x = x * 20
y = y * 20
DoCmd.MoveSize 0, 0, x, y
End Sub
Hasilnya:
Penjelasannya:
-Ketika form AutoResize dibuka, akan terjadi Load, nah pada tahap inilah Load Event dijalankan.
-Ketika Load Event form Auto Resize dijalankan (Private Sub Form_Load() ... End Sub), fungsi ukurForm yang kita buat pada Module AutoResize akan dipanggil dan dijalankan.
-Dari menjalankan fungsi tersebut, akan diperoleh ukuran lebar (x) dan tinggi (y) dari resolusi layar yang kemudian di konvert ke twip.
-Baris kode ke dua dari bawah, yaitu
DoCmd.MoveSize 0,0,x,y
berfungsi untuk menentukan letak form (atas-bawah, kiri-kanan) serta lebar (x) dan tinggi (y) form.
Format fungsi tersebut adalah DoCmd.MoveSize Kiri,Atas,Lebar,Tinggi
Satuannya harus dalam twips.
-Jadilah ukuran Form AutoResize tampak penuh dilayar yang mulanya beukuran kecil.
11) Simpan dengan menekan Ctrl+S.
12) Keluar jendela Micorsoft Visual Basic For Applications.
13) Keluar dari Design View Form AutoResize dan buka Form AutoResize.
14) Lihat Hasilnya.
15) Coba Anda ubah resolusi layar monitor Anda dan buka lagi form tersebut, insyaAllah pasti akan nampak fullscreen.
16) Bonus contoh: Perbandingan 1:2 dengan auto centering. Buka Form AutoResize1banding2 jika Anda mendownload file latihan.
17) Untuk kode, lihat Module.
Selamat mencoba dan semoga bermanfaat :).
File latihan dapat di unduh pada tautan berkut:
Penulis : Trisna Novi Ashari - Universitas Negeri Semarang '11
Aset
ReplyDelete