PC SOFT

ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Home | Sign in | English EN
  • 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 WatchMac CatalystUniversal Windows 10 App
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([<Fenêtre manipulée>])
<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.
Universal Windows 10 AppAndroidiPhone/iPadWidget IOSApple WatchMac Catalyst Cette constante n'est pas disponible.
InexistantFenêtre fermée ou inexistante.
InvisibleFenêtre invisible à l'écran et inactive.
<Fenêtre manipulée> : Nom de fenêtre optionnel ou chaîne de caractères optionnelle
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(<Fenêtre manipulée> , <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.
Universal Windows 10 AppAndroidiPhone/iPadWidget IOSApple WatchMac Catalyst Cette constante n'est pas disponible.
InexistantFenêtre fermée ou inexistante.
InvisibleFenêtre invisible à l'écran et inactive.
AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst Il n'est pas possible de rendre une fenêtre invisible.
<Fenêtre manipulée> : Nom de fenêtre ou chaîne de caractères
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.
Universal Windows 10 AppiPhone/iPadWidget IOSApple WatchMac Catalyst 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/iPadWidget IOSApple WatchMac Catalyst 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.
Universal Windows 10 AppiPhone/iPadWidget IOSApple WatchMac Catalyst 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.

LinuxUniversal Windows 10 AppAndroidiPhone/iPadWidget IOSMac CatalystJava 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/iPadWidget IOSApple WatchMac Catalyst 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/iPadWidget IOSApple WatchMac Catalyst 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 : wd270obj.dll
Minimum version required
  • Version 9
Comments
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
Exemplo WinStatus/OpenChild/SetFocus|
Exemplo WinStatus/OpenChild/SetFocus|

IF WinStatus(WIN_tela_exemplo)=NotFound THEN
OpenChild(WIN_tela_exemplo)
ELSE
Restore(WIN_tela_exemplo)
SetFocus(WIN_tela_exemplo)
END

// Blog com Video e exemplo

http://windevdesenvolvimento.blogspot.com.br/2016/11/aula-977-windev-window-janela-6.html

https://www.youtube.com/watch?v=gofWLY8rEAI

De matos
04 Dec. 2016