Aller au menu - Aller au contenu

Icône Création de barres de menus sur TI89, 92 et V200

Avatar
Mise à jour : 21/01/2009
Difficulté : Facile Facile
21 visites depuis 7 jours, classé 746/786
Bonjour les zéros !

Vous avez lu l'excellent tutoriel de Lanfeust 313 sur le Ti-Basic, mais vous possédez une TI 89, 92 ou Voyage 200. Cependant, un point n'y a pas été abordé : les barres de menus.
C'est dans ce but que je vous propose de faire rapidement le tour du sujet. En gros : à quoi ça ressemble, à quoi ça sert et comment en réaliser une facilement ?

La barre de menu

Qu'est-ce qu'une barre de menus ?


À l'instar d'une barre de menus sous Word par exemple, avec ses menus "Fichier", "Edition"...
En fait, une barre de menus sous TI, c'est très ressemblant :

Image utilisateur

(ici un extrait d'un petit programme sur le PGCD et les divisions euclidiennes)


On observe bien la ressemblance, mis à part le fait que sur la TI, il n'y a pas de souris : tout se fait avec les touches. En ce qui concerne la barre de menus, on y naviguera avec les touches F1 - F8.

Et ma barre de menus, elle me sert à quoi ? Est-elle vraiment utile ?


En fait, tout dépend du programme et de l'utilisation que l'on veut en faire. Comme l'a fait remarqué Binabik avec les DropDown dans les boîtes de dialogue (qu'il remplace astucieusement par des prompt), on pourrait très bien remplacer les barres de menus par le même procédé, ce qui donnerait un look à la TI 83... Bref, si déjà on dispose d'une calculatrice dotée d'un écran de bonne résolution, autant en tirer le maximum et soigner la présentation ! :D

Voilà, maintenant que vous êtes à peu près au point sur les barres de menus, on va passer à la réalisation.

Réalisation d'une barre de menus

Dans cette partie, je vous propose de réaliser la barre de menu (et pourquoi pas le programme en entier) d'un programme permettant de calculer l'aire et le périmètre de diverses figures géométriques.


Pour les parties de code, j'ai choisi la coloration syntaxique du Pascal (qui me convient plutôt bien), le code Ti-Basic n'étant pas géré par le zCode. Pas d'inquiétude donc, c'est bien un tutoriel sur le Ti-Basic et non sur le Pascal.


On commence tout de suite avec la syntaxe principale de la barre de menu :
Code : Pascal
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
calcul()
Prgm
ClrIO
Toolbar
Title "PGCD"
Item "Resultat",re
Item "Le détail",de
Title "Quitter",qt
EndTBar
//suite du programme
EndPrgm

Explication du code :

Au début, c'est normal : le nom du programme, baptisé calcul pour l'occasion, les instructions de début de programme (Prgm) et l'effacement de l'écran (ClrIO, qui se traduit en français par EffES). Ensuite, on attaque directement la barre de menu :

  • on annonce la barre en ouvrant le bloc de la barre avec "Toolbar", qui signifie en anglais barre d'outils ;
  • le premier "Title" est le titre du premier menu ;
  • les "Item" sont les sous-menus, comme le sont "Enregistrer" ou "Imprimer", dans le menu fichier de Word ;
  • on enchaîne avec un deuxième menu appelé "Quitter", qui va permettre (dans ce cas en appuyant sur F2) de quitter le programme.


Et tes re, de, qt après les items et les titres, ça sert à quoi ?

Séparés par des virgules des données visibles par l'utilisateur (celles-ci sont données entre guillemets), ces instructions de deux lettres (il pourrait y en avoir une seule ou plus, mais évitez tout de même de mettre des mots entiers) sont des noms d'étiquettes (labels en anglais, Lbl en Ti-Basic) qui serviront lorsque vous voudrez donner les instruction relatives au menu concerné. Un exemple pour bien comprendre :
Code : Pascal
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
nom()
Prgm      //début du programme
Toolbar      //instructions pour des menus
Title "Quitter",qt
EndTBar

     //plein de code !

Lbl qt      //c'est l'étiquette qt.

   //instructions pour quitter le programme

EndPrgm

Ainsi, lorsque l'on valide le choix "quitter" dans la barre de menus, c'est un peu comme si l'on avait fait un Goto vers l'étiquette qt.

Les noms d'étiquette ne sont pas des variables : inutile donc des les déclarer comme locales (avec Local) au début du programme.


Vous l'avez certainement remarqué dans le premier exemple : il n'est absolument pas obligatoire d'ajouter des sous-menus à tous les menus, on peut aisément mettre l'étiquette directement après le titre du menu.


Allez, à présent vous devriez être capables d'élaborer le programme (avec une barre de menus) annoncé au début de la partie. Un petit conseil cependant : mettez l'étiquette "debut" par exemple avec l'annonce du bloc Toolbar / EndTBar pour pouvoir revenir à la barre de menus à tout moment du programme.

Correction



La cloche a sonné, c'est l'heure de la correction (après ramassage des copies bien entendu !).

Je vous propose le code suivant (j'espère qu'il est suffisamment commenté) :

Code : Pascal
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
geom()
Prgm
ClrIO
Lbl debut
Toolbar           // début du bloc de la barre de menus
Title "Aire"       // premier menu
Item "Carré",ca
Item "Rectangle",rec
Title "Périmètre"
Item "Carré",cap
Item "Rectangle",recp
Title "Quitter",qt
EndTBar

Lbl ca
ClrIO                // pour effacer la barre de menus
Input "Coté",c     // on demande la valeur du côté du carré
c*c->a             // on calcule l'aire du c, la flèche est sur la touche "sto"
Disp "Aire =",a
Pause              // pour pouvoir lire tranquillement la réponse (appuyer sur "enter" pour continuer)
Goto debut       // retour au menu

// étiquettes suivantes (le principe est le même, il suffit de changer les calculs !!

Lbl qt            // instructions pour quitter
ClrIO
DispHome
Stop
EndPrgm


Et voilà ! Ce n'était pas super difficile :) .

Bien sûr, ce code n'est pas parfait : on peut toujours l'améliorer. Dans ce cas, je propose surtout de retoucher un peu le "design", par exemple en ajoutant des boîtes de dialogue pour la saisie des données de départ et pour l'affichage des résultats.
Enfin, en guise de conclusion, je vous conseille de lire la documentation du Ti-Basic, disponible à cette adresse (sur le site officiel des calculatrices Texas Instruments). Vous y trouverez la majeure partie des fonctions du Ti-Basic avec leur syntaxe.

Q.C.M.

Quelles sont les instructions de début et de fin de bloc de barre de menus ?
Le code suivant est-t-il correct ?

Code : Pascal
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
prog()
Prgm
EffES
Toolbar
Title "Choix1"
Item "essai1"
Item "essai2"
Title "Quitter"
EndTBar
EffES
Lbl essai1
Disp "essai1 validé"
Pause
Goto quitter
Lbl essai2
Disp "essai2 validé"
Pause
Goto quitter
Lbl quitter
EffES
AffEcran
EndPrgm
Allez, une petite dernière pour la réflexion (et les parallèles entre langages) :

le début de programme suivant peut-il exister ?
Code : Pascal
1
2
3
4
prog(x,y)
Prgm
//...
EndPrgm

Statistiques de réponses au QCM

Ce tutoriel est à présent terminé. J'espère que tout est clair. Le cas échéant, n'hésitez pas à m'envoyer un MP.

À la prochaine !

Partager

10 commentaires pour "Création de barres de menus sur TI89, 92 et V200"
Note moyenne : 3.13 / 4 (8 votes)
Pseudo Commentaire
Hors ligne InfernoLeZéro # Posté le 12/10/2011 à 17:11:59
Avatar

Les boucles ne font pas forcément baisser plus la vitesse que les instructions goto...
Hors ligne Mayeul0 # Posté le 29/01/2012 à 16:18:18

Les Goto utilisent plus le processeur à cause de la recherche du label(lbl) et sont donc plus long.
Hors ligne Mayeul0 # Posté le 29/01/2012 à 16:27:35

Il est conseillé d'utiliser des boucles plutôt que des goto/lbl.Pour les menus, on doit utiliser les goto/lb.
Dans le dernier code pour le goto/lbl début, il vaut mieux mettre une boucle loop avec exit derrière le lbl quitter et les instructions pour quitter après le endloop.
Hors ligne sp.conductos # Posté le 29/01/2012 à 18:26:33
Avatar

Études : EPFL

Pour le débat Loop contre Lbl dans ce cas, je suis partisan du Lbl parce que 1) il s'agit du mécanisme voulu pour la gestion des menus et 2) cela évite justement de parler de boucle sur un exemple minimal (on parle de TI-Basic, pas d'un langage "généraliste") et 3) Loop + Exit attire autant les foudres des puristes que Lbl et Goto, mais encore une fois, ce langage est construit sur ces idiomes déconseillés dans d'autres.
Hors ligne axellink # Posté le 18/05/2012 à 13:33:52
Avatar

Avis : Bon

Ville : Montauban
Pays : France métropolitaine
Études : EISTI

Pour le débat loop/goto : les loop n'existent pas, il s'agit d'un raccourci syntaxique sur les ordinateurs hein, essayez de programmer directement en langage assembleur c'est à dire au plus proche de l'ordinateur, et vous verrez que les loop sont en fait réaliser avec un saut conditionnel, et comme les programmes calculette ne se compile pas, bah pas de loop

ET POUF C'EST tout !!!
 

Voir tous les commentaires
Ce tutoriel a été corrigé par les zCorrecteurs.