DÉVELOPPEMENT D'APPLICATIONS AVEC ...




COURS 5 - CONSTRUCTION D'UN MENU






Propriétés du Window

Presque toutes les applications Windows fonctionnent avec un menu. La plupart des menus ont une apparence semblable et permettent les fonctions de base comme: Ouvrir feuilles, Fermer feuilles, Quitter, etc. Au cours de cet exercice nous allons créer un menu pour l'application Scoring qui permettra d'exécuter les fonctions principales sur les windows que nous avons déjà créés. Le résultat final aura l'air de ceci:


Fig. 5-1


L'outil de base pour créer un Menu est le Menu painter. En ouvrant le Menu painter pour la première fois on doit d'abord utiliser New pour créer un nouveau menu. On donne tout de suite un nom à ce nouveau menu, par exemple: m_scoring (notez le préfixe m_ pour identifier un menu) et on sauvegarde. Pour créer les niveaux inférieurs du menu on utilise le bouton Next level. Le Painter a l'air de ceci une fois qu'on a quelques fonctions de définies:


Fig. 5-2


Notez que la propriété Menu Item name: est importante parce qu'il faut se servir de ce nom si on veut s'adresser à un item spécifique du menu dans un script. Par exemple, supposons qu'il faut désactivé la fonction Fermer d'un menu en ouvrant un window quelconque, on écrirait le script suivant:

Les scripts de menus

Dans un menu en cascade on écrit le script au niveau le plus bas dans le menu. On active le Script painter à l'aide du bouton Script et on code l'action à exécuter. Par exemple, dans le script du Clicked event pour m_scoring.m_file.m_ouvrir.devoir1 on écrirait: Open (w_devoir1).




LE "DEBUG"

Quand un script ne fonctionne pas comme on s'attend, il faut habituellement le corriger. On ne parle pas ici des erreurs de syntaxe - celles-ci ont été relevées par le compilateur et on n'aurait pas réussi à sortir du script. On parle des erreurs de logique où on oublie d'assigner une valeur, on exécute un mauvais calcul, etc.

Pour étudier un script au moment de l'exécution on utilise l'option Debug qu'on retrouve sous le bouton: .

On debug toujours un script. On doit d'abord identifier le window, le control et l'event qu'on veut analyser et puis on met des Stop aux endroits appropriés dans le code pour nous permettre de regarder l'état du système à un moment précis.


Fig. 5-7



Fig. 5-8




L'APPLICATION MDI

MDI signifie Multiple-Document Interface - c'est un style d'interface standard pour les applications Windows. Ms-Word, MS-Excel et même Powerbuilder sont toutes des applications MDI. Dans une application MDI vous obtenez un menu standard et la façon d'ouvrir les windows est la même partout.

Pour créer une application MDI on suit le même processus que l'application ordinaire jusqu'au point où PB demande si on veut créer l'application template et on répond "Yes". La première chose qu'on remarque est que l'application génère automatiquement toute une série d'objets: des windows et des menus. Aussi, on découvre qu'on peut faire Run immédiatement et ça marche - il ne se passe pas grand-chose mais, une feuille s'ouvre et un menu est affiché. Si on ouvre le script du application Open event on voit que toute une série d'instructions ont été générées (elles réfèrent presque toute à la connection avec la base de données) mais la derniêre contient le Open ( ) du premier window.



Le window de base s'appelle w_genapp_frame - c'est un window, un cadre, dans lequel tous les autres windows vont s'ouvrir. Son menu associé est m_genapp_frame. Sous le window m_genapp_frame on retrouve le deuxième niveau de window: w_genapp_sheet et son menu associé: m_genapp_sheet. Si on étudie les deux menus générés on observe un concept très important en programmation orientée-objet: Inheritance. Le menu m_genapp_frame est un ancêtre du menu m_genapp_sheet ou, si on préfère, m_genapp_sheet est un descendant de m_genapp_frame. Un objet qu'on crée par inheritance est comme une copie de l'original mais, avec la différence très importante que: tout changement qu'on fait à l'ancêtre est fait aussi à tous ses descendants. Prenez-en note - ceci est une technique fondamentale de la programmation orientée-objet.







[ PAGE D'ACCUEIL ]      [ PRÉCÉDENTE ]      [ SUIVANTE ]