Campo di applicazione e vita utile delle variabili

From Apache OpenOffice Wiki
Jump to: navigation, search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Una variabile in Apache OpenOffice Basic ha una vita utile limitata e un campo di applicazione limitato in cui può essere letta e utilizzata in altri frammenti di programma. Il tempo di conservazione di una variabile e le posizioni da cui è accessibile dipendono dalla posizione specificata e dal tipo.

Variabili locali

Le variabili dichiarate in una funzione o procedura sono denominate variabili locali:

Sub Test
  Dim MyInteger As Integer
  ' ...
End Sub

Le variabili locali rimangono valide solo finché la funzione o la procedura sono in esecuzione e quindi sono riportate a zero. Ogni volta che la funzione viene chiamata, i valori generati in precedenza non sono disponibili.

Per conservare i valori precedenti, dovrete definire la variabile come Static:

Sub Test
  Static MyInteger As Integer
  ' ...
End Sub
Documentation note.png A differenza di VBA, Apache OpenOffice Basic assicura che il nome di una variabile locale non sia utilizzato contemporaneamente come variabile globale e privata nell'intestazione del modulo. Quando si trasferisce un'applicazione VBA in Apache OpenOffice Basic, occorre modificare tutti i nomi di variabili duplicati.

Variabili pubbliche

Le variabili pubbliche sono definite nella sezione dell'intestazione di un modulo con la parola chiave Dim. Queste variabili sono disponibili per tutti i moduli nella loro libreria:

Modulo A:

Dim A As Integer
Sub Test
  Flip
  Flop
End Sub

Sub Flip
 A = A + 1
End Sub

Modulo B:

Sub Flop
  A = A - 1
End Sub

Il valore della variabile A non è modificato dalla funzione Test, ma è incrementato di 1 nella funzione Flip ridotto di 1 nella funzione Flop. Entrambe le modifiche alla variabile sono globali.

Per dichiarare un variabile pubblica potete utilizzare anche la parola chiave Public anziché Dim:

Public A As Integer

Una variabile pubblica è disponibile solo finché la macro associata è in esecuzione, poi la variabile viene ripristinata.

Variabili globali

Dal punto di visto della funzione, le variabili globali sono simili alle variabili pubbliche, eccetto che i loro valori vengono conservati anche dopo l'esecuzione della macro associata. Le variabili globali sono dichiarate nella sezione dell'intestazione di un modulo utilizzando la parola chiave Global:

Global A As Integer

Variabili private

Le variabili Private sono disponibili solo nel modulo in cui vengono definite. Utilizzate la parola chiave Private per definire la variabile:

Private MyInteger As Integer

Se diversi moduli contengono una variabile Private con lo stesso nome, Apache OpenOffice Basic crea una variabile diversa per ogni ricorrenza del nome. Nell'esempio seguente, i due moduli A e B presentano una variabile Private di nome C. La funzione Test imposta prima la variabile Private nel modulo A e quindi la variabile Private nel modulo B.

Modulo A:

Private C As Integer

Sub Test
  SetModuleA      ' Sets the variable C from module A
  SetModuleB      ' Sets the variable C from module B
  ShowVarA        ' Shows the variable C from module A (= 10)
  ShowVarB        ' Shows the variable C from module B (= 20)
End Sub

Sub SetmoduleeA
  C = 10
End Sub

Sub ShowVarA
  MsgBox C        ' Shows the variable C from module A. 
End Sub

Modulo B:

 
Private C As Integer
 
Sub SetModuleB
  C = 20
End Sub

Sub ShowVarB
  MsgBox C        ' Shows the variable C from module B.
End Sub
Content on this page is licensed under the Public Documentation License (PDL).


Personal tools