setTextKeep()
Choisit l'action si le texte déborde
Exemples d'utilisation
setTextKeep(CUT); // Les textes qui dépassent seront coupés setTextKeep(KEEP); // L'écran ne sera pas effacé setTextKeep(NORMAL); // Retour à la ligne automatique ainsi que l'effacement de l'écran
Référence
void setTextKeep(boolean garde);
Paramètre passé
garde: CUT (2), KEEP (1), ou NORMAL (0)
Valeur retournée
Aucune
Voir aussi
- NORMAL Pour appeler clrscr() si la page est pleine
- KEEP Pour garder la page pleine, on passe en sur impression
- CUT Coupe ce qui dépasse
- getTextKeep(); Retourne l'action si le texte déborde
- textKeep Contient NORMAL, KEEP ou CUT
- setGraphMode(); Initialisation de l'écran
- clrscr(); Efface l'écran
- text(); Écrit du texte
- setLimites(); Limite la zone de dessin
- setTextOrient(); Direction d'écriture des textes
- setTextCursor(); Coordonnés le point-curseur
- getTextWidth(); getTextHeight(); Retourne la taille de l'écriture de la chaîne passée
Notes
Si le curseur texte est placé en dehors de l'écran ou en dehors des limites données par la fonction setLimites(), à gauche ou en haut, la partie qui dépasse est ignorée quel que soit le mode. Si le curseur est trop à droite ou trop en bas, l'action va dépendre du mode choisi. Par défaut, en mode NORMAL, ou en mode KEEP, quand on tente d'écrire trop à droite, un retour chariot est inséré. En mode NORMAL, quand on tente d'écrire trop bas, le curseur texte revient à l'origine en appelant clrscr().
En mode NORMAL, on change de page quand le curseur est trop bas.
En mode KEEP, comme on n'efface pas l'écran, les caractères risquent de se superposer. C'est utile pendant la phase de mise au point, un espace de trop ferait tout disparaître.
En mode CUT, rien ne sera écrit de ce qui dépasse puisque on laisse le curseur sans générer de retour supplémentaire. Dans ce mode, si on envoie de nombreux caractères, seuls les premiers seront affichés, les suivants étant hors de l'écran, ne seront pas visibles. C'est donc à vous de faire attention à ce que tout soit écrit.
En mode NORMAL ou KEEP, les phrases peuvent être coupées après chaque caractère. Il n'y a pas de césure correcte des mots. En mode CUT, un caractère peut être dessiné seulement en partie.
A l'initialisation, le mode est NORMAL. Le changement de mode se fait par la fonction setTextKeep() ou grâce à la variable textKeep. C'est mieux de passer par la fonction, mais utiliser la variable nécessite moins d'octets et dans un contexte de carte Uno, c'est une économie.
Exemple
PecheuxGraph_ILI9341_8bits.zip\PecheuxGraph_ILI9341_8bits\examples\Documentation\Exemple-311-setTextKeep\Exemple-311-setTextKeep.ino (dans votre fichier téléchargé):
// Ce programme écrit n'importe où une phrase en mode inversion. Il ne faut pas effacer l'écran même si la phrase est
// écrite trop en bas
#
$menu = ":PG";
include <PecheuxGraph_ILI9341_8bits.h>
void setup()
{
setGraphMode(PAYSAGE); // Initialisation générale
// Affiche un fond d'écran avec des lignes un peu partout
for (int boucle=0; boucle<20; boucle++) line(random(LARGEUR), random(HAUTEUR), random(LARGEUR), random(HAUTEUR), WHITE);
setDrawInverse(INVERSE); // Pour pouvoir mettre et enlever les messages
setTextSize(3);
setTextBold(1); // Avec des caractères filiformes cela passe mieux!
setTextKeep(CUT); // Modifiez cette ligne en mettant CUT, KEEP ou NORMAL
}
int x, y; // Pour le texte
void loop()
{
x=random(LARGEUR-120); y=random(HAUTEUR-22); // Cela peut déborder
setTextCursor(x,y); text("Bonjour, je ne voudrais pas que l'écran soit effacé!"); // Comme pour un message de pop-up
delay(500); // Pour en voir l'effet
setTextCursor(x,y); text("Bonjour, je ne voudrais pas que l'écran soit effacé!"); // Efface le texte
}
Résultat possible en mode NORMAL:

Résultat en mode CUT:

Résultat en mode KEEP:
