Változók hatásköre és élettartama
Az Apache OpenOffice Basicben a változóknak korlátozott élettartamuk van, és korlátozott hatáskörük, amelyben beolvashatók és használhatók más programrészekből. A változó élettartama és az, hogy honnan érhető el, az adott változó helyétől és típusától függ.
Helyi változók
A függvényben vagy eljárásban deklarált változókat helyi változóknak nevezik:
Sub Teszt Dim SajatEgesz As Integer ' ... End Sub
A helyi változók csak addig érvényesek, amíg az adott függvény vagy eljárás fut, utána az értékük visszaáll nullára. A függvény minden meghívásakor az előzőleg tárolt értékek már nem érhetők el.
Az előző értékek megtartásához a változót a Static típusúnak kell definiálni:
Sub Teszt Static SajatEgesz As Integer ' ... End Sub
Nyilvános változók
A nyilvános változók a modul fejlécében vannak deklarálva a Dim kulcsszóval. Ezek a változók a programkönyvtár összes modulja számára elérhetők:
A modul:
Dim A As Integer Sub Teszt Noveles Csokkentes End Sub Sub Noveles A = A + 1 End Sub
B modul:
Sub Csokkentes A = A - 1 End Sub
Az A változó értéke nem módosul a Teszt függvényben, de eggyel nő a Noveles függvényben, és eggyel csökken a Csokkentes függvényben. A változó módosításai globálisak.
Használhatjuk a Public kulcsszót is a Dim helyett a nyilvános változók deklarálására:
Public A As Integer
A nyilvános változók csak addig érhetők el, amíg az adott makró fut; utána a változó értéke alaphelyzetbe áll.
Globális változók
A funkciójukat tekintve a globális változók hasonlók a nyilvános változókhoz, kivéve, hogy az értékük akkor is megmarad, ha az adott makró befejeződik. A globális változókat a modul fejlécében kell deklarálni a Global kulcsszóval:
Global A As Integer
Privát változók
A privát változók csak abban a modulban érhetők el, amelyben definiálva vannak. A privát változók a Private kulcsszóval definiálhatók:
Private SajatEgesz As Integer
Ha több modul is tartalmaz azonos nevű Private változót, az Apache OpenOffice Basic a név minden előfordulásához egy másik változót hoz létre. A következő példában az A és B modulban is található egy Private, C nevű változó. A Teszt függvény először beállítja a Private változót az A modulban, majd a Private változót a B modulban.
A modul:
Private C As Integer Sub Teszt AModulBeallitasa ' Beállítja az A modul C változóját. BModulBeallitasa ' Beállítja a B modul C változóját. AValtozoMegjelenitese ' Megjeleníti az A modul C változóját (=10). BValtozoMegjelenitese ' Megjeleníti a B modul C változóját (=20). End Sub Sub AModulBeallitasa C = 10 End Sub Sub AValtozoMegjelenitese MsgBox C ' Megjeleníti az A modul C változóját. End Sub
B modul:
Private C As Integer Sub BModulBeallitasa C = 20 End Sub Sub BValtozoMegjelenitese MsgBox C ' Megjeleníti a B modul C változóját. End Sub
Content on this page is licensed under the Public Documentation License (PDL). |