DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer une application ou un site / Champs, fenêtres et pages / Fenêtre
  • Présentation
  • Ouverture d'une fenêtre
  • Ouverture d'une fenêtre mère
  • Ouverture d'une fenêtre fille
  • Ouverture d'une fenêtre soeur
  • Ouverture avec alias
  • Superposition des fenêtres
  • Iconisation d'une fenêtre
  • Fenêtre "libre" ouverte avec la fonction OuvreFille ou OuvreSoeur
  • Fenêtre mère MDI
  • Fenêtre fille MDI
  • Rappels
  • Fenêtre en cours
  • Fermeture d'une fenêtre fille ou soeur
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
Gestion non modale d'une fenêtre
Présentation
La fenêtre ouvrant une autre fenêtre est appelée fenêtre mère ; les fenêtres ouvertes par la fenêtre mère sont appelées fenêtres filles. Toutes les fenêtres filles ouvertes par la même fenêtre mère sont des fenêtres soeurs.
Ce mode d'ouverture permet de gérer le multi fenêtrage.
Avec l'ouverture non modale d'une fenêtre fille :
  • la fenêtre fille peut être en saisie en même temps que la fenêtre mère qui l'a ouverte.
  • après la fermeture d'une fenêtre fille, une autre fenêtre fille devient la fenêtre en cours, s'il n'y a plus de fenêtre fille, c'est la fenêtre mère qui devient la fenêtre en cours
  • si la fenêtre mère est fermée, ses fenêtres filles sont fermées. Si une fenêtre fille refuse d'être fermée, les fenêtres filles suivant cette fenêtre ne seront pas fermées ainsi que la fenêtre mère.
  • si la fenêtre fille est iconisée, les autres fenêtres ne sont pas iconisées. L'icône de la fenêtre est celle de la fenêtre ou du projet, si la fenêtre n'a pas d'icône.
  • si la fenêtre mère est iconisée, toutes ses filles deviennent invisibles temporairement.
Avec l'ouverture non modale d'une fenêtre soeur :
  • toutes les fenêtres soeurs peuvent être en saisie en même temps.
  • après la fermeture d'une fenêtre soeur, une autre fenêtre soeur devient la fenêtre en cours.
  • si la fenêtre soeur est iconisée, les autres fenêtres ne sont pas iconisées. L'icône de la fenêtre est celle de la fenêtre ou du projet, si la fenêtre n'a pas d'icône.
Ouverture d'une fenêtre

Ouverture d'une fenêtre mère

Une fenêtre mère est ouverte grâce à la fonction Ouvre.

Ouverture d'une fenêtre fille

Une fenêtre fille est ouverte à partir d'une fenêtre de type mère MDI. Ces fenêtres filles peuvent être de type :
  • "Fille MDI"
  • "Libre"
Selon le type de la fenêtre, le mode d'ouverture de la fenêtre varie.
1. Fenêtre de type "fille MDI"
La fonction MDIOuvre permet une ouverture non modale d'une fenêtre de type "Fille MDI" depuis une fenêtre de type "Mère MDI".
Lors de l'appel de la fonction MDIOuvre, les opérations suivantes sont effectuées :
  1. Exécution de l'événement "Déclarations globales" de la fenêtre.
  2. Exécution des événements d'initialisation des champs (l'ordre est indéterminé).
  3. Affichage de la fenêtre (cette fenêtre est toujours fille de la fenêtre mère MDI).
    Remarque : Les fenêtres filles MDI sont toujours ouvertes dans la fenêtre mère (elles ne peuvent pas être affichées en dehors de la fenêtre mère). La fonction MDIMenuFenêtre permet d'arranger dans la fenêtre mère MDI l'affichage des fenêtres filles MDI ouvertes (affichage en cascade ou affichage en mosaïque).
La fonction DonneFocusEtRetourUtilisateur permet de forcer la saisie dans la fenêtre fille.
2. Fenêtre "Libre" ouverte en tant que fenêtre fille
La fonction OuvreFille permet une ouverture non modale des fenêtres de type "Libre" à partir d'une fenêtre de type "Mère MDI".
Lors de l'appel de la fonction OuvreFille, les opérations suivantes sont effectuées :
  1. Exécution de l'événement "Déclarations globales" de la fenêtre fille,
  2. Exécution des événements d'initialisation des champs (l'ordre est indéterminé),
  3. Exécution des événements suivant l'appel de la fonction OuvreFille de la fenêtre mère,
  4. Affichage de la fenêtre fille (la fenêtre mère reste la fenêtre en cours).
    Remarque : Les fenêtres filles non MDI peuvent être affichées en dehors de la fenêtre mère, elles peuvent être affichées à toutes coordonnées dans l'écran.
La fonction DonneFocusEtRetourUtilisateur permet de forcer la saisie dans la fenêtre fille.

Ouverture d'une fenêtre soeur

Une fenêtre soeur est ouverte à partir d'une fenêtre fille. Ces fenêtres filles peuvent être de type :
  • "Fille MDI"
  • "Libre"
Selon le type de la fenêtre, le mode d'ouverture de la fenêtre varie.
1. Fenêtre de type "fille MDI"
La fonction MDIOuvre permet une ouverture non modale d'une fenêtre de type "Fille MDI" depuis une fenêtre de type "Mère MDI" ou une fenêtre de type "Fille MDI". Les différentes fenêtres filles sont des fenêtres soeurs.
2. Fenêtre "Libre" ouverte en tant que fenêtre soeur
La fonction OuvreSoeur permet une ouverture non modale des fenêtres de type "Libre" à partir d'une fenêtre fille.
Lors de l'appel de la fonction OuvreSoeur, les opérations suivantes sont effectuées :
  1. Exécution de l'événement "Déclarations globales" de la fenêtre soeur,
  2. Exécution des événements d'initialisation des champs (l'ordre est indéterminé),
  3. Exécution des événements suivant l'appel de la fonction OuvreSoeur de la fenêtre appelante,
  4. Affichage de la fenêtre soeur.
    Remarque : Les fenêtres soeurs MDI sont toujours ouvertes dans la fenêtre mère (elles ne peuvent pas être affichées en dehors de la fenêtre mère). La fonction MDIMenuFenêtre permet d'arranger dans la fenêtre mère MDI l'affichage des fenêtres filles MDI ouvertes (affichage en cascade ou affichage en mosaïque).
La fonction DonneFocusEtRetourUtilisateur permet de forcer la saisie dans la fenêtre soeur.
Important : Une fenêtre ne peut être ouverte avec la fonction OuvreSoeur que si la fenêtre demandant l'ouverture a été ouverte avec la fonction OuvreFille ou la fonction OuvreSoeur.

Ouverture avec alias

Une même fenêtre (fille ou soeur) peut être ouverte plusieurs fois en parallèle. Cette fenêtre est soeur d'elle même. Chaque fenêtre ouverte est différenciée par un alias. L'alias est passé en paramètre aux fonctions OuvreSoeur, OuvreFille ou MDIOuvre. Si lors de l'ouverture d'une fenêtre déjà ouverte, aucun alias n'est donné, WINDEV attribue automatiquement un alias à la fenêtre.
Remarque : L'alias peut être modifié avec la fonction FenChangeAlias.
L'alias est utilisé pour identifier les fenêtres avec les fonctions acceptant en paramètre un nom de fenêtre (par exemple les fonctions TitreEnCours, TitreSuivant, DonneFocusEtRetourUtilisateur, ...) ou pour manipuler un champ d'une fenêtre donnée.
L'alias est retourné par les fonctions FenEnCours ou FenPrécédente.
// Ouverture de FICHECLI avec alias CLIENT1
OuvreSoeur("CLIENT1=FICHECLI")
 
// Changement de fenêtre avec saisie sur champ NOMCLI
DonneFocusEtRetourUtilisateur("CLIENT1.NOMCLI")
 
// Manipulation de champ avec alias
NomFenêtre est une chaîne
NomFenêtre = FenPrécédente()
SI NomFenêtre.NomCli = "" ALORS
// Nom du client non saisi
Erreur("Le nom du client n'a pas été saisi")
DonneFocusEtRetourUtilisateur(NomFenêtre + ".NOMCLI")
FIN
Superposition des fenêtres
Après son ouverture, une fenêtre fille est affichée "par dessus" la fenêtre mère et une fenêtre soeur est affichée par dessus l'avant dernière fenêtre soeur.
Pour spécifier que la fenêtre ouverte s'affiche :
  • par dessus toutes les fenêtres (mêmes inactives), mêmes celles des autres applications Windows en cours, il faut utiliser la constante DessusTout (fonctions OuvreFille, OuvreSoeur ou FenEtat).
  • au dessus de ses soeurs (mêmes inactives), il faut utiliser la constante Dessus (fonctions OuvreFille, OuvreSoeur ou FenEtat).
Iconisation d'une fenêtre

Fenêtre "libre" ouverte avec la fonction OuvreFille ou OuvreSoeur

Si la fenêtre est iconisée, les autres fenêtres ne sont pas iconisées. L'icône utilisée est celle de la fenêtre (ou du projet, si la fenêtre n'a pas d'icône associée).

Fenêtre mère MDI

Si la fenêtre est iconisée, toutes les fenêtres filles sont iconisées. L'icône utilisée est celle de la fenêtre (ou du projet si la fenêtre n'a pas d'icône associée).

Fenêtre fille MDI

Si la fenêtre est iconisée, elle est iconisée dans la fenêtre mère, l'icône utilisée est une partie de la barre de titre.
La fonction MDIMenuFenêtre permet de réduire toutes les fenêtres filles MDI ouvertes en icône, puis de les restaurer.

Rappels

Une fenêtre peut être iconisée :
Une fenêtre peut être restaurée :
Fenêtre en cours
Après l'ouverture d'une fenêtre, la fenêtre en cours n'est pas modifiée.
  • La fonction FenEnCours renvoie le nom de la fenêtre (ou de l'alias) en cours de saisie.
  • La fonction FenPrécédente renvoie le nom de la fenêtre (ou de l'alias) qui était précédemment en cours de saisie.
Pour changer la fenêtre en cours de saisie :
  • soit l'utilisateur clique sur une fenêtre.
  • soit par programmation, la fonction DonneFocusEtRetourUtilisateur force la saisie sur la fenêtre dont le nom est passé en paramètre (il faut que la fenêtre comporte au moins un champ en saisie).
La fonction MDIActive retourne le nom de la fenêtre fille MDI qui est en avant plan.
Fermeture d'une fenêtre fille ou soeur
Les fenêtres filles et soeurs sont fermées avec la fonction Ferme.
Après la fermeture d'une fenêtre fille, une de ses soeurs devient active. Si aucune fenêtre soeur n'existe, la fenêtre mère devient active.
Après la fermeture d'une fenêtre soeur, une autre fenêtre soeur devient la fenêtre en cours.
Si la fenêtre mère est fermée, ses fenêtres filles sont fermées. Si une fenêtre fille refuse d'être fermée, la fermeture est interrompue : les fenêtres soeurs suivant la fille ne sont pas fermées ainsi que la fenêtre mère ; les fenêtres filles qui ont été fermées restent fermées.
Pour empêcher la fermeture d'une fenêtre fille (non MDI), dans le code de fermeture de la fenêtre fille, ajoutez la ligne suivante :
// NomChamp est un champ de la fenêtre fille
DonneFocusEtRetourUtilisateur(NomChamp)
Pour empêcher la fermeture d'une fenêtre fille MDI, il faut :
  • créer un champ Bouton associé à la combinaison de touches Alt + F4.
  • saisir le code suivant dans le code de clic du champ Bouton :
    DonneFocusEtRetourUtilisateur()
La fonction MDIMenuFenêtre permet de fermer toutes les fenêtres filles MDI ouvertes.
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Impossible de fermer une fenêtre
Lorsque vous n'arrivez pas à fermer une fenêtre fille en cliquant sur l'icone de fermeture de la barre de titre, c'est que vous avez dans la fenêtre un bouton, souvent le bouton "annuler", avec le critère "Abandon" coché (Description > volet UI).
bernard SOBRA
15 jan. 2023

Dernière modification : 22/08/2024

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