Pesan,Obyek,Dan Properti

Pesan dalam Openscript

pesan memiliki dua macam pesan,bawaan (built-in)dan buatan (user-defined).pasan bawaan adalah pesan yang dikirim Toolbook secara otomatis untuk menanggapi suatu event ,seperti buttonclick,Mouse enter,dan Newpage.Pesan Buatan adalah pesan yang dibuat dan dikirm oleh anda.

Bekerja dengan pesan bawaan.

Toolbook mengirim suatu pesan bawaan setiap anda melakukan kegiatan yang berhubungan dengan pesan tersebut.Contoh Toolbook mengirimkan pesan buttonclick pada saat anda mengklik tombol kiri mouse.Toolbook mengirimkan pesan-pesan dengan jenis yang berbeda tergantung apa yang anda lakukan.
Anda dapat mengirimkan pesan bawaan secara eksplisit dengan perintah send.Contohnya ,bila anda ingin menigirmkan pesan Buttonclick kepada suatu tombol seolah-olah tombol itu anda klik dengan mouse,maka ketikkan pernyataan berikut pada command prompt :

send buttonclick to button "mulai"

Jenis-jenis pesan bawaan

Anda dapat membuat handler-handler untuk pesan bawaan dengan jenis-jenis sebagai berikut :

  • Menu event message : Dikirim ke halaman yang sedang aktif ketika suatu menu item dipilih dari menu bar pada level reader dan Author.Sebagai contoh bila anda memilih sebuah obyek pada level author ,lalu memilih menu item Group properties dari menu object,maka pesan properties akan dikirimkan ke halaman yang sedang aktif.
  • Mouse event message : Dikirim pada level Reader ketika tombol ketika tombol mouse ditekan atau kursor mouse bergerak melintasi suatu obyek. sebagai contoh,bila anda mengklik sebuah tombol,maka toolbook akan mengirimkan pesan MouseDown,MouseUp, dan Buttonclick ke tombol tersebut.
  • Keyboard event message : Dikirim pada level Reader ketika sebuah tombol pada keyboard ditekan.Contoh, bila pemakai menekan Tombol enter pada saat mengetik pada suatu field, Toolbook mengirimkan suatu pesan Keydown,Keychar,dan KeyUp ke field tersebut.
  • Enter/leave event message : Dikirim pada level reader atau author ke viewer,halaman,background, buku atau viewer ,menavigasikan ke halaman lain,atau meng-klik sebuah menu.pesan-pesan ini dikirm juga pada level reader kepada tombol,combobox,atau field ketika obyek menerima atau kehilangan fokus.sebagai contoh, bila pemakai menekan kunci Tab,untuk memindahkan fokus ke suatu field maka pesan enterfield dikirimkan ke field tersebut.bila pemakai mengklik field yang lain,maka toolbook akan mengirimkan pesan leaveField ke field yang ditinggalkan dan mengirimkan pesan enterfield ke field yang baru dituju.Toolbook juga mengirimkan pesan mouseenter ke field yang baru.
  • Notification Message : dikirm untuk memberitahukan sistem tentang event-event tertentu,seperti saat sebuah obyek dibuat,dihapus,atau dipindahkan.contohnya,bila anda mengambil sebuah field dari clipboard ke dalam buku,Toolbook mengirimkan pesan make a field yang baru.bila selama berada pada level Reader pemakai tidak melakukan apapun juga,maka toolbook akan mengirimkan pesan idle terus-menerus ke halaman yang sedang aktif.
  • Drag-and-drop message : Dikirm sebelum,selama ,dan setelah operasi drag-and-drop.Toolbook mengirimkan pesan beginDrag untuk menandakan dimulainya operasi drag,dan pesan endDrag untuk mengindikasikan bahwa pemakai telah melepas tombol muouse.Selama Operasi drag,Toolbook secara terus-menerus mengirim pesan enterDrop,StillOverDrop,dan leaveDrop ke obyek-obyek yang dilewati oleh kursor mouse.
  • Query message : Dikirimkan kepada sebuah obyek untuk menentukan status dari obyek atau nilai dari properti tertentu.Sebagai contoh,selama operasi drag-and-drop Toolbook menirimkan sebuah pesan pertanyaan allowDrop kepada setiap obyek yang berada dibawah kursor mouse untuk mengetahui apakah obyek akan menerima sebuah drop, yang pada gilirannya menentukan apakah Toolbook akan menampilkan gambar drag atau gambar no-drop.
  • DDE-event message : dikirm pada level Reader atau Author saat informasi dipertukarkan antar aplikasi melalui dynamic data exchange (DDE).sebagai contoh,jika sebuah contoh microsoft excel meminta data dari toolbook,pesan getRemote dikirim ke halaman yang aktif.
  • Standart message : dikirm pada level Reader untuk sistem Toolbook,contohnya autoScript dan Editscript.
Mengirim pesan buatan.

Pesan buatan memungkinkan anda membuat script untuk menyelesaikan suatu tugas khusus yang tidak disediakan oleh Toolbook. Mengirimkan pesan buatan mirip dengan memanggil suatu prosedur atau fungsi dalam bahasa pemrograman yang lain.

Anda dapat mengirimkan pesan buatan dengan perintah send. Anda juga dapat membuat mennu item yang mengirimkan pesan buatan.Sebagai tambahan untuk membuat pesan buatan , anda harus membuat handler yang akan menanggapi pesan tesubut.

Sebagai contoh, anda mungkin membuat sebuah halaman indeks pada aplikasi anda, kemudian menambahkan menu item bernama index ke menu page. Toolbook otomatis mengirim pesan index ke halaman pada saat pemakai memilih menu item ini, atau bila anda mengeksekusi perintah send index dari sebuah script. untuk menanggapi pesan yang dikirimkan , anda mungkin membuat handler seperti ini :

--letakkan handler ini pada script halaman,background atau buku
to handle index
go to page "index"
end

bila anda tidak membuat handler untuk pesan buatan, Toolbook akan menampilkan pesan kesalahan :
  • Untuk menu-event message yang berhubungan dengan menu item buatan,Toolbook menampilkan pesan yang menyatakan bahwa tidak terdapat handler yang menangani pesan buatan yang dikirm.
  • untuk pesan buatan lainnya,Toolbook menampilkan pesan excution suspended.
pesan - pesan buatan sangat efektif untuk membuat aplikasi yang bersifat modular,karena anda membuat masing-masing handler yang lebih mudah untuk dikodekan dan dipelihara.Sebagai contoh, untuk membuat handler enterBook yang efisien,anda dapat membuat handler-handler terpisah yang masing-masing menangani,misalnya,inisialisasi menu,merubah ukuran jendela,dan mengisikan nilai-nilai awal dari variabel.kemudian kirimkan pesan-pesan buatan ini dari dalam handler enterbook untuk menjalankan masing masing handler yang telah anda buat, daripada anda menuliskan keseluruhan pernyataan di dalam satu handler.Bentuk dari handler tersebut mungkin seperti ini :

to handle enterbook
forward
-- mengirimkan pesan-pesan buatan
send siapkanMenu
sen rubahUkuranWindow
send deklarasikanVariabel
end

Menempatkan Handler untuk pesan buatan

Anda dapat menempatkan handler untuk pesan buatan script dari obyek target atau dimana saja pada level yang lebih tinggi dari jenjang obyek.Gunakan tip berikut untuk membantu anda menentukan di level mana sebaiknya anda menempatkan handler yang menanggapi pesan tertentu :
  • Letakkan handler untuk pesan buatan pada script obyek target atau mana saja jenjang yang lebih tinggi.sebagai contoh,karena leavePage dikirmkan otomatis ke halaman,jangan menempatkan handler leavepage pada script sebuah tombol
  • Untuk memprogram kelakuan umum dari beberapa obyek , tempatkan pesan pada jenjang yang lebih tinggi.Contohnya,bila handler tersebut mengatur kelakuan dari beberapa obyek yang terletak pada halaman yang sama, letakkan pada script dari halaman tersebut, atau kelompokkan obyek-obyek tersebut,lalu letakkan handler pada script grup. cara ini memungkinkan anda untuk merubah ,menambah atau menghapus komponen-komponen halaman atau grup tanpa merubah masing-masing script obyek.sebagai contoh :
--handler yang menanyakan setiap kali akan berpindah
-- ke halaman berikutnya
to handle next
request "lanjutkan proses?" with "ya"or "tidak"
if it is "yes" then
end if
end
  • untuk memprogram kelakuan masing-masing obyek yang berbeda dalam menanggapi pesan yang sama,tempatkan handler pada script obyek.contohnya
-- handler pada tombol "maju"
to handle buttonClick
go nexy page
end

-- handler pada tombol "mundir"
to handle ButtonClick
go prev page
end
  • untuk menanggapi pesan lebh dari sekali, sehingga anda dapat mendefinisikan kelakuan umum dan khusus sekaligus, letakkan handler pada script obyek lalu teruskan pesan ke jenjang yang lebih tinggi dengan pernyataan forward.
Mengirimkan pesan dari dalam script

Gunakan perintah send atau forwarduntuk mengirimkan pesan walaupun tidak di aktifkan dari event yang biasanya menimbulkan pesan itu sendiri.
dengan mengirimkan pesan dari dalam script , anda dapat :
  • menjalankan handler untuk pesan-pesan buatan.
  • mengeksekusi script dari obyek-obyek yang disembunyikan.
  • menangani pesan lebih dari sekali.
  • mengirimkan menu message tanpa memilih menu item.
  • mengirimkan mouse atau keyboard message pada level author.
  • menirimkan enter/leave event message tanpa benar-benar melakukan navigasi.
  • meringkas handler agar lebih mudah dipelihara.
Gunakan perintah send untuk menjalankan handler dari script obyek yang aktif atau mengirimkan pesan ke obyek lainnya , termasuk obyek yang berada pada jenjang yang lebih rendah atau pada buku yang lain. sebagai contoh, send buttonClickto selection menjalankan setiap handler buttonClick yang terdapat pada masing - masing obyek yang sedang dipilih (selected). sedangkan send buttonclick to this page menjalankan handler buttonClik yang terdapat pada script halaman.Bila anda mengirim pesan pada send, ToolBook akan mengisi nilai properti target menjadi uniqueName obyek yang dikirim pesan tersebut.

Gunakan perintah Forward untuk melewatkan pesan yang aktif ke jenjang yang lebih tinggi. Sebagai contoh,perintah forward pada handler enterbook pada script halaman akan mengirimkan pesan enterbook ke background. Gunakan forward to system untuk melewatkan pesan langsung ke level sistem Toolbook ,meloncati obyek-obyek yang ada pada jenjang obyek. meneruskan pesan tidak merubah properti target.

Mengirimkan nama pesan sebagai variabel.

Anda dapat melewati pesan sebagai variabel.Untuk memaksa Toolbook mengenali bahwa anda ingin mengirimkan isi dari variabel, bukan nama dari variabel, tambahkan tanda kurung pada nama variabel yang berisikan pesan yang akan dikirim.contoh :

ask "pesan apa yang akan dikirm ?"
send (It)

Menggabti atau menonaktifkan pesan Bawaan.

karena pesan bergerak ke atas pada jenjang obyek sebelum mereka mencapai level sistem Toolbook,anda dapat mengganti pesan atau menonaktifkannya (disable) sekaligus. sebagai contoh , anda dapat menangkap pesan keyboard event dengan menuliskan handler untuknya, dan bila anda tidak melewatkan ke jenjang yang lebih tinggi.Toolbook tidak akan pernah menerima pesan ini. sebagai contoh :
  • Anda dapat menangkap pesan author dan menampilkan psan daripada berpindah langsung ke level Author :

to handle author
ask "Masukkan Password:"
if it is "Multimedia"
forward
end if
end author
  • Anda dapat menangkap pesan buttonCkick sehingga pesan tersebut tidak aktif :

to handle buttonClick
end
  • Anda dapat menangkap pesan keyboard event dan menggantikan karakter yang diketikkan, misalnya merubah dari huruf kecil ke huruf besar, sebelum meneruskan pesan:
to handle keyChar, key, isshift, is Ctrl
uppercaseKey uppercase (ansiToChar(key))
key = charToAnsi (uppercaseKey))
forward
end


Memakai parameter bersama pesan


Toolbook mengirimkan pesan bersama parameter yang mengandung informasi tambahan tentang pesan tersebut. Sebagai contoh, ToolBook menyertakan sebuah parameter lokasi penunjuk mouse bersama pesan bawaan buutonClick. Anda dapat menambahkan variabel parameter untuk menampung informasi tambahan inii. Contohnya adalah :

-- "lokasi" adalh variabel parameter yang menampung lokasi
-- penunjuk mouse.
to handle buuton Click lokasi
request "Anda m,eng-Klik di "&&lokasi
end

Saat anda mengirimkan sautu pesan bawaan atau pesan buatan dngan perintah send, anda dapat mengirim nilai bariabel sebagai parameter untuk pean tersebut. Parameter selalu ditempatkan setelah nama pesan dan bila terdapat lebih dari satu parameter, pisahkandengan koma :

Send bukaFile direktori, namafile

Pemberian nama untuk variabel parameter

Parameter merupakan tempat penampung, jadi tidak masalah nama apa yang diberikan, hanya posisi pada pernyataan to handle saja yang penting. Saat anda membuat variabel parameter, anda dapat memberi nama apa saja selama masih valid. Ia tidak perlu sama dengan nama parameter pada handler yang memanggil, tetapi harus pada posisi yang sama. Kedua pernyattan berikut ini adalah sama :

send bukaFile direktori, namaFile
send bukaFile pathName, fileName


Jangkauan parameter

Suatu parameter dilewatkan secara nilai, artinya ia merupakan salinan dari nilai yang terdapat pada handler yang memanggil. Parameter kemudian maenjadi variabel lokal pada tempat ia kirimkan. Bila anda merubah nilai dari parameter pada handler yang dipanggil, tidak akan mempengaruhi parameter bersangkutan yang terdapat pada handler yang memanggil.

MEndelaksaikan tipe data untuk parameter

Anda dapat menambahkan deklarasi tipe data untuk parameter pada pernyataan to handle. Seperti halnya mendelakrasikan tipe data untuk variabel, hal ini menjadikan parameter menjadi lebih efisien sebab ia hanya memerlukan sedikit memeori dan TollBook dan mengaksesnya lebih cepat. Saat anda mendeklarasikan tipe data untuk variabel, TollBook merubah variabel parameter menjadi tipe data yang sesuai, dan memakai tipe data tersebut sampai ke akhr handler, Sebagai Contoh :


to handle button Click point loc, logival is Shift, logical isCtrl
loc = mousePosition of this window
loc = "abc" -- akan menimbulkan kesalahan sebab tipe data salah
end


MEnghitung dan mendaftar parameter

Selain merujuk parametr dengan namanya, anda juga dapat merujuk parameter dengan beberapa cara :
  • Memakai variabel khusus argList : untuk memperoleh sebuah daftar parameter yang dilewatkan, kemudian merujuk kepada parameter sebagai sebuah item dari argList :
put item 3 of argList into field "parameters" of this page
  • Memakai variabel khusus argCount : untuk mendapatkan jumlah parameter yang dilewatkan untuk menentukan, misalnya, apakah jumlah parameter yang dibutuhkan telah terpenuhi.
  • Memakai itemCount(argList) : untuk mendapatkan jumlah item yang dilewatkan bersama pesan, dimana ia berbeda dengan memakai argCount. Sebagai contoh, bila sebuah pesan mempunyai sebuah parameter berupa lokasi penunjuk mouse, maka p[arameter akan mengandung suatu daftar yang terdiri dari dua bilangan. Dalam hal ini, itemCount9argList) menghasilkan nilai 2, tetapi nilai argCount adalah 1.

Bekerja dengan obyek dan properti sistem

Sebagai tambahan dari obyek-obyek yang anda buat, seperti tombol, field, halaman dan background, ToolBook memiliki sejumlah obyek sistem yang dapat anda manipulasi untuk merubah bagaimana penampilan dan kelakuan sistem ToolBook. Contoh obyek sistem adalah comman window, toolpalette, dan polygon plette.

Obyek sistem toolbook berbeda dengan obyek-obyek seperti tombol dan halaman karena anda tidak dapat membuat atau menghapusnya. Walaupun demikian, obyek sistem memiliki properti yang bisa anda dapatkan dan rubah nilainya. Sebagai contoh, anda dapat menampilkan atau menyembunyikan obyek sistem, merubah caption dan statsu bar, dan yang lainnya.

Berikut adalah nama-nama dati tipe obyek sistem ToolBook :


colorTray patternPalette statusControls
command window polygonpalette statusIndicators
lineEndsPalette status bar toolbar
linePalette statusBox toolpalette

Properti sistem mendefinisikan kelakuan mula-mula dari keseluruhan sistem toolbook atau mengenali obyek yang sedang menerima pesan. Dengan merubah nilai dari properti sistem tertentu anda dapat menentuan properti awal dari setiap obyek yang akan anda buat, mengatur margin dan properti pencetakkan, atau menentukan format dari nilai sistem seperti tanggal dan jam

Ada lima macam properti sistem :
  • General system properties : properti ini mmpengaruhi setiap buku yang dibuka aleh suatu sesi ToolBook. Misalnya, jika anda mengatur nilai properti sysTimeFormat pada handler enterBook di buku yang pertama anda buka, maka format tersebut akan dipakai oleh seluruh buku yang di buka kemudian, kecuali nilai properti tersebut dirubah lagi.
  • Event focus properties : properti seperti target, focus, targetWindow, focusWindow dan selection menunjukkan obyek mana yan sedang menerima pesan
  • Printer system properties : properti ini mempengaruhi bagaimana suatu buku dicetak. Sebagai Contoh, bila anda mengisi nilai properti printerBorders menjadi true, maka setiap halaman dan laporan yang dari buku dicaetak akan memiliki suatu bingkai (border) disekelilingnya.
  • International system properties : properti ini bis adopakai untuk secara otomatis memakai format-format lkal. Misalnya, properti sysDecimal mengatur karakter mana yang mnjadi karakter perintah bilangan pecahan.
  • Startup System Properties : properti ini mempengaruhi seluruh buku pada seluruh sesi ToolBook. Properti ini diatur pada file TOOLBOOK.INI

Mendefinisikan properti buatan

Anda dapat membuat suatu properti buatan untuk suatu obyek sehingga dapat memperluas cakupan data yang dikandung oleh suatu obyek. Misalnya, anda dapat menyimpan posisi halaman terakhir yang dikunjungi oloe pemakai aplikasi, sehingga pada saat pemakai terakhir tadi. Properti buatan ini dapat anda pakai sebagai penampung global, mirip sepertti variabel global. Tetapi, tidak seperti variabel global, propeti buatan akan tetap tersipan bersama dengan buku walaupun ditutup dan hanya diasosiasikan kepada suatu obyek.

Membuat properti buatan

Anda membuat properti buatan dengan memakai OpnScript seperti halnya pada properti bawaan. Bila nama properti yang anda buat belum ada, maka Toolbook otomatis membuatnya dan mengisinya dengan nilai yang anda spesifikasikan :

halamanTerakhir of this book = name of this page

Saat anda merujuk suatu properti buatan anda harus selalu menyertakan rujujkan kepada obyek yang memiliki properti tersebut. Bila tidak, ToolBook akan membuat suatu variabel lokal, bukan prperti buatan. Sebagai Contoh :

nama pembuat of this book = "ivan" --membuat properti buatan
namaPembuat = "ivan" --membuat variabel lokal



Mendapatkan nilai properti buatan

Anda mendapatkan nilai suatu properti buatan dengan cara yang sama anda mendapatkan nilai properti bawaan. Pernyataan berikut mengambil nilai properti buatan :

--meletakkan nilai properti pemakai ke variabel It
get namaPembuat Of this book

Menampilkan daftar properti buatan

Anda dapat memperoleh daftar dari properti buatan pada seluruh obyek dengan memakai properti userProperties. Properti yang dibuat lebih akhir akan ditampilkan lebih awal pada daftar. Contoh :

--menampilkan daftar properti buatan pada command window
put userproperties of this book


Menghapus properti buatan

Untuk membuang properti buatan dari daftar userproperties, isikan properti tersebut dengan nilai null. Sebagai contoh :

namaPembuat of this book = null


Membuat properti memakai Script

Anda dapat membuat properti dengan nilai-nilai yang ditentukan berdasarkan suatu handler yang anda buat. Handler ini dipanggil bila anda memakai perintah set atau get, sama seperti bila anda mengatur dan mendapatkan nilai properti bawaan.

Untuk membuat properti memakai scrip, tulislah sebuah handler to set. saat anda memakai perintah set untuk mengisikan nilai suatu properti, Toolbook menentukan apakah properti tersebut properti bawaan atau bukan, Jika ya, Toolbook akan mengisikan nilai yang diberikan kepada properti tersebut. Tetapi, jika properti tersebut bukan properti bawaan, Toolbook akan mengirimkan pesan kepada obyek target dan kemudian menelusuri jenjang obyek atas. Toolbook akan menjalankan handler to set yang sesuai dengan nama properti. Jika tidak terdapat handler yang sesuai, Toolbook akan membuat properti buatan dan mengisikan nilai yang diberikan kepadanya.


Membuat handler so set

Sintaks untuk handler to set adalah :

to set to
... -- statement berikutnya di sini
end

Jika anda memanggil handler dengan perintah set, nilai yang anda berikan untuk properti akan dilewatkan ke handler to set sebagai parameter . Sebagai contoh, handler to set berikut mendefinisikan properti yang bernama tekstur untuk mengisi suatu obyek atau background. Nilai yang munkin diisikan adalah bata, ombak, hati, atau kosong. Berdasarkan nilai yang ada berikan untuk properti tekstur, handler to set merubah pola dan warna dari target obyek menjadi sesuai dengan nilai yang baru.

to set tekstur to nNamaTekstur
obyekvalid = "ellipse, rectangle, polygon, pie," & \
"background , irregularPolygon, roundedRectangle"
if object cf target is not in obyekvalid
break
end if
conditions
when nNamaTekstur is "Bata"
pattern of target = 105
fillColor of target = red
when vNamaTekstur is "Ombak"
pattern of taget = 94
filColor of target = blue
when vNamaTekstur is " Hati"
pattern of target = 114
fillColor of targer = 300, 50, 100 -merah muda
when vNamaTekstur is "Kosong"
pattern of target = 254
fillColor of target =white
end contions
end tekstur


Contoh untuk memakai handler tersebut :

set tekstur of this background to "hati"


Mendapatkan suatu nilai properti dengan handler to get

untuk mendapatkan nilai properti yang dibuat dengan handler to set, buatlah suatu handler to get. Sintaks untuk handler ini adalah :

to get
-- perhitungan nilai disini
return
end

Contoh berikut mennujukkan handler to get yang bersesuaian dengan handler to set tekstur di atas :

to get tekstur
obyekValis = "ellipse, retangle, polygon, pie," &\
"background, irregularpolygon, rondedRectangle"
if object of target is not in obyekvalid
return null
end if
return pattern of target & "," & fillColor of target
end tekstur


Unuk memakai handler to get untuk properti yang dibuat dengan handler to set, Toolbook akan memberi nilai null.


Membuat notify handler

Notify handler adalah handler yang secara otomatis diberutahu (notified)
saat suatu pesan yang ditanganinya mencapai level hlaman. Normalnya obyek menerima pesan hanya jika obyek tersebut adalah obyek target dari aktifitas pemakai atau dari perintah send, atau bila handler lain meneruskan pesan tersebut kepadanya.


Anda dapat menggunakan dua macam notify handler, notifyBefore dan notifyAfter. NotifyBefore handler dijalankan sbelum pesan dikirim, sedang notifyAfter dijalankan sesudah pesan diirim. Bentuk penulisan ini sama dengan bentuk penulisan handler biasa, hanya pada awal handler, ganti pernyataan to handle dengan notifyBefore atau notifyAfter


notifyBefore enterpage
...
end

Contoh pemakaian handler ini adalah untuk menampilkan jam sistem. Letakkan handler berikut pada script suatu field :

notifyBefore idle
system oldTime
if OldTime is not sysTime then
my text = sysTime
oldTime =sysTime
end
end


date Jumat, 26 Maret 2010

0 komentar to “ ”

Leave a Reply: