Static


Syntax
Global[.<type>] <variable[.<type>]> [= <constant expression>] [, ...]
Description
Static permet de créer des variables locales persistantes dans une procedure. Les variables statiques sont prioritaires sur les variables globales, ce qui implique qu'une variable globale sera ignorée dans une procédure si une variable statique portant le même nom est déjà déclarée. La valeur de la variable statique n'est pas réinitialisée à chaque appel de la procédure: c'est donc un bon moyen pour avoir une variable globale affectée à une seule procédure.

Static peut aussi être utilisé avec les tableaux, les listes chaînées et les maps. Lors de la déclaration d'un tableau static, ses paramètres doivent être une valeur constante.

Exemple: Avec une variable

  Global a
  a = 10
  
  Procedure Change()
    Static a
    a+1
    Debug "Dans la Procédure: "+Str(a) ; Affichera 1, 2, 3 car la variable s'incrémente à chaque appel de la procédure.
  EndProcedure 

  Change()
  Change()
  Change()
  Debug a ; Affichera 10, car une variable 'static' n'affecte pas une variable 'global'.

Exemple: Avec un tableau

  Global Dim Tableau(2)
  Tableau(0) = 10
  
  Procedure Change()
    Static Dim Tableau(2)
    Tableau(0)+1
    Debug "Dans la Procédure: "+Str(Tableau(0)) ; Affichera 1, 2, 3 car la valeur du champ du tableau s'incrémente à chaque appel de la procédure.
  EndProcedure 
  
  Change()
  Change()
  Change()
  Debug Tableau(0) ; Affichera 10, car un tableau 'static' n'affecte pas un tableau 'global'.