Campo di applicazione e vita utile delle variabili

From Apache OpenOffice Wiki
Jump to: navigation, search

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