Abstraction Concrète : Module Editable


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 fenêtres et le module clavier de gestion des touches, préalablement définis.

Deux nouveaux types sont introduits :

Le type val_edition avec ses trois valeurs DebutLigne, FinDeLigne et ColonneCourante.
Le type fenetre_tableau comprend un champ nommé ftab pour préciser la fenêtre associée au tableau, un champ mutable change qui indique si une modification a été effectuée sur le tableau édité, un champ mutable table de type vecteur de vecteurs de chaînes de caractères, pour enregistrer les cellules du tableau en édition, un champ cell qui mémorise la position de la cellule active du tableau édité par rapport à l'écran.

L'évaluation des expressions

  • module eval

    Le module "editable" fait appel au module "eval" qui se est chargé de l'évaluation du contenu des cellules. Il doit, pour cela, reconnaître différents types de représentations de nombres et être capable d'interpréter des formules de calcul. L'évaluation des formules est réalisé dans le contexte des valeurs des cellules du tableau.

    L'edition du tableau

    Les fonctions d'initialisation

    La fonction initialise_feuille_de_calcul f crée une feuille de calcul associée à la fenêtre f.
    La fonction init_tableur() installe l'écran du tableur.
    La fonction titres_LC(x,y) redessine la barre des titres de ligne et celle des titres de colonne. Le couple (x,y) indique la position de la cellule active.

    Les fonctions de déplacement

    La fonction aller_cellule ft sens déplace la cellule active à la cellule suivante, dans le sens de la flèche indiqué par sens.
    La fonction aller_origine ft déplace la cellule active à la première ligne, première colonne.
    La fonction aller_debut_ligne ft déplace la cellule active à la première cellule de la ligne courante.
    La fonction aller_fin_ligne ft déplace la cellule active à la dernière cellule de la ligne courante.
    La fonction and aller_debut_colonne ft déplace la cellule active à la première cellule de la colonne courante.
    La fonction and aller_fin_colonne ft déplace la cellule active à la dernière cellule de la colonne courante.

    Les fonctions de controle du calcul et d'édition

    La fonction reaffichage_feuille ft recalcule et réaffiche la feuille de calcul entière.
    La fonction editer_cellule ft str place en édition la chaîne str dans la cellule active.