PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • 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 : Avant fermeture par bouton OK / Fermer
  • 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
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget iOSApple WatchCatalystUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
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é.
Versions 20 et supérieures
Demande de mise à jour de l'affichage
Nouveauté 20
Demande de mise à jour de l'affichage
Demande de mise à jour de l'affichage
Permet 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.
Versions 17 et supérieures
AndroidUniversal Windows 10 App Changement d'orientation
Nouveauté 17
AndroidUniversal Windows 10 App Changement d'orientation
AndroidUniversal Windows 10 App 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.
Versions 18 et supérieures
Widget Android Rafraîchissement du Widget
Nouveauté 18
Widget Android Rafraîchissement du Widget
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 :
  • le survol du champ par la souris,
  • le bouton gauche enfoncé, relâché, avec un double-clic,
  • le bouton droit enfoncé, relâché, avec double-clic,
  • la roulette de la souris, ...
Versions 26 et supérieures

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é.
Nouveauté 26

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é.

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é.

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 RepriseSaisie 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.
AndroidWidget AndroidUniversal Windows 10 App 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 RepriseSaisie a été exécutée depuis une autre fenêtre de l'application
Cet événement ne sera pas exécuté :
  • si la fonction RepriseSaisie 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
AndroidWidget AndroidUniversal Windows 10 App Cet événement n'est pas disponible.
Windows Mobile

Evénement optionnel : Avant fermeture par bouton OK / Fermer

Exécuté lors de l'utilisation du bouton OK / Fermer
Fonctionnement du bouton Fermer
Les événements exécutés sont les suivants :
  • exécution de l'événement "Avant fermeture par bouton OK/Fermer".
  • exécution du code du bouton de type "Abandon" présent dans la fenêtre (si ce bouton existe). Si la fenêtre ne contient aucun bouton de type "Abandon", fermeture de la fenêtre.
Fonctionnement du bouton OK
Les événements exécutés sont les suivants :
  • exécution de l'événement "Avant fermeture par bouton OK/Fermer".
  • exécution du code du bouton de type "Validation" présent dans la fenêtre (si ce bouton existe). Si la fenêtre ne contient aucun bouton de type "Validation", fermeture de la fenêtre.
Remarque : Si l'événement "Avant fermeture par bouton OK/Fermer" appelle la fonction RepriseSaisie, la fenêtre ne sera pas fermée.
AndroidWidget AndroidiPhone/iPadUniversal Windows 10 App 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).
Versions 18 et supérieures
AndroidiPhone/iPadWidget iOSCatalyst

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".
Nouveauté 18
AndroidiPhone/iPadWidget iOSCatalyst

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 iOSCatalyst

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".
Versions 18 et supérieures
AndroidiPhone/iPadWidget iOSCatalyst

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".
Nouveauté 18
AndroidiPhone/iPadWidget iOSCatalyst

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".
AndroidiPhone/iPadWidget iOSCatalyst

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".
Versions 23 et supérieures
WINDEVAndroidiPhone/iPadWidget iOSCatalyst

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.
Nouveauté 23
WINDEVAndroidiPhone/iPadWidget iOSCatalyst

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.
WINDEVAndroidiPhone/iPadWidget iOSCatalyst

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.
Versions 25 et supérieures
AndroidiPhone/iPadWidget iOSCatalyst

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

Si la gestion du thème sombre est activé 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 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 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.
Nouveauté 25
AndroidiPhone/iPadWidget iOSCatalyst

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

Si la gestion du thème sombre est activé 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 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 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.
AndroidiPhone/iPadWidget iOSCatalyst

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

Si la gestion du thème sombre est activé 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 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 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.
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