DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Champs, pages et fenêtres / Fonctions de gestion des fenêtres
  • Codes exécutés lors de la fermeture
  • Fermeture en fonction du type de fenêtre
  • Dernière fenêtre d'un projet
  • Valeur renvoyée à la fonction Ouvre
  • Valeur renvoyée lors de la fermeture d'une fenêtre fille
  • Combinaison des touches Alt + F4
  • Équivalence
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
Ferme une fenêtre WINDEV (en renvoyant si nécessaire une valeur).
WindowsLinux Cette fonction est disponible uniquement pour simplifier la Webisation de projets WINDEV. Dans un site WEBDEV, cette fonction se comporte selon les cas soit comme la fonction PageFermeDialogue, soit comme la fonction ContexteFerme.
Exemple
// Fermeture de la fenêtre "FEN_Saisie"
Ferme(FEN_Saisie)
WindowsLinuxCode Utilisateur (MCU)
// Fermeture de la fenêtre "FEN_SaisieLogin"
// avec récupération de plusieurs valeurs de retour
Ferme(FEN_SaisieLogin, Nom, Prénom)
Syntaxe
Ferme([<Fenêtre> [, <Valeur renvoyée> [... [, <Valeur renvoyée N>]]]])
<Fenêtre> : Nom de fenêtre optionnel
Nom de la fenêtre à fermer. Si ce paramètre n'est pas précisé ou correspond à une chaîne vide (""), la fenêtre en cours est fermée.
<Valeur renvoyée> : Type correspondant à la valeur renvoyée (optionnel)
Valeur renvoyée par la fenêtre lors de sa fermeture.
WINDEVJava Cette valeur est récupérée uniquement si la fenêtre a été ouverte avec la fonction Ouvre.

Universal Windows 10 App Cette valeur est récupérée uniquement si la fenêtre a été ouverte avec la fonction OuvreFenêtreMobile (ou la fonction OuvreFille).
Il est possible de renvoyer :
  • des types simples (chaîne de caractères, booléen, ...).
  • des types avancés : structure, structure dynamique, classe, type avancé, tableau, tableau associatif, file, pile, liste.
<Valeur renvoyée N> : Type correspondant à la valeur renvoyée (optionnel)
WINDEVWindowsLinuxCode Utilisateur (MCU) Valeur N renvoyée par la fenêtre lors de sa fermeture (cas où plusieurs valeurs sont renvoyées).
WINDEV Cette valeur est récupérée uniquement si la fenêtre a été ouverte avec la fonction Ouvre.

Il est possible de renvoyer :
  • des types simples (chaîne de caractères, booléen, ...).
  • des types avancés : structure, structure dynamique, classe, type avancé, tableau, tableau associatif, file, pile, liste.
Remarques

Codes exécutés lors de la fermeture

  • Lors de la fermeture d'une fenêtre :
    1. Le traitement en cours est interrompu définitivement.
    2. L'événement "Fermeture" de la fenêtre est exécuté.
  • Si la fonction DonneFocusEtRetourUtilisateur est appelée dans l'événement "Fermeture" de la fenêtre, la fenêtre n'est pas fermée.
  • Si la fonction Ferme est exécutée dans une procédure appelée par la fonction Timer, il est nécessaire de tester l'existence de la fenêtre à fermer avec les fonctions FenEtat ou FenEnCours sinon toutes les fenêtres ouvertes risquent d'être fermées. Par exemple :
    // Procédure appelée par timer
    Fenêtre est une chaîne
    Fenêtre = FenEnCours()
    SI Fenêtre <> "Nom fenêtre" ALORS
    Ferme()
    FIN

Fermeture en fonction du type de fenêtre

  • Si la fenêtre à fermer est une fenêtre mère ayant des fenêtre filles, ces fenêtres filles sont fermées en premier (leur code de fermeture est exécuté).
  • Si la fenêtre à fermer est une fenêtre fille, la fenêtre mère devient la fenêtre en cours. Le code de prise de focus de la fenêtre mère est exécuté.

Dernière fenêtre d'un projet

Si la dernière fenêtre d'un projet est fermée, l'événement "Fermeture" du projet est exécuté avant la fin du programme.
WINDEVJavaCode Utilisateur (MCU)

Valeur renvoyée à la fonction Ouvre

Il est possible de renvoyer, à l'aide de la fonction Ferme, une valeur ou plusieurs à la fonction Ouvre.
Rappel : Il est également possible de renvoyer une valeur à l'aide de la propriété ValeurRenvoyée (<Nom de la fenêtre>.ValeurRenvoyée) exécutée avant la fonction Ferme. Dans ce cas, une seule valeur peut être renvoyée.
Exemples :
  • L'utilisateur doit saisir un mot de passe dans une fenêtre. Ce mot de passe saisi est récupéré lors de la fermeture de cette fenêtre et renvoyé à la fonction Ouvre :
    MonMotDePasse = Ouvre(FEN_SaisieMotDePasse)
    SI MonMotDePasse <> "" ALORS
    Info("Mot de passe incorrect")
    FIN
     
    // -- Code de clic sur le bouton "OK" de la fenêtre "FEN_SaisieMotDePasse"
    // L'utilisateur saisit son mot de passe dans le champ SAI_MotDePasse
    // et valide la fenêtre.
    Ferme("", SAI_MotDePasse)
  • L'utilisateur doit saisir un login et un mot de passe dans une fenêtre. Ce login et mot de passe saisi sont récupérés lors de la fermeture de cette fenêtre et renvoyés à la fonction Ouvre :
    (MonLogin, MonMotDePasse) = Ouvre(FEN_SaisieMotDePasse)
    SI MonLogin <> "" OU MonMotDePasse <> "" ALORS
    Info("Login ou mot de passe incorrect")
    FIN
     
    // -- Code de clic sur le bouton "OK" de la fenêtre "FEN_SaisieMotDePasse"
    // L'utilisateur saisit son login et son mot de passe
    // dans le champ SAI_MotDePasse et valide la fenêtre.
    Ferme("", SAI_Login, SAI_MotDePasse)
Universal Windows 10 App

Valeur renvoyée lors de la fermeture d'une fenêtre fille

La fonction Ferme permet de renvoyer une valeur à la fenêtre mère qui a ouverte la fenêtre fille.
Rappel : Il est également possible de renvoyer une valeur à l'aide de la propriété ValeurRenvoyée (<Nom de la fenêtre>.ValeurRenvoyée) exécutée avant la fonction Ferme.
La valeur renvoyée par la fenêtre fille pourra être lue dans l'événement "Fermeture d'une fenêtre fille" de la fenêtre ayant ouvert la fenêtre fille (celle qui a utilisé la fonction OuvreFenêtreMobile ou OuvreFille) : il suffit d'utiliser la propriété ValeurRenvoyée sur le mot-clé MaFenêtreFille.
Par exemple :
  • Dans le code de fermeture de la fenêtre fille, la fonction Ferme est utilisée pour renvoyer un paramètre :
    Ferme("", MonParamètre)
  • Dans l'événement "Fermeture d'une fenêtre fille" de la fenêtre appelante, le nom de la fenêtre fille ainsi que la valeur renvoyée peuvent être récupérés en utilisant le mot-clé MafenêtreFille :
    // Fermeture d'une fenêtre fille
    NomFenêtreFille = MaFenêtreFille.Nom
    ValeurFenêtreFille = MaFenêtreFille.ValeurRenvoyée

Combinaison des touches Alt + F4

La combinaison de touches Alt + F4 peut avoir plusieurs comportements :
  • Si la fenêtre comporte un bouton de type "Abandon", l'événement WLangage associé au bouton d'abandon est exécuté.
  • Si la fenêtre comporte un bouton ayant Alt + F4 comme raccourci clavier, l'événement WLangage associé à ce bouton est exécuté.
  • Si la fenêtre ne comporte ni de bouton d'abandon, ni de bouton ayant Alt + F4 comme raccourci clavier, l'événement "Fermeture" de la fenêtre est exécuté et la fenêtre est fermée (sauf si la fonction DonneFocusEtRetourUtilisateur est utilisée).
  • Si la fenêtre est ouverte depuis un programme en langage externe, Alt + F4 retourne "ESC" dans WdTouche.

Équivalence

La ligne de code suivante :
FenEtat(<Fenêtre>, Inexistant)
est équivalente à :
Ferme(<Fenêtre>)
Composante : wd300obj.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 05/07/2022

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