Modules

abstraction concrète

Introduction


Les modules de bibliothèque regroupent des familles de fonctions et de types destinés à servir de composants logiciels pour la programmation de nombreuses applications. Quelques thèmes courants sont passés en revue, allant de la gestion du clavier ou de l'écran à celle des menus déroulants de commandes. Chaque module est présenté avec son dossier descriptif, et le code source de son interface et de son implémentation.

Date : Traitement de dates

Ce module est une application des A-listes au traitement des dates. Il définit quelques fonctions prédicats et des relations entre le numéro et le nom, d'un jour de la semaine ou d'un mois de l'année.

Clavier : Gestion de clavier

Il s'agit, ici, de contrôler les touches du clavier à partir de la déclaration d'un type somme spécifique : le type touche, et d'une fonction de capture des touches : la fonction get_key() du type unit -> touche, qui attend une touche ou une combinaison de touches frappée au clavier et retourne la valeur correspondante du type touche après filtrage. Deux définitions du clavier sont étudiées. Le module d'interface exporte le type touche et la fonction get_key.

Ecran : Gestion d'écran

La construction que nous avons adoptée pour les modules de gestion d'écran en mode texte fait usage du gestionnaire de périphérique ANSI.SYS, au moyen des séquences d'échappement. Les modes d'affichage à l'écran sont définis par les valeurs : gras, normal, inverse, clignotant.

L'écran en mode texte sera défini comme une matrice de caractères de 25 lignes x 80 colonnes.

Fixe : Gestion de fichier

Implémentation de fichiers d'enregistrements en longueur fixe :

Fenetres : Gestion de fenêtres

Le module de fenêtres utilise le module ecran de gestion d'écran en mode texte.

On y déclare le type point, le type distance et le type fenetre, ainsi que les fonctions trace_fenetre, efface_fenetre, affiche_message, et la fonction efface_message.

Les valeurs globales de fenêtres : Fenetre_de_Ligne, Fenetre_de_Texte, Fenetre_de_Titre, Fenetre_de_Commande, Fenetre_de_Message, sont définies pour exemple et sont utilisées dans des applications que nous proposons, ailleurs.

Edition : Gestion de zones d'édition

Les champs d'édition sont des zones contenant des chaînes de caractères de longueur fixe.

Le module de gestion de zones d'édition de champs utilise le module ecran de gestion d'écran en mode texte, et le module clavier de gestion des touches.

Afin de contrôler la sortie d'édition avec validation ou la sortie d'édition avec annulation, deux exceptions sont introduites : Fin_d'edition of touche et Erreur_edition of touche.

Forme : Gestion de formes

Les formes regroupent des champs constitués par des zones d'édition étiquetées. La saisie dans les zones d'édition incluses dans une forme est contrôlée.

Le type forme comporte un champ de fenêtre de forme nommé fen, et un champ enreg constitué par un tableau des zones d'édition de la forme.

Ediligne: Edition de ligne

Le module de gestion de zones d'édition ligne est semblable au module d'édition des champs, toutefois les valeurs éditées ne sont plus, ici, des chaînes de caractères de longueur fixe, mais au contraire des chaînes de caractères de longueur variable.

Ce module utilise le module ecran de gestion d'écran en mode texte, et le module clavier de gestion des touches, qui ont été préalablement définis.

Editexte: Edition de texte

Le module de gestion de zones d'édition de textes utilise le module ecran de gestion d'écran en mode texte, le module fenetres de gestion de fenetres, et le module clavier de gestion des touches, préalablement définis.

Deux nouveaux types sont introduits : Le type val_edition et Le type fenetre_texte.

Quatre groupes de fonction sont définis :
- Les fonctions de déplacement
- Les fonctions d'édition du texte
- Les fonctions d'installation du texte en édition
- Les fonctions outils de traitement de chaînes de caractères.

Editable: Edition de tableau

Le module de gestion de tableaux de cellules utilise le module ecran de gestion d'écran en mode texte, le module fenetres de gestion de fenetres, et le module clavier de gestion des touches, préalablement définis.

Le traitement des tableaux est abordé sous deux aspects majeurs :

Menu: Gestion de menu

Le module de menus fait appel aux modules ecran et fenetres. Ce module comporte un ensemble de fonctions permettant de gérer des menus déroulants de commandes.

Aide: Gestion d'aide

Le module d'aide sert à installer une aide en ligne dans les applications. Il utilise les modules clavier, ecran, fenetres et editexte

dernière modification : 06/12/96