Manuel Amos Professional  Sommaire  Index

Menus


De meme, la fonction CHOICE peut renvoyer l option selectionnee a un niveau donne dans la hierarchie du menu. Par exemple :

E> Menu$(1)="Titre"
   Menu$(1,1)="Option 1"
   Menu$(1,2)="Option 2"
   Menu$(1,2,1)="Option 2.1"
   Menu On
   Do
    If Choice Then Print Choice(1),Choice(2),Choice(3)
   Loop

Pour de tres grands menus, la structure IF utilisee dans l exemple precedent deviendrait peu pratique, et causerait des ralentissements pendant la lecture des menus. AMOS Professional fournit une methode pour gerer les plus grands menus.

ON MENU PROC
instruction : selection automatique de menu
On Menu Proc procedure1
On Menu Proc procedure1,procedure2

Chaque titre dans votre menu peut etre assigne a sa propre procedure, qui sera executee automatiquement lorsque cette option est selectionnee par l utilisateur. Comme les autres commandes ON MENU decrites ci-dessous, ON MENU PROC utilise des interruptions, ce qui signifie qu elle est executee 50 fois par seconde. Votre programme peut donc s occuper d autres taches pendant que les menus sont controles en permanence par le systeme.

Quand une selection automatique se produit suite a ON MENU PROC, la procedure est executee et le programme revient a l instruction qui suit immediatement l appel ON MENU. Les procedures peuvent utiliser la fonction CHOICE pour verifier quelle option a ete declenchee, et effectuer l action appropriee.

ON MENU GOSUB
instruction : selection automatique de menu
On Menu Gosub etiquette1
On Menu Gosub etiquette1,etiquette2

Selon l option selectionnee par l utilisateur, ON MENU GOSUB dirige vers la sous-routine appropriee. Contrairement a Amiga Basic, chaque titre dans la barre de menu est gere par sa propre sous-routine. Apres avoir utilise cette instruction, ON MENU doit etre utilise pour activer le systeme de menu avant de revenir au programme principal avec RETURN. Notez aussi que les etiquettes utilisees avec cette commande ne peuvent pas etre remplacees par des expressions, car l etiquette est evaluee une seule fois lors de l execution du programme.

Retour    Suivant
06.05.04