Le texte
Quand j'ai commencé la programmation en Basic, ma première question était : comment affiche-t-on du texte ?
Quand on m'a dit qu'il y avait 3 manière différentes, j'ai cru que j'allais péter un câble

. Pourquoi 3 manières ? C'est ce que nous allons voir dans cette partie

.
La façon d'afficher du texte la plus simple consiste à mettre son texte entre guillemets. Si vous mettez trop de caractères entre guillemets, le retour à la ligne se fera de manière automatique. Dès que vous fermez un guillemet pour en ouvrir un autre, là-aussi s'opère un retour à la ligne. Bien que simple à utiliser, cette première d'afficher du texte est lente, et peu pratique, puisqu'on ne peut pas placer ses écrits comme on veut sur l'écran (à moins de faire joujou avec la touche espace

).
De plus, il est impossible d'effacer la deuxième ligne présente sur l'écran et de garder la première.
Code : Autre - Du texte simple avec les guillemets1
2
3
| "PREMIERE LIGNE"_DISP_
""
"TROISIEME LIGNE" |
Testez ce bout de code, vous verrez que le retour à la ligne se fait automatiquement.
Et comme je suis sympa, je vous mets une capture d'écran :
Sur Graph 35+/65, si vous mettez trop de texte, le texte défilera, de ligne en ligne (ce que je trouve passablement désagréable, mais c'est mieux que sur la Graph 85, qui affiche tellement vite qu'on a pas le temps de lire).
Sur Graph 35+/65, on ne peut pas interrompre l'affichage d'un bloc de texte contenu entre des guillemets, et beaucoup ont eu l'occasion de tester le "virus" qui bloque la calculatrice (essayez d'écrire une tonne de texte entre deux guillemets, vous aurez ce fameux virus).
Une seconde méthode, beaucoup plus pratique, un tout petit peu plus complexe à comprendre, utilise la fonction Locate (=>
[SHIFT][VARS][F6][F4][F1]), qui prend 3 paramètres : abscisse, ordonnée et texte.
Le texte doit être entre guillemets, à moins que ce ne soit un nombre, par exemple une variable (le _DISP_ n'est plus utile pour afficher les nombres avec Locate).
L'abscisse et l'ordonnée sont en fait les numéros de colonne (de gauche à droite) et de ligne (de haut en bas) où viendra se placer le premier caractère du texte à afficher. Ce seront obligatoirement des nombre entiers compris entre 1 et le numéro de la colonne/ligne maximum (sinon vous aurez un "Erreur argument"). Attention, il n'y a pas de retour à la ligne automatique, le texte sera tronqué s'il est trop long.
L'utilisation de Locate est à déconseiller si l'on veut se servir de _DISP_ pour faire une pause. En effet, quand on utilise le triangle noir, il apparaît _DISP_ après la dernière ligne de texte affichée. Le problème est que _DISP_ ne considère pas Locate comme du texte, ce qui fait qu'il va se passer un peu n'importe quoi : la plupart du temps, du texte affiché par Locate est "écrasé" par un méchant "_DISP_". Le seul moyen pour empêcher cela est d'écrire des lignes de texte vides.
Un petit code avec Locate pour la route :
Code : Autre - Du texte avec Locate1
2
| Locate 5,1,"PREMIERE LIGNE"
Locate 1,3,"TROISIEME LIGNE" |
Et hop, voici le screen-shot :
A la demande d'Aliasker, voici une image qui vous aidera : un magnifique repère :
Et pour ceux que ça intéresse, voici le code donnant ce repère

:
Secret (cliquez pour afficher)
Code : Autre - Code du repère1
2
3
4
5
6
7
8
9
10
11
12
13
14
| ClrText
Locate 1,1,"+"
Locate 2,1,"--------------------"
Locate 21,1,"->"
For 2->Y To 6
Locate 1,Y,"|"
Next
Locate 1,7,"↓(1,7)"
Locate 16,2,"(21,1)"
Locate 11,2,"X"
Locate 2,4,"Y Locate X,Y,(X,Y)"
Locate 6,5,"(+ GUILLEMETS)"
Locate 2,2,"(1,1)"
Locate 16,7,"(21,7)" |
Enfin, la dernière méthode utilise l'écran graphique, grâce à la fonction Text (=>
[SHIFT][F4][F6][F6][F2]). Le texte affiché est écrit en beaucoup plus petit, et chaque caractère ne prend pas la même place (par exemple, un "i" fera 1 pixel de large alors qu'un "W" en fera 5).
Text prend en compte, comme Locate, trois paramètres : ordonnée, abscisse puis texte (oui,
ordonnée est avant abscisse !). Le texte est toujours entre guillemets. L'ordonnée et l'abscisse sont la position du haut du premier caractère, plus ordonnée et abscisse augmentent, plus on va vers le bas à droite. Ordonnée est un nombre de [1,63] et abscisse est un nombre de [1,127].
Certains aimeront la fonction Text, d'autres non. Pour ma part, j'adore, ça permet d'afficher quelque chose de consistant en une seule fois. De plus, l'affichage est assez rapide, et on peut positionner son texte de manière très précise.
Voici un code d'exemple, que vous comprendrez sans problème une fois lu la partie Graphismes :
Code : Autre - Du texte avec Text1
2
3
4
| AxesOff
Cls
Text 1,25,"PREMIERE LIGNE"
Text 15,1,"TROISIEME LIGNE" |
Et la capture d'écran associée que voici :
Là-encore, Aliasker m'a demandé de mettre un repère :
Et toujours pour ceux qui veulent, voici le code :
Secret (cliquez pour afficher)
Code : Autre - Code du repère1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| 128->D
ViewWindow 1,127,0,1,63,0
{2,2,4,1,1,127,124,124,125}->List 1
{3,4,4,1,63,63,60,62,62}->List 2
DrawStat
Text 3,3,"(1,1)"
Text 58,6,"(63,1)"
Text 6,103,"(1,127)"
Text 29,35,"Text Y,X, (X,Y)"
{69,69,D,71,71}->List 1
{36,34,D,36,34}->List 2
DrawStat
List 1+21->List 1
DrawStat
Text 3,62,"X"
Text 32,3,"Y" |
C'est un peu fâcheux d'avoir à se servir de trois fonctions différentes pour afficher du texte, mais on s'y fait, vous verrez.
Déjà, oubliez un temps la fonction Text, on ne l'abordera pour de bon que dans la partie "graphismes". Il ne vous reste plus que deux fonctions pour afficher du texte, ce qui n'est pas si monstrueux

.
Pour effacer l'écran textuel, utilisez la fonction ClrText (=>[SHIFT][VARS][F6][F1][F1]).
Chapitre terminé, veuillez passer au suivant

.
Informations sur le tutoriel
Retour en haut
Créé : Le 18/07/2008 à 14:07:13
Modifié : Le 22/08/2008 à 15:50:36
Avancement : 0%
Licence : Copie non autorisée
Commentaires