DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Syntaxe WLangage / Déclaration des variables
  • Présentation
  • Variable globale
  • Variables globales à un projet
  • Variables globales à une fenêtre
  • Variables globales à un état
  • Variables globales à une collection de procédures
  • Comment utiliser une variable globale depuis un composant
  • Variable globale : Syntaxe
  • Déclarer une ou plusieurs variables globales
  • Variable locale
  • Variable locale : Syntaxe
  • Déclarer une ou plusieurs variables locales
  • Variables locales et globales zombie
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
Les variables peuvent être de deux types :
  • Variable locale : utilisable uniquement dans le traitement dans lequel cette variable a été déclarée.
  • Variable globale : utilisable dans tous les traitements dépendant du traitement dans lequel cette variable a été déclarée.
Important : Il ne faut pas déclarer deux variables avec le même nom (notamment une variable globale et une variable locale).
Variable globale

Variables globales à un projet

Les variables globales déclarées dans l'événement "Initialisation" d'un projet peuvent être utilisées dans tous les événements ou traitements :
  • du projet.
  • de la fenêtre ou de la page (événements de la fenêtre ou de la page, de ses champs et des procédures locales associées).
  • de l'état (événements de l'état, de ses champs et des procédures locales associées).
WINDEV Mobile

Variables globales à une fenêtre

Les variables globales déclarées dans l'événement "Déclarations globales" d'une fenêtre peuvent être utilisées dans tous les événements ou traitements :
  • de la fenêtre.
  • des champs de la fenêtre.
  • des procédures locales associées à la fenêtre.
Limites :
  • Les variables globales d'une fenêtre ne peuvent pas être utilisées par ses fenêtres soeurs.
  • Les variables globales déclarées dans une fenêtre fille ne peuvent pas être utilisées dans sa fenêtre mère.
  • Lorsque la fenêtre dans laquelle la variable a été déclarée est fermée, cette variable ne peut plus être utilisée.
Remarque : Utilisation d'une variable globale dans une fenêtre fille de la fenêtre de déclaration
Les variables déclarées globales dans une fenêtre sont visibles dans les fenêtres filles de cette fenêtre dans les cas suivants :
  • Si le mot-clé Externe est utilisé pour déclarer la variable dans la fenêtre fille.
  • Si le nom de la variable est préfixé par le nom de la fenêtre.
  • Si la variable est passée en paramètre à la fenêtre fille.
iPhone/iPadWidget IOSMac Catalyst

Variables globales à un état

Les variables globales déclarées dans l'événement "Ouverture" d'un état peuvent être utilisées dans tous les événements ou traitements :
  • de l'état.
  • des champs de l'état.
  • des procédures locales associées à l'état.

Variables globales à une collection de procédures

Les variables globales déclarées dans l'événement "Déclaration" d'une collection de procédures peuvent être utilisées dans tous les événements ou traitements :
  • des différentes procédures de la collection.
  • du projet en cours.

Comment utiliser une variable globale depuis un composant

Le but du composant étant généralement d'être autonome, il n'est pas recommandé d'utiliser une variable globale du projet depuis celui-ci.
La méthode recommandée est cependant la suivante :
  • créez une variable globale dans le composant.
  • créez dans le composant une procédure permettant d'initialiser ces variables globales.
  • depuis l'événement "Initialisation" du projet, et à chaque modification de la valeur des variables globales du projet, appelez cette procédure pour affecter une valeur similaire aux variables globales du composant.
Variable globale : Syntaxe

Déclarer une ou plusieurs variables globales

GLOBAL
<Variables globales>
Détail de la syntaxe
GLOBALDébut de déclaration des variables globales.
<Variables globales>Variables globales à déclarer.
Remarque : Le mot-clé GLOBAL peut être remplacé par le mot-clé GLOBALE ou GLOBALES.
GLOBAL // Toutes les déclarations qui suivent sont des variables globales
Indice est un entier
NomClient est une chaîne
Taux est un réel

LOCAL // Toutes les déclarations qui suivent sont des variables locales
I est un entier 
PrénomClient est une chaîne
Prix est un monétaire
Variable locale
Les variables locales peuvent être utilisées uniquement dans les événements ou traitements dans lesquels elles sont déclarées. En dehors de ces événements ou traitements, les variables locales sont inconnues. Ces variables ne pourront pas être partagées par plusieurs événements ou traitements.
Par défaut, lors de sa déclaration, une variable est locale.
Variable locale : Syntaxe

Déclarer une ou plusieurs variables locales

[LOCAL]
<Variables locales>
Détail de la syntaxe
LOCALDébut de déclaration des variables locales. L'utilisation du mot-clé LOCAL est optionnelle.
<Variables locales>Variables locales à déclarer.

Remarque : Le mot-clé LOCAL peut être remplacé par le mot-clé LOCALE ou LOCALES.
LOCAL // Toutes les déclarations qui suivent sont des variables locales
I est un entier
PrénomClient est une chaîne 
Prix est un monétaire
// Toutes les déclarations qui suivent sont des variables locales
I est un entier
PrénomClient est une chaîne 
Prix est un monétaire
Variables locales et globales zombie
Une variable locale ou globale peut devenir obsolète. Il est ainsi possible de savoir que cet élément ne doit plus être utilisé (mais il n'est pas encore supprimé).
Pour déclarer une variable comme étant obsolète, il suffit d'utiliser l'attribut d'extension <Zombie>.
La syntaxe est la suivante :
<Nom Variable> est un <type de la variable> <zombie [commentaire = "texte"]>
Dans cette syntaxe, le mot-clé optionnel commentaire permet d'indiquer le texte qui sera affiché dans l'erreur de compilation associée à la variable obsolète.
Exemple :
PrénomClient est une chaîne <zombie commentaire = "Ne plus utiliser - utiliser la structure Client">
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
En réponse à JP Block
Toute variable passée en paramètre à une procédure est par défaut passée par adresse. Ce qui signifie que si cette variable est modifiée dans la procédure, elle est donc également modifiée dans le code appelant.
On peut ainsi considéré que la variable est globale, tout du moins entre le code appelant et la procédure elle-même.

Pour passer des paramètres par référence (copie), il suffit soit d'entourer la variable par des parenthèses dans le code appelant lors de l'appel à la procédure ou (et c'est mieux) utiliser le mot clé LOCAL dans la déclaration des paramètres de la procédure. Ainsi, la variable passée en paramètre sera uniquement locale à la procédure. De cette façon, les modifications apportées sur cette variable dans la procédure ne seront pas reportées dans le code appelant.
Maax°(51)°
01 avr. 2010
Variable définie dans une procédure globale
En l'absence de précision, il semble qu'une variable passée à une procédure globale soit Locale à cette procédure.

Cela semble contraire avec une recommendation (blog ?) sur le typage et la définition comme Local des paramètres passés à une procédure globale.
Jean-Pierre BLOCH (
31 mar. 2010

Dernière modification : 17/05/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale