PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Ouverture modale/Ouverture non modale
  • Différences entre les constantes Invisible et HorsEcran
  • Fenêtre inactive ou invisible
  • Fermeture de la fenêtre
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
Identifie ou modifie l'état d'une fenêtre.
Remarque : La fonction FenEtat permet également de tester l'existence d'une fenêtre.
Versions 16 et supérieures
Android Cette fonction est désormais disponible pour les applications Android.
Nouveauté 16
Android Cette fonction est désormais disponible pour les applications Android.
Android Cette fonction est désormais disponible pour les applications Android.
Versions 17 et supérieures
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Nouveauté 17
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Versions 18 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Nouveauté 18
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Versions 19 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible pour les applications WINDEV pour Linux.
Nouveauté 19
Universal Windows 10 App Cette fonction est désormais disponible pour les applications WINDEV pour Linux.
Universal Windows 10 App Cette fonction est désormais disponible pour les applications WINDEV pour Linux.
Versions 21 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Apple Watch Cette fonction est désormais disponible en mode Apple Watch.
Nouveauté 21
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Apple Watch Cette fonction est désormais disponible en mode Apple Watch.
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Apple Watch Cette fonction est désormais disponible en mode Apple Watch.
Exemple
// Identification de l'état de la fenêtre en cours
ResFenEtat = FenEtat()
// Modification de l'état d'une fenêtre
SELON FenEtat(FEN_NomFenêtre)
        CAS Actif
                FenEtat(FEN_NomFenêtre, Grisé)
        CAS Inexistant
                Ouvre(FEN_NomFenêtre)
FIN
Syntaxe

Identifier l'état d'une fenêtre Masquer les détails

<Résultat> = FenEtat([<Nom de la fenêtre>])
<Résultat> : Constante
Etat actuel de la fenêtre :
ActifFenêtre active (fenêtre en saisie, même si elle n'a pas le focus).
AffichageSeulementFenêtre inactive (cette fenêtre n'est pas en saisie).
GriséLes champs de la fenêtre sont grisés.
HorsEcranFenêtre active mais présente en dehors de la zone visible de l'écran.
AndroidiPhone/iPadApple WatchUniversal Windows 10 App Cette constante n'est pas disponible.
InexistantFenêtre fermée ou inexistante.
InvisibleFenêtre invisible à l'écran et inactive.
<Nom de la fenêtre> : Chaîne de caractères optionnelle (avec ou sans guillemets)
Nom ou alias de la fenêtre à manipuler.
Si ce paramètre n'est pas précisé ou correspond à une chaîne vide (""), l'état de la fenêtre en cours est retourné.

Modifier l'état d'une fenêtre Masquer les détails

<Résultat> = FenEtat(<Nom de la fenêtre> , <Etat de la fenêtre>)
<Résultat> : Constante
Etat après modification :
ActifFenêtre active (fenêtre en saisie).
AffichageSeulementFenêtre inactive (cette fenêtre n'est pas en saisie).
GriséLes champs de la fenêtre sont grisés.
HorsEcranFenêtre active mais présente en dehors de la zone visible de l'écran.
AndroidiPhone/iPadApple WatchUniversal Windows 10 App Cette constante n'est pas disponible.
InexistantFenêtre fermée ou inexistante.
InvisibleFenêtre invisible à l'écran et inactive.
AndroidiPhone/iPadApple Watch Il n'est pas possible de rendre une fenêtre invisible.
<Nom de la fenêtre> : Chaîne de caractères (avec ou sans guillemets)
Nom ou alias de la fenêtre à manipuler.
Si ce paramètre correspond à une chaîne vide (""), l'état de la fenêtre en cours est modifié.
<Etat de la fenêtre> : Constante
Indique le nouvel état et le nouveau positionnement de la fenêtre spécifiée.
Si ce paramètre correspond à une chaîne vide (""), le changement de position (constante Dessus, DessusTout, Normal) d'une fenêtre est annulé.
ActifDevantLa fenêtre devient active (fenêtre en saisie) et mise en avant plan. Cette constante correspond au résultat d'un clic sur la barre de titre de la fenêtre.
iPhone/iPadApple WatchUniversal Windows 10 App Cette constante n'est pas disponible.
ActifLa fenêtre devient active (fenêtre en saisie).
AffichageSeulementLa fenêtre devient inactive (aucun champ de la fenêtre ne permet la saisie).
InvisibleLa fenêtre devient invisible à l'écran et inactive.
AndroidiPhone/iPadApple Watch Il n'est pas possible de rendre une fenêtre invisible.
GriséLes champs de la fenêtre sont grisés.
DessusLa fenêtre passe en premier plan par rapport aux autres fenêtres de l'application.
iPhone/iPadApple WatchUniversal Windows 10 App Cette constante n'est pas disponible.
DessusToutLa fenêtre passe en premier plan par rapport à toutes les autres fenêtres, même celles des autres applications. Cette constante est ignorée dans le cas des fenêtres filles MDI affichées à partir d'une fenêtre mère MDI.

LinuxAndroidiPhone/iPadUniversal Windows 10 AppJava Cette constante n'est pas disponible.
HorsEcranLa fenêtre reste active mais elle se positionne en dehors de la zone visible de l'écran.
Universal Windows 10 App Cette constante n'est pas disponible.
InexistantLa fenêtre se ferme. Si cette fenêtre n'existe pas, une erreur du WLangage est générée.
NormalUne fenêtre en mode DessusTout passe en mode normal (les fenêtres des autres applications peuvent à nouveau passer devant). Dans les autres cas, cette constante est sans effet.
Universal Windows 10 App Cette constante n'est pas disponible.
Remarques

Ouverture modale/Ouverture non modale

En ouverture modale (fenêtre mère MDI et fenêtre fille MDI), la fonction FenEtat ne peut pas être utilisée :
  • pour rendre active une fenêtre mère.
  • pour afficher une fenêtre fille "dessus" avec la constante Dessus ou DessusTout depuis une mère MDI.
En ouverture modale, si une fenêtre mère est rendue invisible, la fenêtre fille est également rendue invisible.
En ouverture non modale, si une fenêtre mère ayant au moins une fenêtre fille est rendue invisible, la ou les fenêtres filles ne sont pas rendues invisibles.

Différences entre les constantes Invisible et HorsEcran

  • Si une fenêtre mère est de type :
    • HorsEcran, cette fenêtre apparaît dans la liste des applications Windows (accessible par la combinaison de touches Alt Tab).
    • Invisible, cette fenêtre n'apparaît pas dans la liste des applications Windows (accessible par la combinaison de touches Alt + Tab).
  • Les coordonnées d'une fenêtre de type HorsEcran sont négatives.
  • Le passage de l'état :
    • Invisible à l'état Actif déclenche l'exécution des traitements de prise et de perte de focus de manière incohérente.
    • HorsEcran à l'état Actif déclenche correctement l'exécution des traitements de prise et de perte de focus.
Conseil : Préférez l'état HorsEcran à l'état Invisible.
  • Si une fenêtre qui est de type HorsEcran est ré-affichée avec la fonction FenEtat et la constante Actif, la fonction FenEtat ne donne pas le focus à la fenêtre.
  • Si la fenêtre de type HorsEcran n'avait pas le focus, elle n'a pas le focus après l'utilisation de la fonction FenEtat.
AndroidiPhone/iPadApple Watch Il n'est pas possible de rendre une fenêtre invisible.

Fenêtre inactive ou invisible

Si la fenêtre en cours devient inactive ou invisible, le traitement de "perte de focus" de la fenêtre sera exécuté avant le changement d'état.
AndroidiPhone/iPadApple Watch Il n'est pas possible de rendre une fenêtre invisible.

Fermeture de la fenêtre

Le code suivant permet de fermer la fenêtre :
FenEtat(<Nom de la fenêtre>, Inexistant)
Ce code est équivalent à la fonction Ferme.
Composante : wd250obj.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Utilisation dans le thread principal uniquement (WM)
Si, à la compilation de l'appli WM, vous obtenez l'erreur :
"L'opération '=' est interdite entre un élément de type fenêtre et un élément de type chaîne."
C'est peut-être que l'instruction FenEtat a été utilisée en dehors du thread principal.
Il suffit alors de mettre cette instruction dans une procédure interne, et de la lancer avec ExecuteThreadPrincipal
CV
28 nov. 2019