DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer une application ou un site / Champs, fenêtres et pages / Fenêtre
  • Evénements gérés par défaut
  • Evénements optionnels
  • Présentation
  • Evénement optionnel : Autorisation de fermeture
  • Evénement optionnel : Modification de la taille
  • Evénement optionnel : Prise de focus
  • Evénement optionnel : Perte de focus
  • Evénement optionnel : A chaque modification
  • Evénement optionnel : Mise au premier-plan de l'application sur la fenêtre
  • Evénement optionnel : Mise en arrière-plan de l'application depuis la fenêtre
  • Evénement optionnel : Changement d'agencement
  • Evénement optionnel : Application du thème clair/sombre
  • Evénement optionnel : Début de défilement
  • Evénement optionnel : Pendant le défilement
  • Evénement optionnel : Fin de défilement
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
Evénements associés aux fenêtres
Evénements gérés par défaut
WINDEV et WINDEV Mobile gèrent par défaut les événements suivants (ordre d'apparition sous l'éditeur de code) :
EvénementCondition d'exécution
Déclarations globalesDéclaration des variables globales à la fenêtre. C'est le premier code exécuté lors de l'ouverture de la fenêtre.
Fin d'initialisationExécuté lors de l'ouverture de la fenêtre.
L'ordre d'exécution des événements est le suivant :
  • Initialisation des champs de la fenêtre (*)
  • Initialisation de la fenêtre
  • Prise de focus
Remarque : Si du code de mise à jour de champs est mis dans cet événement, il peut apparaître un effet de clignotement. En effet, le code d'initialisation des champs est alors exécuté avant le code de mise à jour.
FermetureExécuté lors de la fermeture de la fenêtre.
Remarques :
  • Une reprise de saisie sur un des champs de la fenêtre dans ce code empêche la fenêtre de se fermer.
  • Si un champ Bouton de type "Abandon" est présent dans la fenêtre, lors de la fermeture de la fenêtre, seul le code de clic de ce bouton est exécuté.
Demande de mise à jour de l'affichagePermet de regrouper le code de mise à jour des champs de la fenêtre : contenu des champs, état (visible, grisé, ...), libellé à mettre à jour, ...
Cet événement peut attendre des paramètres. Il suffit de déclarer une procédure dans l'événement. Par exemple :
// Demande de mise à jour de l'affichage 
PROCÉDURE DemandeMiseAjour(TypeMiseAJour est un booléen)
Cet événement est lancé sur demande grâce aux fonctions :
Lors de l'appel de ces fonctions, il est possible de préciser la valeur des paramètres attendus par l'événement.
Universal Windows 10 AppAndroid Changement d'orientation
Exécuté lorsque l'utilisateur pivote l'écran. Il est par exemple possible de repositionner les champs lors du changement d'orientation de l'écran.
Fermeture d'une fenêtre fille de la fenêtreExécuté lors de la fermeture d'une fenêtre fille ouverte depuis la fenêtre en cours.
Il est possible de :
  • connaître le nom de la fenêtre fille fermée grâce à la propriété Nom.
  • récupérer la valeur de retour de la fenêtre fille grâce à la propriété ValeurRenvoyée.
Exemple :
// -- Fermeture d'une fenêtre fille de FEN_ListeCommande
// Actualise la liste des commandes si besoin
SI MaFenêtreFille.ValeurRenvoyée = Vrai ALORS
ListeCommande()
FIN
Le mot-clé MaFenêtreFille permet de manipuler les caractéristiques de la fenêtre fille.
Widget Android Rafraîchissement du Widget
Permet de mettre à jour le contenu du Widget. Cet événement est exécuté :
  • à l'ouverture d'une fenêtre de type Widget.
  • à intervalle de temps régulier. Cet intervalle est fixé dans l'onglet "Détail" de la fenêtre de description.
Remarque : La fonction WidgetAffiche provoque le réaffichage du Widget et l'exécution de l'événement de rafraîchissement.

(*) Par défaut, l'événement "Initialisation" de chaque champ est exécuté selon l'ordre de création des différents champs dans la fenêtre. Pour modifier cet ordre d'exécution :
  1. Sous le volet "Fenêtre", dans le groupe "Ordre", cliquez sur "Initialisation".
  2. Dans la fenêtre qui s'affiche, utilisez les flèches situées sur la droite pour modifier l'ordre d'initialisation des champs.
Attention : Si un ou plusieurs champs utilisent la persistance des champs, le code "A chaque modification" peut être exécuté lors de l'initialisation du champ. Pour plus de détails, consultez Persistance des champs.
Evénements optionnels

Présentation

Plusieurs événements optionnels peuvent être gérés. Pour ajouter un événement optionnel :
  1. Sélectionnez le champ voulu.
  2. Affichez la fenêtre de code de ce champ (touche F2).
  3. Cliquez sur le lien "Ajouter d'autres événements à xxx" situé à la fin de la fenêtre de code, après le dernier événement.
  4. La totalité des événements optionnels disponibles pour le champ est affichée.
  5. Cochez l'événement optionnel à ajouter et validez.
    Remarque : Il est possible de sélectionner plusieurs événements optionnels.
  6. L'événement optionnel sélectionné est automatiquement ajouté dans les événements gérés par le champ.
Pour désactiver un événement optionnel, il suffit d'effectuer les mêmes manipulations pour afficher la liste des événements optionnels. Il suffit ensuite de décocher les événements optionnels à supprimer.
Remarque : Si le code désactivé contient du code WLangage, ce code est automatiquement supprimé.
Il est ainsi possible de gérer par exemple :

Evénement optionnel : Autorisation de fermeture

Exécuté juste avant l'événement "Fermeture" de la fenêtre, cet événement permet par exemple de faire une vérification lors de la fermeture de la fenêtre.
Cet événement peut permettre :
  • de demander une confirmation,
  • d'empêcher la fermeture de la fenêtre. Il suffit pour cela d'utiliser la ligne de code suivante :
    RENVOYER Faux
Attention :
  • si un champ Bouton de type "Abandon" est présent dans la fenêtre, lors de la fermeture de la fenêtre, seul le code de clic de ce bouton est exécuté.
  • l'événement "Autorisation de fermeture" est exécuté uniquement lorsque la fermeture est déclenchée par la croix système de la fenêtre. Cet événement n'est pas exécuté lors d'un appel de la fonction Ferme.
iPhone/iPad Cet événement est automatiquement activé lors de l'utilisation d'une fenêtre en mode "Feuillet". Dans ce mode, un "swipe" vers le bas :
  • Exécute l'événement "Autorisation de fermeture".
  • Ferme la fenêtre si l'événement "Autorisation de fermeture" renvoie Vrai.

Evénement optionnel : Modification de la taille

Exécuté dans les cas suivants :
  • Iconisation de la fenêtre
  • Agrandissement ou changement de taille de la fenêtre
  • Restauration de la fenêtre après iconisation
Universal Windows 10 App Cet événement n'est pas disponible.

Evénement optionnel : Prise de focus

Exécuté lorsque la fenêtre prend le focus (la barre de titre est active) et qu'une autre fenêtre de l'application perd le focus :
  • l'utilisateur a cliqué sur une autre fenêtre de l'application
  • la fonction DonneFocusEtRetourUtilisateur a été exécutée depuis une autre fenêtre de l'application
Cet événement ne sera pas exécuté :
  • lors de l'ouverture de la première fenêtre du projet.
  • lors de l'exécution de la fonction OuvreFille, OuvreFenêtreMobile ou OuvreSoeur à partir de la fenêtre en cours.
  • si la fonction Ferme est appelée dans le code d'initialisation de la fenêtre.
  • si l'utilisateur clique sur une fenêtre d'un autre programme, puis reclique sur la fenêtre initiale.
Universal Windows 10 AppAndroidWidget Android Cet événement n'est pas disponible.

Evénement optionnel : Perte de focus

Exécuté lorsque la fenêtre perd le focus lors du passage à une autre fenêtre. Cet événement est toujours appelé avant l'événement de prise de focus d'une autre fenêtre dans les cas suivants :
  • fermeture de la fenêtre (avant l'événement de fermeture)
  • l'utilisateur a cliqué sur une autre fenêtre de l'application
  • la fonction DonneFocusEtRetourUtilisateur a été exécutée depuis une autre fenêtre de l'application
Cet événement ne sera pas exécuté :
  • si la fonction DonneFocusEtRetourUtilisateur vers une autre fenêtre a été exécutée dans le code d'initialisation de la fenêtre
  • si la fonction Ferme est appelée dans le code d'initialisation de la fenêtre
  • si l'utilisateur clique sur une fenêtre d'un autre programme, puis reclique sur la fenêtre initiale
Universal Windows 10 AppAndroidWidget Android Cet événement n'est pas disponible.

Evénement optionnel : A chaque modification

Exécuté lorsqu'un des champs de la fenêtre est modifié (saisie effectuée par l'utilisateur par exemple).
AndroidiPhone/iPadWidget IOSMac Catalyst

Evénement optionnel : Mise au premier-plan de l'application sur la fenêtre

Exécuté lorsque l'application est réactivée et passe au premier-plan. Cet événement permet par exemple de rafraîchir les données affichées.
Remarque : Cet événement est exécuté APRES l'événement du projet "Mise au premier plan".
AndroidiPhone/iPadWidget IOSMac Catalyst

Evénement optionnel : Mise en arrière-plan de l'application depuis la fenêtre

Exécuté lorsque l'application passe en arrière-plan. Cet événement permet par exemple de sauvegarder les données.
Remarque : Cet événement est exécuté AVANT l'événement du projet "Mise en arrière plan".
WINDEVAndroidiPhone/iPadWidget IOSMac Catalyst

Evénement optionnel : Changement d'agencement

Exécuté lorsque l'agencement est modifié automatiquement.
Remarque : La fonction FenChangeAgencement ne déclenche pas cet événement.
AndroidiPhone/iPadWidget IOSMac Catalyst

Evénement optionnel : Application du thème clair/sombre

Si la gestion du thème sombre est activée pour le projet, l'événement optionnel "Application du thème clair/sombre" est disponible. Cet événement permet de gérer les cas particuliers pour le passage du thème clair au thème sombre et inversement.
Cet événement est exécuté dans les cas suivants :
  • A l'ouverture de la fenêtre, après l'événement "Déclarations globales" et avant les événements d'initialisation des champs de la fenêtre.
  • Si la fenêtre est déjà ouverte lors du changement de thème réalisé par programmation avec la fonction ChangeThème uniquement si la constante avecExécutionDeCode a été spécifiée.
  • Si la fenêtre est déjà ouverte lors du changement de thème automatiquement effectué par le système : modification des paramètres système, changement d'heure jour/nuit, activation/désactivation de l'économiseur de batterie, ...
Pour plus de détails, consultez Gestion du thème sombre mobile.

Evénement optionnel : Début de défilement

Exécuté lors du début de défilement de l'ascenseur vertical de la fenêtre, utilisé pour faire défiler le contenu de la fenêtre (cas où le contenu de la fenêtre est plus important que la taille de la fenêtre).
Cet événement permet par exemple de faire apparaître un champ lorsque le bas de la fenêtre est atteint ou de faire apparaître un champ lors de la remontée de l'ascenseur.
Rappel : La fonction AscenseurPosition permet de connaître la position de l'ascenseur.

Evénement optionnel : Pendant le défilement

Exécuté lors du défilement de l'ascenseur vertical de la fenêtre (cas où le contenu de la fenêtre est plus important que la taille de la fenêtre).
Cet événement permet par exemple de faire apparaître un champ lorsque le bas de la fenêtre est atteint ou de faire apparaître un champ lors de la remontée de l'ascenseur.
Rappel : La fonction AscenseurPosition permet de connaître la position de l'ascenseur.

Evénement optionnel : Fin de défilement

Exécuté à la fin défilement de l'ascenseur vertical de la fenêtre (cas où le contenu de la fenêtre est plus important que la taille de la fenêtre).
Cet événement permet par exemple de faire apparaître un champ lorsque le bas de la fenêtre est atteint ou de faire apparaître un champ lors de la remontée de l'ascenseur.
Rappel : La fonction AscenseurPosition permet de connaître la position de l'ascenseur.
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Gestion des exceptions
Attention : Ce traitement étant asynchrone, si une exception est levée elle n'est pas captée par un QUAND EXCEPTION positionné dans la déclaration de la fenêtre (contrairement à tous les autres traitements de la fenêtre).
Il faut donc obligatoirement gérer les exceptions dans le traitement lui même, par exemple avec un QUAND EXCEPTION placé en début de traitement.
JNo
06 juil. 2018
Ordre des traitements et affichage des données
Lors de l'Affichage de la fenêtre, le traitement "Demande de mise à jour de l'affichage" est appelé AVANT la "Fin d'initialisation".

Dans ce cas, FenInitialisée() sera faux dans "Demande de mise à jour de l'affichage".

Afin d'afficher les données APRÈS la "Fin d'initialisation" il faut appeler DemandeMiseAJourIHM() dans le traitement "Fin d'initialisation" et alors FenInitialisée() sera vrai. (Appeler ExécuteMiseAJourIHM() fera en sorte que FenInitialisée() sera encore faux car la "Fin d'initialisation" ne sera pas terminée.)

Ensuite il suffit d'ajout une petite optimisation du code dans le traitement "Demande de mise à jour de l'affichage" pour ne pas rafraîchir les données inutilement:

SI FenInitialisée() = Faux ALORS RETOUR
Alexandre LECLERC
11 déc. 2015

Dernière modification : 12/06/2023

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