Pas d'inquiétude, avec PBAdonf, c'est dans la poche ! ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 05-06-2006 20:08:11

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Les Fenêtres (ou Window)

LES FENÊTRES

Il existe deux façons standards de construire des applications PB:
- Single Document Interface (SDI) où l'utilisateur interagit avec un document à la fois.
- Multiple Document Interface (MDI) où l'utilisateur interagit avec plusieurs fenêtres Feuilles ou Sheets à la fois.


LES TYPES DE FENÊTRES

LES FENÊTRES Main

    Les fenêtres Main sont indépendantes des autres fenêtres, ce qui leur permet de venir au-dessus d'autres fenêtres et peuvent être couvertes par d'autres fenêtres. Ce type de fenêtre peut avoir un menu et un menu de contrôle et peut être minimisé, maximisé ou redimensionné ainsi qu'avoir une bordure.
    Les fenêtres feuilles ou sheets doivent être de type Main pour avoir un Menu contrairement aux fenêtres de type Child.


LES FENÊTRES Child

    Une fenêtre de type Child ou enfant est ouverte par une autre fenêtre de type Main ou Pop-up. Elle s'affiche dans la surface de la fenêtre mère. Elle est liée à la fenêtre mère puisqu'elle ne peut pas quitter la surface de la fenêtre mère. Si elle est maximisée, elle prend toute la surface de la fenêtre mère. Si elle est minimisée, elle devient une icône en bas de la fenêtre mère. Elle peut avoir un Menu de contrôle et une bordure et peut être maximisée, minimisée ou redimensionnée.
    La fenêtre Child n'est jamais considérée comme une fenêtre active, sa position est relative par rapport à la fenêtre mère.
    La fenêtre Child est rarement utilisée, il est fait usage de la fenêtre MDI avec des feuilles où la gestion des fenêtres est automatique.


LES FENÊTRES Pop-Up

    Une fenêtre de type Pop-up est utilisée pour fournir des informations à une autre fenêtre. Elle peut couvrir sa fenêtre mère et s'afficher en dehors de celle-ci. Elle est minimisée ou fermée lorsque la fenêtre mère est minimisée ou fermée. Elle peut avoir un Menu, un Menu de contrôle et une bordure. Elle peut être minimisée, maximisée ou redimensionnée.


LES FENÊTRES Response

    Les fenêtres de type Response sont utilisées pour forcer l'utilisateur de répondre à une question avant de continuer l'application. Ce sont des fenêtres modales. Ce type de fenêtre couvre toutes les autres fenêtres, ne peut être minimisée ou maximisée mais peut avoir un Menu de contrôle.


LES FENÊTRES MessageBox()

    C'est une fenêtre modale prédéfinie. Il est possible de lui donner un Titre, un Message et choisir une liste de boutons et d'icônes pour la personnaliser. Si Message est NULL, la fenêtre ne s'affiche pas.

MessageBox('Titre', Message, {Icône, {Bouton, {Défaut}}})

Message peut être de type String, Number ou Boolean.
Icône est de type énuméré Icon:
    Information!, StopSign!, Exclamation!, Question!, None!
Bouton est de type énuméré Button:
    Ok!, OkCancel!, YesNo!, YesNoCancel!, RetryCancel!, AbortRetryIgnore!
Défaut est le bouton par défaut qui varie entre 1 et 3 selon les Boutons spécifiés.

La conversion vers String n'est pas nécessaire, pour Message lorsqu'il est soit Number ou Boolean.

Ne pas utiliser MessageBox() dans les événements suivants Modified, GetFocus, LoseFocus, ItemFocusChanged, ItemChanged, Activate, Deactivate du fait du changement du Focus.
Ne pas utiliser MessageBox() après l'appel de PrintOpen().



LES FENÊTRES MDI

    La fenêtre MDI doit avoir un Menu associé, optionnellement un Menu de contrôle, elle peut être minimisée, maximisée et redimensionnée. Elle peut comporter une zone MicroHelp qui apparaît en bas de la fenêtre pour afficher des informations.

    La fenêtre MDI est composée d'une zone cliente, d'un MicroHelp, de Menus, de Barres d'Outils et de Fenêtres Feuilles.

    La zone cliente ne comporte généralement pas de contrôles. Il faut l'élargir pour pouvoir contenir les fenêtres feuilles à l'affichage.

    Le MicroHelp peut être modifié automatiquement ou en utilisant la fonction SetMicroHelp().
    Les Menus peuvent comporter un texte d'aide qui s'affiche dans le MicroHelp lorsque l'utilisateur passe la souris sur l'élément du Menu ou sur l'icône de la Barre d'Outils.
    Il est possible un texte d'aide dans la propriété Tag associée aux contrôles d'une fenêtre et appeler la fonction:

w_frame.SetMicroHelp(Tag)

dans l'événement GetFocus du contrôle pour indiquer la nature du contenu à saisir par exemple.

    Le Menu peut être partagé entre le Cadre MDI et la Feuille, mais il est possible de spécifier un Menu différent pour chaque Feuille. Si la Feuille est ouverte sans Menu associé, elle hérite du Menu du Cadre MDI. Il y a une Menu Window dans toutes les applications MDI qui contient les différentes façons d'arranger les Feuilles grâce à la fonction:

w_frame.ArrangeSheets(ArrangeType)

ArrangeType est un type énuméré: Cascade!, Layer!, Tile!, TileHorizontal!, Icons!

    La Barre d'Outils est associée au Menu du Cadre MDI et/ou à la Feuille si celle ci possède un Menu spécifique.
    Certaines propriétés du Cadre MDI sont relatives à la Barre d'Outils:

ToolbarVisible    Si la Barre d'Outils est visible
ToolbarTitle    Le titre de la Barre d'Outils lorsqu'elle est flottante.
ToolbarHeight    Hauteur si flottante
ToolbarWidth    Largeur si flottante
ToolbarX    Position X si flottante
ToolbarY    Position Y si flottante
ToolbarAlignment    Type énuméré AlignAtBottom!, AlignAtLeft!, AlignAtRight!, AlignAtTop!, Floating!

    La Fenêtre Feuille est une fenêtre qui a été ouverte par la fonction OpenSheet() indépendamment du Style de la fenêtre.


LES PROPRIÉTÉS DE LA FENÊTRE

    Certaines propriétés utiles sont control[], MenuID et WindowState.

    La propriété control[] est accessible uniquement en lecture qui est un tableau des contrôles qui sont définis dans une fenêtre. Elle est utile lorsqu'il s'agit de faire un traitement sur tous les contrôles par exemple la réinitialisation des contrôles d'une fenêtre.

    La propriété MenuID c'est le pointeur vers le Menu associé à la Fenêtre.

    La propriété WindowState est un type énuméré: Maximized!, Minimized! et Normal!.


LES ÉVÉNEMENTS DE LA FENÊTRE

    L'événement Activate est déclenché avant que la Fenêtre ne devienne active et n'obtienne le Focus.

    L'événement Deactivate est déclenché quand la fenêtre perd le Focus et devient inactive.

    L'événement Clicked est déclenché quand une zone visible de la fenêtre qui n'est pas couverte par un contrôle est cliquée.

    L'événement DoubleClicked est déclenché lorsqu'il y a double-click sur la zone précédente.

    L'événement Open est déclenché lorsque la fenêtre est ouverte pour la première fois et après que les événements Constructor de tous les contrôles avaient été exécutés.

    L'événement CloseQuery est déclenché juste avant l'événement Close et est utilisé pour vérifier les status des DataWindows et s'assurer de la sauvegarde des données. PB vérifie la valeur de Message.ReturnValue pour déterminer si le Close a été abandonné si 1 ou de continuer l'événement Close si 0.

    L'événement Close est déclenché avant que les événements Destructor de chaque contrôle ne s'exécutent. Ce qui implique l'accessibilité des propriétés des contrôles dans cet événement.

    L'événement SystemKey est déclenché quand la touche alternate ALT est pressée et le Focus n'est pas dans un champ Edit.


LES FONCTIONS POWERSCRIPT DE FENÊTRE

LA FONCTION Open()

    La fonction Open() est utilisée pour charger une fenêtre et de l'afficher ainsi que les contrôles associés.

Open(Fenêtre {, Parent})

Fenêtre est soit un objet Fenêtre ou une variable de la Classe Window.
Parent permet de spécifier le Parent de la Fenêtre ouverte sinon c'est la Fenêtre courante.
Parent n'est utilisé que pour les Styles de Fenêtre Pop-Up et Child.
La Fonction Open() retourne -1 en cas d'erreur ou 1 en cas de réussite.

Open(Fenêtre, TypeFenêtre {, Parent})

TypeFenêtre est un String qui indique la classe de fenêtre à ouvrir ou un descendant de la fenêtre à ouvrir.


LA FONCTION OpenSheet()

    Cette fonction est spécifique aux fenêtres Feuilles d'une Fenêtre MDI.

OpenSheet(Feuille {, TypeFenêtre}, MDIFrame {, MenuPosition {, ArrangeOpen}})

MenuPosition ajoute le nom de la Feuille dans la liste du Menu Window.
ArrangeOpen est un type énuméré qui force l'affichage de la Feuille en Cascaded!, Layered! ou Original!


LA FONCTION Close()

    La fonction Close() ferme une Fenêtre et libère toutes les ressources qu'elle utilise.

Close(Window)


LE PASSAGE DE PARAMETRES AUX FENÊTRES

    Les fonctions Open, OpenSheet et Close possèdent des versions modifiées qui permettent de passer des paramètres qui utilisent l'objet Message pour contenir l'information passée.

Les propriétés de l'objet message qui contiennent les données passées en paramètres sont:

Message.DoubleParm    Passe des valeurs numériques
Message.StringParm    Passe des valeurs de type String
Message.PowerObjectParm    Passe des objets PowerBuilder, y compris les structures


LA FONCTION OpenWithParm()

    Cette fonction est la même que Open(), sauf Valeur est ajoutée:

OpenWithParm(Fenêtre, TypeFenêtre, Valeur {, Parent}


LA FONCTION OpenSheetWithParm()

    Cette fonction est la même que OpenSheet avec la Valeur à passer:

OpenSheetWithParm(Feuille, Valeur {, TypeFenêtre}, MDIFrame {, MenuPosition {, ArrangeOpen}})


LA FONCTION CloseWithReturn()

    Cette fonction est la même que Close() avec la valeur à retourner


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22