Aller au contenu principal
Version : 20 R10

Open window

Open window ( gauche ; haut ; droite ; bas {; type {; titre {; caseFermeture}}} ) : Integer

ParamètreTypeDescription
gaucheIntegerCoordonnée gauche de l'intérieur de la fenêtre
hautIntegerCoordonnée supérieure de l'intérieur de la fenêtre
droiteIntegerCoordonnée droite de l'intérieur de la fenêtre
basIntegerCoordonnée inférieure de l'intérieur de la fenêtre
typeIntegerType de la fenêtre
titreTextTitre de la fenêtre
caseFermetureTextMéthode à appeler en cas de double-clic sur la case du menu Système ou de clic sur la case de fermeture
RésultatIntegerNuméro de référence de la fenêtre

Description

Open window ouvre une nouvelle fenêtre dont les dimensions sont définies par les quatre premiers paramètres :

  • gauche est la distance en pixels entre le côté gauche de la fenêtre de l'application et le côté intérieur gauche de la fenêtre.
  • haut est la distance en pixels entre le haut de la fenêtre de l'application et le bord supérieur de l'intérieur de la fenêtre.
  • droite est la distance en pixels entre le côté gauche de la fenêtre de l'application et le côté intérieur droit de la fenêtre.
  • bas est la distance en pixels entre le haut de la fenêtre de l'application et le bord inférieur de l'intérieur de la fenêtre.

Note de compatibilité : Open window a intégré différentes options qui ont évolué au fil des versions, et n'est plus conservée que pour des raisons de compatibilité. Lorsque vous écrivez du nouveau code de gestion des fenêtres, il est vivement conseillé d'utiliser la commande Open form window, mieux adaptée aux interfaces actuelles.

Si vous passez -1 dans droite et bas, vous indiquez à 4D qu'il faut redimensionner automatiquement la fenêtre si les conditions suivantes sont réunies :

  • Vous avez conçu un formulaire et défini ses options de dimensionnement dans la fenêtre des propriétés des formulaires du mode Développement.
  • Avant d'appeler Open window vous avez sélectionné le formulaire à l'aide de la commande FORM SET INPUT, à laquelle vous avez passé le paramètre optionnel *.

Important : Ce dimensionnement automatique de la fenêtre n'aura lieu que si vous avez au préalable appelé la commande FORM SET INPUT pour le formulaire que vous allez afficher dans la fenêtre, et si vous lui avez passé le paramètre optionnel *.

  • Le paramètre type est optionnel. Il définit le type de fenêtre que vous souhaitez afficher. Si le type passé est négatif, la fenêtre sera flottante (si pris en charge). Si le type n'est pas spécifié, le type 1 est utilisé par défaut. Les constantes suivantes du thème "Open window" sont utilisables :
ConstanteCommentaire
Alternate dialog boxUtilisable en fenêtre flottante
Has full screen mode MacOption à ajouter aux fenêtres de type document sur macOS uniquement (ex : Plain form window+Form has full screen mode Mac)
Modal dialog box
Movable dialog boxUtilisable en fenêtre flottante
Palette windowUtilisable en fenêtre flottante
  • Non redimensionnable : -(Palette window+2) (Windows) ou -Palette window (macOS)
  • Redimensionnable : -(Palette window+6)
  • Plain dialog boxUtilisable en fenêtre flottante
    Plain fixed size window
    Plain no zoom box window
    Pop up window
    Plain window
    Resizable sheet window
    Round corner window
    Sheet window
    Texture appearanceOption à ajouter à un type de fenêtre sur macOS uniquement. Types compatibles : Plain window, Plain no zoom box window, Plain fixed size window, Movable dialog box, Round corner window
    • Le paramètre titre indique le titre (optionnel) de la fenêtre.
      Si vous passez une chaîne de caractères vide ("") dans titre, vous indiquez à 4D d'utiliser les valeurs saisies dans la zone Nom de la fenêtre de la fenêtre des Propriétés du formulaire en mode Développement pour le titre du formulaire que vous allez afficher dans la fenêtre.

    Important : Le nom par défaut du formulaire ne sera appliqué à la fenêtre que si vous avez appelé la commande FORM SET INPUT pour le formulaire que vous allez afficher dans la fenêtre et si vous lui avez passé le paramètre optionnel *.

    • Le paramètre caseFermeture, optionnel, désigne la méthode de gestion de la fermeture de la fenêtre. Si ce paramètre est passé, la case du menu Système (sous Windows) ou une case de fermeture (sous Mac OS) est ajoutée à la fenêtre. Lorsque l'utilisateur Windows double-clique sur la case du menu Système ou que l'utilisateur Mac OS clique sur la case de fermeture, la méthode passée dans caseFermeture est exécutée.

    Note : Vous pouvez aussi gérer la fermeture à partir de la méthode du formulaire affiché dans la fenêtre pendant l'événement On Close Box. Pour plus d'informations sur ce point, reportez-vous à la commande Form event code.

    Si plusieurs fenêtres sont ouvertes dans le même process, la dernière fenêtre créée est la fenêtre active (de premier plan) du process. Seules les informations situées dans la fenêtre active peuvent être modifiées. Toutes les autres fenêtres peuvent être visualisées. Lorsque l'utilisateur tape une touche du clavier, la fenêtre active vient toujours se placer au premier plan, si elle n'y est pas déjà.

    Les formulaires sont affichés à l'intérieur de fenêtres ouvertes à l'écran. Le texte passé à la commande MESSAGE est également affiché dans une fenêtre.

    Exemple 1

    La méthode projet suivante ouvre une fenêtre centrée dans la fenêtre principale (sous Windows) ou dans l'écran principal (sous Mac OS). Notez qu'elle accepte deux, trois ou quatre paramètres :

      // Méthode projet OUVRIR FENETRE CENTREE
    #DECLARE($width : Integer; $height : Integer; $type : Integer; $title : Text)
    var $SW; $SH; $WW; $WH : Integer
    $SW:=Screen width\2
     $SH:=(Screen height\2)-10
     $WW:=$width\2
     $WH:=$height\2
     Case of
        :(Count parameters=2)
           Open window($SW-$WW;$SH-$WH;$SW+$WW;$SH+$WH)
        :(Count parameters=3)
           Open window($SW-$WW;$SH-$WH;$SW+$WW;$SH+$WH;$type)
        :(Count parameters=4)
           Open window($SW-$WW;$SH-$WH;$SW+$WW;$SH+$WH;$type;$title)
     End case

    Une fois que cette méthode projet est écrite, vous pouvez l'utiliser de la manière suivante :

     OUVRIR FENETRE CENTREE(400;250;Plain dialog box;"Mise à jour Archives")
     DIALOG([Table outils];"OPTIONS MAJ")
     CLOSE WINDOW
     If(OK=1)
      // ...
     End if

    Exemple 2

    L'exemple suivant crée une fenêtre flottante comportant une case de menu système (sous Windows) ou une case de fermeture (sous Mac OS). La fenêtre est créée dans le coin supérieur droit de la fenêtre de l'application.

    var $mafenetre : Integer 
    $mafenetre:=Open window(Screen width-149;33;Screen width-4;178;-Palette window;"";"caseFermeture")
     DIALOG([Dialogues];"Palette de couleurs")

    La méthode caseFermeture appelle la commande CANCEL :

     CANCEL

    Exemple 3

    L'exemple suivant ouvre une fenêtre dont le titre et la taille proviennent des propriétés du formulaire affiché dans la fenêtre :

     var $mafenetre : Integer 
    FORM SET INPUT([Clients];"Ajout d'enregistrements";*)
     $mafenetre:=Open window(10;80;-1;-1;Plain window;"")
     Repeat
        ADD RECORD([Clients])
     Until(OK=0)

    Rappel

    Pour que la fonction Open window utilise automatiquement les propriétés du formulaire, vous devez avoir appelé FORM SET INPUT avec le paramètre optionnel * et les propriétés du formulaire doivent avoir été définies en fonction de cette utilisation.

    Exemple 4

    Cet exemple illustre le mécanisme de “retard” d’affichage des fenêtres feuille sous macOS :

      var $mafenetre : Integer 
    $mafenetre:=Open window(10;10;400;400;Sheet window)
      //A cet instant la fenêtre est créée mais reste invisible
     DIALOG([Table];"formDial")
      //L’événement Sur chargement est généré puis la fenêtre feuille est affichée, elle "descend"
      //du dessous de la barre de titre

    Voir aussi

    CLOSE WINDOW
    Open form window

    Propriétés

    Numéro de commande153
    Thread safe