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: