Le guide Oracle Forms 9i/10g


précédentsommairesuivant

XIX. Les fenêtres

XIX-A. Définition

Une fenêtre est un cadre dans lequel s'affichent les canevas.
Elle possède une barre de titre et des boutons permettant de l'agrandir, la minimiser ou la fermer.

XIX-B. Concept

Forms supporte deux types de fenêtre:

  • Fenêtre document qui supporte habituellement le ou les canevas principaux
  • Fenêtre de dialogue souvent utilisée pour gérer des boites de dialogues attendant une réponse de l'utilisateur

Ces fenêtre peuvent également être modales ou non modales.
- Les fenêtres non modales permettent une navigation libre entre elles. Elles peuvent être munies de barres de défilement horizontale et/ou verticale.

- Les fenêtres modales ne permettent pas de naviguer vers une autre fenêtre, ce qui est le cas typique des boites de dialogues que l'utilisateur doit fermer pour revenir aux autres fenêtres. Elle ne disposent pas non plus de barre de défilement.

Dans une application de type MDI (Multiple Document Interface) la fenêtre principale contient la barre de menu ainsi que toutes les autres fenêtres. Elle est appelée fenêtre MDI. Elle possède également une barre de titre et il est possible de lui attacher un canevas de type barre d'outils vertical et/ou horizontal.

Une application Forms doit comporter au moins une fenêtre.

Une fenêtre peut contenir plusieurs canevas, mais un canevas ne peut être associé qu'à une seule fenêtre.

XIX-C. Mise en œuvre

Lors de la création d'un nouveau module, une fenêtre non modale de type document est automatiquement ajoutée.

Ajouter une fenêtre à l'application.

Dans le navigateur d'objets, cliquer le nœud Fenêtres puis sur l'icône Image non disponible

Affichez les propriétés de la nouvelle fenêtre avec la touche F4

Propriétés d'une fenêtre

Général
Nom est le nom que vous donnez à la fenêtre (30 caractères maxi commençant par une lettre)

Fonctionnel
Titre chaîne de caractères qui s'affichera dans la barre de titre de la fenêtre
Cette propriété peut être modifiée à l'exécution via la fonction Set_Window_Property(…, TITLE )
Si le titre n'est pas renseigné, Forms affichera le nom de la fenêtre.
Canevas principal indique le nom de canevas principal que devra afficher la fenêtre
Canevas à barre d'outils horizontale indique le nom du canevas barre d'outils horizontal
Canevas à barre d'outils verticale indique le nom du canevas barre d'outils vertical
Type de fenêtre peut prendre l'une des deux valeurs suivantes

  • Document
  • Boite de dialogue

Une fenêtre de type document ne peut être déplacée en dehors de la fenêtre MDI
Une fenêtre de type Boite de dialogue peut être déplacée en dehors de la fenêtre MDI
Modal indique la modalité de la fenêtre
Oui indique que la fenêtre ne peut être quittée sans être fermée
Non indique que l'utilisateur peut naviguer entre les fenêtres
Masquer sur sortie ne s'applique qu'aux fenêtre non modales et indique si la fenêtre doit être masquée lorsque l'utilisateur clique sur une autre fenêtre
Cette propriété peut être modifiée à l'exécution via la fonction Set_Window_Property(…, HIDE_ON_EXIT )
Fermeture autorisée indique si la fenêtre sera munie d'une icône de fermeture.
Déplacement autorisé indique si l'utilisateur pourra déplacer la fenêtre
Redimensionnement autorisé indique si l'utilisateur pour modifier les dimensions de la fenêtre
Agrandissement autorisé indique si la fenêtre sera munie d'une icône d'agrandissement
Réduction autorisée indique si la fenêtre sera munie d'une icône de minimisation
Titre réduit chaîne de caractères représentant le titre lorsque la fenêtre est icônisée
Nom de fichier icône nom de l'image lorsque la fenêtre est icônisée
Cette propriété peut être modifiée à l'exécution via la fonction Set_Window_Property(…, ICON_NAME )
Menu hérité indique si la fenêtre doit hériter du menu de la forme courante (non supporté sur les plateformes Windows)

Physique
Position X position horizontale de la fenêtre dans le système de coordonnées
Cette propriété peut être modifiée à l'exécution via la fonction Set_Window_Property(…, X_POS )
Position Y position verticale de la fenêtre dans le système de coordonnées
Cette propriété peut être modifiée à l'exécution via la fonction Set_Window_Property(…, Y_POS )
Largeur largeur de la fenêtre dans le système de coordonnées
Cette propriété peut être modifiée à l'exécution via la fonction Set_Window_Property(…, WIDTH )
Hauteur hauteur de la fenêtre dans le système de coordonnées
Cette propriété peut être modifiée à l'exécution via la fonction Set_Window_Property(…, HEIGHT )
Relief Type de relief de la fenêtre (dépend du système d'exploitation)
Afficher barre de défilement horizontale indique si une barre de défilement horizontale doit être affichée dans la fenêtre
Afficher barre de défilement verticale indique si une barre de défilement verticale doit être affichée dans la fenêtre


Afficher une fenêtre à l'exécution

Deux instructions possibles:
Show_Window( 'nom_fenetre' | id_fenetre ) ;
Show_Window( 'nom_fenetre' | id_fenetre, pos_x, pos_ y ) ;
Set_Window_Property('nom_fenetre' | id_fenetre, VISIBLE, PROPERTY_TRUE ) ;

nom_fenetre représente le nom de la fenêtre
id_fenetre représente l'identifiant interne de la fenêtre pouvant être obtnu avec l'instruction Find_Window()
pos_x représente la coordonnée horizontale d'affichage de la fenêtre
pos_y représente la coordonnée verticale d'affichage de la fenêtre

Exemple

 
Sélectionnez

BEGIN 
   Show_Window( 'Ventes', 20, 5); 
END;


Fermer une fenêtre à l'exécution

Deux instructions possibles:
Hide_Window('nom_fenetre' | id_fenetre ) ;
Set_Window_Property('nom_fenetre' | id_fenetre, VISIBLE, PROPERTY_FALSE ) ;

Remarque:
Forms affiche toujours l'item qui possède le focus.
Si vous tentez de fermer la fenêtre dans laquelle se trouve l'item qui a le focus, il ne se passera rien.
Avant de fermer une fenêtre, pensez a déplacer le focus sur un item d'une autre fenêtre (Go_block, Go_Item)

Déplacer une fenêtre à l'exécution

Deux instructions possibles:
Move_Window('nom_fenetre' | id_fenetre, x, y ) ;
Set_Window_Property('nom_fenetre' | id_fenetre, X_POS, x ) ;
Set_Window_Property('nom_fenetre' | id_fenetre, Y_POS, y ) ;
Set_Window_Property('nom_fenetre' | id_fenetre, POSITION, x, y ) ;

Dimensionner une fenêtre à l'exécution

Deux instructions possibles:
Resize_Window('nom_fenetre' | id_fenetre, x, y ) ;
Set_Window_Property('nom_fenetre' | id_fenetre, WIDTH, largeur ) ;
Set_Window_Property('nom_fenetre' | id_fenetre, HEIGHT, hauteur ) ;
Set_Window_Property('nom_fenetre' | id_fenetre, WINDOW_SIZE, largeur, hauteur ) ;
Set_Window_Property('nom_fenetre' | id_fenetre, WINDOW_STATE, etat ) ;

etat peut valoir

  • NORMAL
  • MAXIMIZE
  • MINIMIZE


Défiler le contenu d'une fenêtre à l'exécution

Deux instructions possibles:
Scroll_View ('nom_fenetre' | id_fenetre, x, y ) ;
Set_View_Property ('nom_fenetre' | id_fenetre, X_POS_ON_CANVAS, pos_x ) ;
Set_View_Property ('nom_fenetre' | id_fenetre, Y_POS_ON_CANVAS, pos_y ) ;

Remarque:
Si l'utilisateur se déplace avec les touches du clavier vers un item non visible dans la fenêtre, celle-ci défile automatiquement afin que l'item qui reçoit le focus soit visible.

Naviguer d'une fenêtre à l'autre

Pour cela, il suffit de déplacer le focus vers le bloc ou l'item contenu dans la fenêtre cible avec les instructions:
Go_Block() ou Go_Item().


Les déclencheurs relatifs aux fenêtres

  • When-Window-Activated se déclenche lorsque la fenêtre reçoit le focus
  • When-Window-Closed se déclenche lors de la fermeture
  • When-Window-Deactivated se déclenche lorsque la fenêtre perd le focus
  • When-Window-Resized se déclenche lorsque la fenêtre est redimensionnée

La fenêtre principale d'une application MDI

Lorsque vous voulez manipuler la fenêtre principale d'une application MDI, utilisez la constante : FORMS_MDI_WINDOW en lieu et place du nom de la fenêtre

Set_Window_Property ( FORMS_MDI_WINDOW, TITLE, 'Gestion des Achats' ) ;

XIX-D. Techniques avancées

La majorité des actions a effectuer sur les fenêtres se fait généralement avant que la forme soit affichée.
Il convient donc de placer ces manipulations dans un déclencheur When-New-Form-Instance

Modifier le titre d'une fenêtre sans connaître son nom

Il est fréquent d'assigner un titre à la fenêtre principale dès le chargement de l'écran.
Lorsque cette opération est codée depuis une librairie PL/SQL, celle-ci ignore généralement le nom de la fenêtre. (à moins que vous n'ayez mis en place un système dans lequel la fenêtre principale porte toujours le même nom).

Si vous ignorez le nom de la fenêtre principale, vous pouvez le retrouver en interrogeant le nom du canevas assigné à l'item qui a le focus. Ce nom de canevas vous donnant alors le nom de la fenêtre qui l'héberge.

Déclencheur : When-New-Form-Instance
Sélectionnez

Declare
  LC$Win  Varchar2(30) ;
Begin
  -- Nom de la fenêtre principale --  
  LC$Win := Get_View_Property( Get_Item_Property( :SYSTEM.CURSOR_ITEM, ITEM_CANVAS ), WINDOW_NAME ) ;
  -- Titre de la fenêtre --
  Set_Window_Property( LC$Win, TITLE, 'Le titre de la fenêtre' ) ;
End ;

précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2005 SheikYerbouti. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.