Génération de menus

Un article de Wikipedia.

(Différences entre les versions)
(Conclusions)
Version actuelle (16 mars 2008 à 10:17) (modifier) (défaire)
(Conclusions)
 
(18 révisions intermédiaires masquées)
Ligne 1 : Ligne 1 :
= Génération de menus =
= Génération de menus =
== But ==
== But ==
-
Générer automatiquement des pages de menu texte et permettre une navigation entre ces menus.
+
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é qu'une navigation sous forme de pages de menu texte limité à un certain nombre de lignes était utile.
+
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 menu
+
* 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 l'ensemble du menu
+
* 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 le menu (titre et éléments du menu)
+
* 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 définit le titre des pages de menu
+
* 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> permet d'ajouter les éléments du menu
+
* 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 sélectionné ou 0 si le menu est quitté
+
* 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 du menu
+
* 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 du menu suivant si elle existe
+
* 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 du menu suivant 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 :
 +
 
 +
<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.
* 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 ==

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