36-rasm. AutoPlay ishchi sohasida ob’yektlarning ko‘rinishiga bir
misol
227
2.3. AutoPlayda ssenariylar yozish
Agar ishchi sohadagi (aniqrog‘i sahifadagi) biror ob’yekt
bajarishi kerak bo‘lgan funksiyani xossalar panelidan foydalanib
belgilamoqchi bo‘lsak, u holda bitta ob’yekt uchun faqat bitta
funksiya biriktiriladi, xolos. Ammo real sharoitda bitta ob’yekt bir
nechta funksiyani bajarishiga zaruriyat tug‘ilib qolishi mumkin.
Bunday sharoitda vaziyatdan chiqish uchun xossalar panelidan
tanlangan funksiyani bekor qilish va har bir funksiya uchun alohida-
alohida ssenariy (script)lar yozish maqsadga muvofiq bo‘ladi.
Masalan, bir sahifaga audio musiqani qo‘yib, boshqa sahifaga
o‘tganda musiqani o‘chirish uchun uning “On Show” hodisasiga oid
quyidagicha ssenariyni yozish mumkin: Audio.Load(0, "AutoPlay//
Audio// 01.ogg", true, false);
Bunda: true – sahifa ochilishi bilan audio musiqa ishga
tushishini, false esa boshqa sahifaga o‘tganda bu audio musiqaning
davom etmasligi yoki takrorlanmasligini bildiradi .
Bundan tashqari, sahifaga Tree ob’yekti joylashtirilgan bo‘lishi
mumkin. U holda bu Tree ob’yektidan foydalanganda uning
tarmoqlarini ishga tushirish uchun quyidagi ssenariyni yozish mumkin:
if Tree.GetNode("Tree1", "1.1").Selected then
Page.Jump("PgWebMavzu1");
elseif Tree.GetNode("Tree1", "1.2").Selected then
Page.Jump("PgWebTest");
end
Bu ssenariyga binoan, Tree ob’yektining 1-darajali tarmog‘ida
turgan 1-satr belgilanib, sichqonchaning DoubleClick hodisasi
ishlatilsa, u holda “PgWeb Mavzu1” nomli sahifa yuzaga keladi.
Agar Tree ob’yektining 1-darajali tarmog‘ida turgan 2-satr
belgilanib, ikki marta sichqoncha chap tugmasi bosilsa (ya’ni
sichqonchaning DoubleClick hodisasi ishlatilsa), u holda “PgWebTest”
nomli sahifa yuzaga keladi.
Shuningdek, biror buyruq tugmasi (Button)ni bosish orqali biror
.exe faylni ishga tushirish kerak bo‘lsa, u holda ssenariy quyidagicha
yoziladi: Shell.Execute("AutoPlay\\Docs\\MyProg.exe", "", "",
228
SW_NORMAL, true);
Ba’zida turli variantlarda turli muloqot oynasini yuzaga
keltirishga oid tarmoqlanuvchi algortmni yozishga to‘g‘ri keladi.
Masalan, bosh sahifa ishga tushishidan oldin parol so‘ragan kabi
“InputBox” dastlab ekranga chiqishini xohlasangiz, u holda bosh
sahifaning “Preload” bandi uchun quyidagi scriptni yozish kifoya:
1. name = "";
2. while (name ~= "CANCEL") and (name == "") do
3. name=Dialog.Input("Diqqat", "Ismi sharifingizni
kiriting:");
4. if name == "" then
5. result=Dialog.Message("Xato!", "Ma’lumot
kiritmadingiz!", MB_OK, MB_ICONEXCLAMATION,
MB_DEFBUTTON1);
6. elseif name =="CANCEL" then
7. name=Dialog.Input("Personal Information", "Bu yerga
muallifning ismi sharifi kiritiladi:");
8. end
9. Paragraph.SetText("Paragraph5", name);
10. end
Ssenariy (Script) yozishda asosiy e’tibor ob’yekt ustida
yuzaga keladigan hodisaga qaratiladi. Masalan, Page ob’yektining
hodisalarini olib qaraylik: On Preload, On Show, On Close, On Timer,
On Audio, On Size, On Menu, On Key, On Mouse Button, On Mouse
Move.
Agar Page ob’yektining dastlabki yuzaga kelishidan oldin
biror hodisa bajarilishi kerak bo‘lsa, u holda ssenariy uning On
Preload hodisasi uchun yozilishi kerak bo‘ladi.
Sahifa yuzaga kelgan va ko‘rinishli holatga o‘tganda hodisa
yuz berishi kerak bo‘lsa, u holda uning On Show hodisasiga ssenariy
yoziladi.
Sahifa yopilishida yuz beradigan hodisa uchun ssenariy uning On
Close hodisasiga nisbatan yoziladi.
229
Sahifada biror ob’yekt holati muayyan vaqt oralig‘ida yuz
berishi kerak bo‘lsa, u holda uning On Timer hodisasi uchun kod
yoziladi. Har bir ob’yektning o‘ziga xos yuz beradigan hodisalari
mavjud. Bu hodisalarni quyidagi jadvaldan ko‘rishimiz mumkin:
230
AutoPlayda tayyorlangan va kompilyatsiya qilingan amaliy
dasturni klavishli boshqarish alohida ahamiyatga ega. Bunday
sharoitda uning har bir sahifasi uchun On Key hodisasiga nisbatan
kod yozilishi talab qilinadi. On Key hodisasi qaysi klavish
bosilganda, qaysi hodisa yuz berishi kerakligi bilan aniqlanadi. Faqat
klavishlarning maxsus kodlarini bilish bunda ishni yengillashtirishga
ancha yordam beradi.
Misol tariqasida [Ctrl] + [q] klavishlar birikmasini ishlatib,
dasturdan chiqishni, ya’ni dastur oynasini yopishni ta’munlaydigan
ssenariy kodini yozamiz:
if e_Key==(17 and 113) then
Application.Exit();
End
Bu yerda ASCII-jadvalga ko‘ra, 17 – [Ctrl] klavishining o‘nlik
sanoq sistemasidagi kod raqamini, 113 esa “q” harfining o‘nlik
sanoq sistemasidagi kod raqamini bildiradi. AutoPlayda har qanday
yaratilajak amaliy dasturlar uchun muloqot tizimini yo‘lga qo‘yishga
oid scriptlar ham yozish imkoniyati mavjud. Masalan, biror
buyruq tugmasining On Click hodisasi quyidagi kodni yozaylik (37-
rasm): Dialog.Message("Title", "Hello World");
Dostları ilə paylaş: |