Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v20 R7
Types de fenêtres

Types de fenêtres  


 

Vous spécifiez le type de fenêtre à ouvrir avec Creer fenetre formulaire à l'aide d'une des constantes prédéfinies suivantes (thème "Creer fenetre formulaire") :

Constante Type Valeur
Form dialogue modal Entier long 1
Form dialogue modal déplaçable Entier long 5
Form fenêtre standard Entier long 8
Form fenêtre pop up Entier long 32
Form fenêtre feuille Entier long 33
Form fenêtre barre outils Entier long 35
Form fenêtre palette Entier long 1984
Form sans barre de menus Entier long 2048
Form avec mode plein écran Mac Entier long 65536
Form fenêtre contrôleur Entier long 133056
Form dialogue modal déplaçable sans titre Entier long 524293
Form fenêtre standard sans titre Entier long 524296

Cette section illustre chaque type de fenêtre, sous Windows (à gauche) et macOS (à droite).

Une fenêtre modale place l'utilisateur dans un état (ou “mode”) où il ne peut agir qu'à l'intérieur de la fenêtre. Tant qu'une fenêtre modale est affichée, les commandes de menu et les autres fenêtres de l'application sont inaccessibles. Pour refermer une fenêtre modale, l'utilisateur doit la valider, l'annuler ou utiliser une des options qu'elle propose. Les boîtes de dialogue d'alerte sont des exemples typiques de fenêtres modales.
Dans 4D, les fenêtres de type Form dialogue modal, Form dialogue modal déplaçable et Form dialogue modal déplaçable sans titre sont des fenêtres modales.

Note : Une fenêtre modale reste toujours au premier plan. Par conséquent, lorsqu'une fenêtre modale appelle une fenêtre non modale, cette dernière s'affiche en arrière-plan, bien qu'elle ait été appelée postérieurement. Il ne faut donc pas effectuer ce type d'opération.
En revanche, lorsqu'une fenêtre modale appelle une autre fenêtre modale, cette dernière s'affiche au premier plan.

  • Peut avoir un titre : Non
  • Peut comporter une case de fermeture ou un équivalent : Non
  • Peut être redimensionnée : Non
  • Peut être agrandie/réduite ou "zoomée" : Non
  • Adaptée aux barres de défilement : Non
  • Utilisation : DIALOGUE, AJOUTER ENREGISTREMENT(...;...*) ou équivalent
  • Les fenêtres de ce type sont modales

  • Peut avoir un titre : Oui
  • Peut comporter une case de fermeture ou un équivalent : Oui
  • Peut être redimensionnée : Oui
  • Peut être agrandie/réduite ou "zoomée" : Oui
  • Adaptée aux barres de défilement : Non
  • Utilisation : DIALOGUE, AJOUTER ENREGISTREMENT(...;...*) ou équivalent
  • Les fenêtres de ce type sont modales mais peuvent être déplacées

  • Peut avoir un titre : Oui
  • Peut comporter une case de fermeture ou un équivalent : Oui
  • Peut être redimensionnée : Oui
  • Peut être agrandie/réduite ou "zoomée" : Oui
  • Adaptée aux barres de défilement : Oui
  • Utilisation : saisie de données avec des barres de défilement, VISUALISER SELECTION, MODIFIER SELECTION, etc.

Ce type de fenêtre dispose de propriétés avancées spécifiques :

  • La fenêtre ne peut pas avoir de case de fermeture mais est automatiquement refermée avec annulation lorsque :
    • un clic se produit en-dehors de la fenêtre ;
    • la fenêtre d’arrière-plan ou la fenêtre MDI est déplacée ;
    • l’utilisateur appuie sur la touche Echap (ou Esc).
  • Cette fenêtre s’affiche devant une fenêtre “parente” (elle ne doit d'ailleurs pas être utilisée comme fenêtre principale d’un process). La fenêtre d’arrière-plan n’est pas désactivée. En revanche, elle ne reçoit plus d’événement.
  • Il n’est pas possible de redimensionner ou de déplacer la fenêtre à l’aide de la souris ; toutefois, lorsque cette opération est effectuée par programmation, le redessinement des éléments d’arrière-plan est optimisé.
  • Utilisation : ce type de fenêtre est particulièrement adapté à la prise en charge des pop up menus associés aux boutons 3D de type “bevel” ou “barres outils”.
  • Limitations :
    • Il n'est pas possible d'afficher un objet pop up menu à l'intérieur d'une fenêtre de ce type.
    • Ce type de fenêtre ne permet pas l'affichage des infobulles sous Mac OS.

Les fenêtres feuilles (sheet windows) sont des fenêtres spécifiques de l’interface macOS. Ces fenêtres s’affichent par-dessus la fenêtre principale. Elles sont automatiquement centrées dans la fenêtre principale. Leurs propriétés sont comparables à celles des boîtes de dialogue modales. Elles sont généralement utilisées pour effectuer une action en relation directe avec celle se déroulant dans la fenêtre principale.

  • Il n’est possible de créer une fenêtre feuille sous macOS que si la dernière fenêtre ouverte est visible et de type document (formulaire).
  • La commande crée une fenêtre de type 1 (Dialogue modal) au lieu du type 33 :
    • si la dernière fenêtre ouverte n’est pas visible ou n’est pas de type document,
    • sous Windows.
  • Comme une fenêtre feuille doit être dessinée par-dessus un formulaire, son affichage est repoussé dans l’événement Sur chargement du premier formulaire chargé dans la fenêtre (cf. exemple 3 de la commande Creer fenetre formulaire).
  • Utilisation : DIALOGUE, AJOUTER ENREGISTREMENT(...;...*) ou équivalent, sous macOS (non standard sous Windows).

Une fenêtre de type "barre outils" est créée avec l'emplacement, la taille et les propriétés graphiques d'une barre d'outils, c'est-à-dire :

  • La fenêtre est toujours affichée juste sous la barre de menus.
  • La largeur de la fenêtre est automatiquement ajustée afin de remplir tout l'espace horizontal disponible sur le bureau (sous macOS) ou dans la fenêtre principale de 4D (sous Windows en mode MDI). La hauteur de la fenêtre est basée sur les propriétés du formulaire.
  • La fenêtre n'a pas de bordure, elle ne peut pas être déplacée ni redimensionnée manuellement.
  • Il n'est pas possible de créer simultanément plus d'une barre d'outils par process.

Barre d'outils et mode plein écran sous macOS : Si votre application affiche à la fois une fenêtre barre d'outils et une fenêtre standard qui prend en charge le mode plein écran (option Form avec mode plein écran Mac), les règles d'interface préconisent que la barre d'outils soit masquée lorsque la fenêtre standard passe en mode plein écran. Pour savoir si une fenêtre est passée en mode plein écran, il vous suffit de tester si sa hauteur est identique à celle de l'écran (cf. commande CACHER BARRE OUTILS).

Ce type de fenêtre permet de générer des palettes flottantes. La caractéristique principale des fenêtres flottante est qu'elles restent à l'avant-plan même si l'utilisateur clique sur une autre fenêtre du process. Les fenêtres flottantes sont généralement utilisées pour présenter des informations permanentes ou des barres d'outils.

Ce type de fenêtre est similaire au type Form fenêtre palette mais avec la particularité suivante : sous Windows, la fenêtre flottante sera référencée par une icône dans la barre des tâches (sous Windows, les fenêtres flottantes classiques ne sont pas affichées dans la barre des tâches).

Ce type de fenêtre est utile lorsque la base est exécutée en Mode SDI sous Windows. Dans ce mode, les palettes flottantes sont masquées lorsque leur application parente passe à l'arrière-plan. Dans ce cas, si l'interface de votre base de données s'articule autour d'une unique fenêtre flottante (par exemple pour afficher une vue de contrôle), vous devez utiliser une Form fenêtre contrôleur pour référencer l'application dans la barre des tâches et vous assurer qu'elle restera accessible même après avoir été passée à l'arrière-plan.

Par exemple :

 $win:=Creer fenetre formulaire("monMoniteur";Form fenêtre contrôleur;A gauche;Centrée verticalement)

Note : Sous macOS, ce type de fenêtre a le même comportement qu'une Form fenêtre palette classique.

Cette option est destinée à être utilisée lorsque la base est exécutée en Mode SDI sous Windows.

Dans ce contexte, toutes les fenêtres de votre application affichent par défaut la barre de menus courante du process. Si vous voulez ouvrir une fenêtre sans barre de menus, vous devez ajouter la constante Form sans barre de menus au paramètre type. Par exemple, le code suivant crée une fenêtre standard sans barre de menus dans une application SDI sous Windows :

 $win:=Creer fenetre formulaire("monDialogue";Form fenêtre standard+Form sans barre de menus;Centrée horizontalement;En haut)

Note : Cette option est sans effet :

  • dans une application macOS,
  • dans une application Windows en mode MDI.

L'option "plein écran" est disponible sous macOS pour les fenêtres de type document. Lorsque cette option est utilisée, le bouton "Plein écran" est affiché dans la fenêtre. Lorsque l’utilisateur clique sur cette icône, la fenêtre passe en plein écran et 4D masque automatiquement la barre d’outils principale.

Pour utiliser cette option, il suffit d’ajouter la constante Form avec mode plein écran Mac au paramètre type. Par exemple, ce code crée une fenêtre formulaire avec bouton plein écran sous macOS :

 $fen :=Creer fenetre formulaire([Interface];"Choix_User";Form fenêtre standard+Form avec mode pleinécran Mac)
 DIALOGUE([Interface];"Choix_User")

Note : Sous Windows, cette option n’a pas d’effet.

Ce type vous permet de concevoir des fenêtres avec des barres d'outils personnalisées. Pour plus d'informations, voir cet article de blog.

 

  • Fenêtre modale : Oui
  • Peut être déplacé : Oui (par code puisqu'il n'y a pas de barre de titre)
  • Peut être redimensionné : Oui
  • Peut être minimisé/maximisé ou zoomé : Non
  • Disposer d'un titre : Non

Ce type vous permet de concevoir des fenêtres avec des barres d'outils personnalisées. Pour plus d'informations, voir cet article de blog.

 

  • Fenêtre modale : Non
  • Peut être déplacé : Oui (par code puisqu'il n'y a pas de barre de titre)
  • Peut être redimensionné : Oui
  • Peut être minimisé/maximisé ou zoomé : Oui (par code puisqu'il n'y a pas de barre de titre)
  • Disposer d'un titre : Non



Voir aussi  

Creer fenetre formulaire
Form improvements (YouTube)

 
PROPRIÉTÉS 

Produit : 4D
Thème : Fenêtres
Nom intl. : Window Types

 
PAGE CONTENTS 
 
HISTORIQUE 

Modifié : 4D v16 R4
Modifié : 4D v20 R5

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v20 R7)