Génération de menus
Un article de Wikipedia.
(Différences entre les versions)
(→Résultats) |
(→Conclusions) |
||
(19 révisions intermédiaires masquées) | |||
Ligne 1 : | Ligne 1 : | ||
= Génération de menus = | = Génération de menus = | ||
== But == | == 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 == | == Introduction == | ||
- | A plusieurs reprises, il s'est avéré | + | 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é : | Un menu est constitué : | ||
* d'un titre | * d'un titre | ||
- | * d'une liste d'entrées de | + | * d'une liste d'entrées (de choix) |
L'utilisation nécessite : | L'utilisation nécessite : | ||
Ligne 20 : | Ligne 20 : | ||
=== Type et constante === | === Type et constante === | ||
* La constante '''maxmenu''' détermine le nombre de ligne d'une page du menu | * La constante '''maxmenu''' détermine le nombre de ligne d'une page du menu | ||
- | * Le type '''menu''' contient | + | * Le type '''menu''' contient le titre et la liste des choix |
=== Procédures et fonctions === | === Procédures et fonctions === | ||
- | * La procédure <code pascal>initmenu(var m:menu)</code> initialise | + | * La procédure <code pascal>initmenu(var m:menu)</code> initialise la liste des choix (titre et liste de choix) |
- | * La procédure <code pascal>titlemenu(var m:menu;t:string)</code> permet de | + | * La procédure <code pascal>titlemenu(var m:menu;t:string)</code> permet de définir le titre des pages de menu |
- | * La procédure <code pascal>addmenuitem(var m:menu;e:string)</code> | + | * La procédure <code pascal>addmenuitem(var m:menu;e:string)</code> ajouter un élément à la fin de la liste des choix |
- | * La fonction <code pascal>selectmenu(m:menu):integer</code> affiche le menu et retourne la position de l'élément du menu | + | * La fonction <code pascal>selectmenu(m:menu):integer</code> 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 <code pascal>sizemenu(var m:menu):integer</code> retourne le nombre d'éléments | + | * La fonction <code pascal>sizemenu(var m:menu):integer</code> retourne le nombre d'éléments de la liste de choix |
=== Navigation === | === Navigation === | ||
* Les caractères '''q''' ou '''Q''' permettent de quitter le menu | * Les caractères '''q''' ou '''Q''' permettent de quitter le menu | ||
- | * Les caractères '''s''' ou '''S''' permettent de passer à la page | + | * 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 | + | * 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 : | ||
+ | |||
+ | <code pascal> | ||
+ | {$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; | ||
+ | ... | ||
+ | </code> | ||
== Conclusions == | == 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 == | == Ressources == | ||
* Génération de menus [[Media:Menu_pas.PDB]] | * Génération de menus [[Media:Menu_pas.PDB]] |
Version actuelle
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