Változók hatásköre és élettartama

From Apache OpenOffice Wiki
Jump to: navigation, search
Book.png


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
Documentation note.png A VBA-val ellentétben az Apache OpenOffice Basicben nem használható egy helyi változó neve globális vagy privát változó neveként a modulfejlécben. Ha VBA-alkalmazást viszünk át Apache OpenOffice Basicbe, minden azonos változónevet módosítanunk kell.

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