Translate

Tuesday, August 23, 2016

PEMROGRAMAN API [Message]



PEMROGRAMAN API [Message]

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

No comments:

Post a Comment

silahkan membaca dan berkomentar