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 ? -