Génération de menus
Un article de Wikipedia.
Sommaire |
Génération de menus
But
A partir d'une liste de choix, présenter un menu texte regroupant un nombre limité de choix ainsi qu'une navigation permettant de visualiser l'ensemble de la liste.
Introduction
A plusieurs reprises, il s'est avéré que la présentation d'une liste de choix sous forme de pages de menu texte limité à un certain nombre de lignes était utile.
Un menu est constitué :
- d'un titre
- d'une liste d'entrées (de choix)
L'utilisation nécessite :
- une commande pour afficher le menu et retourner la sélection
- un caractère pour passer à la page suivant si elle existe
- un caractère pour passer à la page précédende si elle existe
- un caractère pour quitter le menu
Résultats
L'implémentation nécessite les API Palm PalmAPI2 et est la suivante (voir Ressource):
Type et constante
- La constante maxmenu détermine le nombre de ligne d'une page du menu
- Le type menu contient le titre et la liste des choix
Procédures et fonctions
- La procédure
initmenu(var m:menu)
initialise la liste des choix (titre et liste de choix) - La procédure
titlemenu(var m:menu;t:string)
permet de définir le titre des pages de menu - La procédure
addmenuitem(var m:menu;e:string)
ajouter un élément à la fin de la liste des choix - La fonction
selectmenu(m:menu):integer
affiche le menu et retourne la position de l'élément dans la liste des choix lors de la sélection d'un élément du menu ou 0 si le menu est quitté. - La fonction
sizemenu(var m:menu):integer
retourne le nombre d'éléments de la liste de choix
Navigation
- Les caractères q ou Q permettent de quitter le menu
- Les caractères s ou S permettent de passer à la page suivante de la liste si elle existe
- Les caractères p ou P permettent de passer à la page précédente de la liste si elle existe
Utilisation
Une utilisation typique se présente de la façon suivante :
{$i PalmAPI2.pas}
{$i Menu.pas}
...
var menu01 : menu;
select : integer;
...
initmenu(menu01);
titlemenu(menu01,'Titre du menu');
addmenuitem(menu01,'Choix 1');
addmenuitem(menu01,'Choix 2');
...
repeat
select:=selectmenu(menu01);
case select of
1:begin
// action pour le Choix 1
end;
2:begin
// action pour le Choix 2
end;
end;
until select = 0;
...
Conclusions
- Un menu permet de structurer la navigation des logiciels.
- Actuellement, il faut connaître l'ordre d'introduction des éléments dans la liste pour pouvoir l'associer correctement à une commande lors de sa sélection dans un menu.
Ressources
- Génération de menus Media:Menu_pas.PDB
- Source Menu.pas
Catégories: Logiciel | Pascal | Palm