10.18. Protsedura va funksiyaning harakat sohasi
Protsedura va funksiyalar faqat ikita darajali harakat sohasiga ega:Modul darajasi va loyiha darajasi.
Loyiha darajasi yashirincha foydalaniladi. Shunday qilib protsedura yoki funksiya ixtiyoriy boshqa protsedura yoki funksiya orqali chaqirilishi mumkin bu loyihada.
Protsedura va funksiya tavifida loyiha darajasida nomajburiy kalit so‘zi Publicdan foydalanish mumkin. Bu so‘zning bor yoki yo‘qligi ta’sir ko‘rsatmaydi.
Agar faqat modul darajasida protsedura tavsif etilishi kerak bo‘lsa buning uchun kalit so‘zi Private qo‘llaniladi. E’tiborga oling, bunday tavsif faqatgina protseduraning harakat sohasini toraytiribgina qolmay, lekin va uning mustaqil protsedura sifatida foydalanishni taqiqlaydi-uni faqat boshqa protseduradan chaqirish mumkin. Nixoyat, protsedura yoki funksiyaning tavsifida kalit so‘zi Static dan foydalanish mumkin. Bu hech protsedura harakat sohasiga ta’sir qilmaydi, lekin hamma o‘zgaruvchiga ta’sir qiladi, shu protsedura yoki funksiyaning ichida tavsif qilingan.
Bu xolatda hamma lokal o‘zgaruvchilar Static statusini oladi va shu bilan protsedura tugagandan so‘nguning xotirasida qoladi va chaqirilganda avvalgi qiymatini saqlab qoladi.
Quyidagicha boshlanadigan modul misolini ko‘rib chiqamiz:
Public Al As String Private A2 As Integer
Dim A3 As Single
Sub Prod ()
Dim A4 As Integer
Static A5 As Integer
Al = "Tekstovaya stroka 1"
A2= 2
A3 = 3.14
A4 = A4 + 4
A5 = A5 + 5
MsgBox A4
MsgBox A5
End Sub
Sub Proc2 () Procl
MsgBox Al
MsgBox A2
MsgBox A3
MsgBox A4
MsgBox A5
Procl End Sub
Bu misolda o‘zgaruvchi A1 butun loyiha darajastda aniqlangan(kalit so‘zi Public foydalanilgan) o‘zgaruvchilar A1 va A3 modul darajasida aniqlangan,, o‘zgaruvchi A4 faqat protsedura Proc1, darajasida, o‘zgaruvchi A5 protsedura tanasida aniqlangan Proc1, lekin statik o‘zgaruvchidek tavsif qilingan.
Protsedura Proc2 chaqirilganda quyidagi sodir bo‘ladi: bu protseduradan o‘z naVBtida protsedura Proc1 chaqiriladi, u hamma 5 o‘zgaruvchining kuymatini tayinlaydi A1, A2, A3, A4, A5 so‘ng o‘zgaruvchi A4 va A5 -ning joriy qiymatini ko‘rsatadi dialog oynasida.
Bu protseduraning yakunidan so‘ng o‘zgaruvchining joriy qiymati A1-A5 protsedura Proc2 dan chiqariladi.
Bunda o‘zgaruvchilar A1-A3 o‘z qiymatlarini saqlab qoladi, chunki ular modul darajasida tavsif etilgan o‘zgaruvchilar A4 va A5 esa bo‘sh qiymat qabul qiladi, chunki bu o‘zgaruvchilarning harakat sohasi protseduradir, ular u yerda foydalaniladi. Protseduralar birining ichidagi bu o‘zgaruvchilarning o‘zgarishlari shu o‘zgaruvchilarga mos boshqa protseduralardagi o‘zgaruvchilarga bog‘liq emas-aslini olganda bular xar xil o‘zgaruvchilardir, faqatgina ularning nomlari bir xil. so‘ngProc1 protsedurasini yana bir chaqirilish codir bo‘ladi va u yana A4 A5 qiymatini o‘zgartirib ekranga chiqaradi.
Bunda o‘zgaruvchi A4 yana 4 qiymatini oladi, chunki protseduraning yangi chaqirig‘ida bu o‘zgaruvchi uchun boshqatdan xotira ajratiladi va u initsiyalizatsiyalanadi bo‘sh qiymatda.
A4 dan farqliroq o‘zgaruvchi A5-statik o‘zgaruvchidek tavsif etilgan, o‘zining oldingi qiymatini saqlaydi. Protseduraning oldingi chaqirig‘idan, buning oqibatida uning qiymati qayta chaqiriqda 10ga teng bo‘ladi.
Dostları ilə paylaş: |