PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Traitements gérés par défaut
  • Traitements optionnels
  • Mise au premier-plan de l'application sur la fenêtre
  • Mise en arrière plan de l'application depuis la fenêtre
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Traitements gérés par défaut
WINDEV et WINDEV Mobile gèrent par défaut les traitements suivants (ordre d'apparition sous l'éditeur de code) :
TraitementCondition 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.
Initialisation (avant la version 180062)
Fin d'initialisation (après la version 180062)
Fin d'initialisation
Exécuté lors de l'ouverture de la fenêtre.
L'ordre d'exécution des traitements 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 ce traitement, 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.
Remarque : Une reprise de saisie sur un des champs de la fenêtre dans ce code empêche la fenêtre de se fermer.
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, ...
Ce traitement peut attendre des paramètres. Il suffit de déclarer une procédure dans le traitement. Par exemple :
// Demande de mise à jour de l'affichage
PROCEDURE DemandeMiseAjour(TypeMiseAJour est un booléen)
Ce traitement 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 le traitement.
Android Ce traitement n'est pas disponible.
WINDEV MobileWindows Mobile Avant fermeture par bouton OK / Fermer
Exécuté lors de l'utilisation du bouton OK / Fermer
Fonctionnement du bouton Fermer
Les traitements exécutés sont les suivants :
  • exécution du traitement "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 traitements exécutés sont les suivants :
  • exécution du traitement "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 le traitement "Avant fermeture par bouton OK/Fermer" appelle la fonction RepriseSaisie, la fenêtre ne sera pas fermée.
AndroidWidget AndroidiPhone/iPadUniversal Windows 10 App Ce traitement n'est pas disponible.
Prise de focusExé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
Ce traitement 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 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.
Ce traitement 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 Ce traitement n'est pas disponible.
Perte de focusExécuté lorsque la fenêtre perd le focus lors du passage à une autre fenêtre. Ce traitement est toujours appelé avant le traitement de prise de focus d'une autre fenêtre dans les cas suivants :
  • fermeture de la fenêtre (avant le traitement 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
Ce traitement 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 Ce traitement n'est pas disponible.
A chaque modificationExécuté lorsqu'un des champs de la fenêtre est modifié (saisie effectuée par l'utilisateur par exemple).
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.
Versions 18 et supérieures
AndroidiPhone/iPadUniversal Windows 10 App Fermeture d'une fenêtre fille de la fenêtre
Nouveauté 18
AndroidiPhone/iPadUniversal Windows 10 App Fermeture d'une fenêtre fille de la fenêtre
AndroidiPhone/iPadUniversal Windows 10 App Fermeture d'une fenêtre fille de la fenêtre
AndroidiPhone/iPadUniversal Windows 10 AppUniversal Windows 10 App Fermeture d'une fenêtre fille de la fenêtre
Exé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.
Modification de la tailleExé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 Ce traitement n'est pas disponible.
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. Ce traitement 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 du traitement de rafraîchissement.
(*) Par défaut, le traitement "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. Sélectionnez l'option "Fenêtres .. Éditer l'ordre d'initialisation".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.
Traitements optionnels
Plusieurs traitements optionnels peuvent être gérés.
Pour gérer un traitement optionnel, il suffit de le sélectionner dans la barre d'icônes de la fenêtre de code.
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 18 et supérieures
AndroidiPhone/iPad

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. Ce traitement permet par exemple de rafraîchir les données affichées.
Remarque : Ce traitement est exécuté APRES le traitement du projet "Mise au premier plan".
Nouveauté 18
AndroidiPhone/iPad

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. Ce traitement permet par exemple de rafraîchir les données affichées.
Remarque : Ce traitement est exécuté APRES le traitement du projet "Mise au premier plan".
AndroidiPhone/iPad

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. Ce traitement permet par exemple de rafraîchir les données affichées.
Remarque : Ce traitement est exécuté APRES le traitement du projet "Mise au premier plan".
Versions 18 et supérieures
AndroidiPhone/iPad

Mise en arrière plan de l'application depuis la fenêtre

Exécuté lorsque l'application passe en arrière-plan. Ce traitement permet par exemple de sauvegarder les données.
Remarque : Ce traitement est exécuté AVANT le traitement du projet "Mise en arrière plan".
Nouveauté 18
AndroidiPhone/iPad

Mise en arrière plan de l'application depuis la fenêtre

Exécuté lorsque l'application passe en arrière-plan. Ce traitement permet par exemple de sauvegarder les données.
Remarque : Ce traitement est exécuté AVANT le traitement du projet "Mise en arrière plan".
AndroidiPhone/iPad

Mise en arrière plan de l'application depuis la fenêtre

Exécuté lorsque l'application passe en arrière-plan. Ce traitement permet par exemple de sauvegarder les données.
Remarque : Ce traitement est exécuté AVANT le traitement du projet "Mise en arrière plan".
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
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