pemrograman api
DESCRIPTION
-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. - PowerPoint PPT PresentationTRANSCRIPT
-PERTEMUAN KEDUA-
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 penting-penting 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
benar-benar 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.TwipsPerPixelXpixYValue = twipYValue \ Screen.TwipsPerPixelY
twipXValue = pixXValue * Screen.TwipsPerPixelXtwipYValue = 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