pertemuan_kedua
Download
Report
Transcript pertemuan_kedua
-PERTEMUAN KEDUA-
PEMROGRAMAN API
Messages
Adalah cara dari Windows memberitahu
program anda bahwa terjadi sesuatu inputan
dan anda harus memprosesnya
Messages dari form anda dikirimkan ketika
user mengeklik button, menggerakkan
mouse keatasnya, ataupun mengetikkan
sesuatu.
Messages parameter
Semua Messages dikirimkan dengan
empat buah parameter, yaitu
Window handle adalah handle dari
window dari message
message identifier adalah tipe dari input
(klik, mouse, dll)
Messages parameter
Dua buah 32-bit (Long) values. adalah
informasi tambahan dari message.
Misalnya koordinat mouse
Messages behavior
Ketika message dikirimkan kepada user,
mungkin user tidak akan melihatnya.
Sebab message ditangkap oleh VB
Dibaca, kemudian disampaikan kepada user
dalam bentuk informasi yang pentingpenting saja
Dan dalam bentuk yang lebih baik
Messages behavior
Misal: ketika user menggerakkan mouse
melewati sebuah form, maka Windows
mengirim WM_MOUSEMOVE kepada
window tersebut,
VB mengambil message tadi dan
parameternya, kemudian mengeksekusi
kode yang berada dalam event
Button_MouseMove
Messages behavior
Dalam prosesnya, VB mengubah nilai 32-bit
kedua dari message (berisi koordinat x dan y
dalam pixel, masing-masing 16-bit) menjadi
dua type twips.
Messages Return Value
Sekarang, misalnya anda membutuhkan koordinat
pixel dari mouse. Padahal VB sudah
mengkonversinya menjadi twips. Mau tidak mau
anda harus mengubahnya kembali menjadi bentuk
pixels.
Hal yang aneh, sebab windows memberikan apa
yang anda butuhkan (pixel) namun VB mengubah
“seenaknya” menjadi bentuk lain (twips)
Messages Return Value
Pertanyaanya adalah bisakah saya
menghindari hal ini?.
Jawabnya adalah SubClassing.
Namun jangan dilakukan bila tidak benarbenar penting, sebab menyusahkan dan juga
melanggar konsep “safe programming” di VB
SendMessage
Anda bisa mengirimkan pesan kepada
window milik diri anda sendiri dengan
menggunakan fungsi SendMessage or
PostMessage
SendMessage Akan langsung
menyebabkan window memproses message
secepatnya
PostMessage
Sedangkan PostMessage akan
dimasukkan terlebih dahulu ke dalam
message queue sesudah message lainnya
sudah terproses
Anda harus menyebutkan window handle
yang akan anda kirimi message (message
identifier)
Bisa dilihat di VB API text Viewer
Some Windows Specifics
Windows mengenali semua form, control, menu,
menu item, atau apapun dengan melalui handle
Ketika aplikasi dijalankan, setiap control didalamnya
terdapat handle yang kemudian digunakan untuk
memisahkan button dari control-control selainnya
Bila ingin melakukan semua operasi dalam button
melalui API, anda harus menggunakan handle ini
Some Windows Specifics -2 Darimana mendapatkannya? VB telah
menyediakan property Hwnd untuk semua
control yang mempunyai handle dalam
windows
Windows berjalan dengan sistem pixel bukan
sistem twips.
Some Windows Specifics -3 Rumus pengkonversi dari twips ke pixels. dan
sebaliknya.
Menggunakan variabel TwipsPerPixelX dan
TwipsPerPixelY:
pixXValue = twipXValue \ Screen.TwipsPerPixelX
pixYValue = twipYValue \ Screen.TwipsPerPixelY
twipXValue = pixXValue * Screen.TwipsPerPixelX
twipYValue = pixYValue * Screen.TwipsPerPixelY
Some Windows Specifics -4 Windows menggunakan sistem koordinat
yang berbeda dalam function. Hati-hati
Syntax error pada bagian API call mungkin
menyebabkan VB menjadi crash. Hati-hati!
Some Windows Specifics -5 VB tidak bisa mendebug API, bila program
anda berjalan aneh ataupun crash, ceklah
bagian pemanggila API pada kode anda.
Misalnya kurang sintax ByVal. Salah
parameter, ataupun yang lainnya
Where to get the funs
descriptions from
Untuk mendapatkan penjelasan dari
function-function API, gunakan SDK help file
ataupun Microsoft SDK documentation
Beberapa dokumentasi disertakan langsung
dalam bundel. Misalnya di Borland Delphi 3.0
atuapun MS Visual C++.
Carilah di Internet
- QUESTION ? -