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). |