π
<-
Chat plein-écran
[^]

[Astuce] Centrer horizontalement un texte en Ti-Basic

Regroupement de tous les tutoriaux z80 (82/83/84)

[Astuce] Centrer horizontalement un texte en Ti-Basic

Message non lude Eliastik » 24 Déc 2016, 17:16

Bonjour,

Je vais vous présenter une petite astuce pour centrer horizontalement un nombre ou un texte qui est contenu dans une variable sur l'écran graphique, ce qui n'est pas facile si cette valeur varie au cours de l’exécution du programme.

Pour un nombre
:


Code: Tout sélectionner
1+ent(log(abs(**Votre variable contenant le nombre**→L
Texte(**Coordonnées verticales**,.5(94-4L),**Votre variable contenant le nombre**

Si votre nombre est un nombre décimal, remplacez la première instruction par :
Code: Tout sélectionner
non(**Votre variable contenant le nombre**)+som(0 ou partDéc(abs(**Votre variable contenant le nombre**10^(somCum(binomFRép(13,0))-2-partEnt(log(abs(**Votre variable contenant le nombre**+non(**Votre variable contenant le nombre**→L

Sur TI-83 Premium CE avec OS 5.2 minimum, il est possible de remplacer la première instruction par l'instruction suivante (qui est beaucoup plus simple, mais pas compatible avec toutes les calculatrices) :
Code: Tout sélectionner
length(toString(**Votre variable contenant le nombre**→L

Si vous voulez afficher votre nombre en grand format, remplacez la dernière instruction par :
Code: Tout sélectionner
Texte(-1,**Coordonnées verticales**,.5(94-6L),**Votre variable contenant le nombre**

Explications
:

L'instruction
1+ent(log(abs(**Votre variable contenant le nombre**→L
calcule le nombre de chiffres composant le nombre, et la stocke dans la variable L.

L'instruction
Texte(**Coordonnées verticales**,.5(94-4L),**Votre variable contenant le nombre**
affiche ce nombre sur l'écran graphique, centré. Le calcul
.5(94-4L)
soustrait au nombre de pixels horizontaux totaux de l'écran (94) le nombre de pixels composants le nombre (4 car chaque caractère est composé de 4 pixels horizontaux) et divise le tout par 2 (dans ce cas je multiplie par 0.5 pour optimiser le calcul, ce qui revient au même).

Pour un texte
:


C'est plus simple, car une instruction existe pour connaître le nombre de caractères d'une chaîne :
longueur(

Ne fonctionne que pour les variables Chn/Str
.

Code: Tout sélectionner
longueur(**Votre chaîne de caractère**→L
Texte(**Coordonnées verticales**,.5(94-4L),**Votre chaîne de caractère**

Si vous voulez afficher votre texte en grand format, remplacez la dernière instruction par :
Code: Tout sélectionner
Texte(-1,**Coordonnées verticales**,.5(94-6L),**Votre chaîne de caractère**

Exemple
:


Voici une capture d'écran d'un de mes programmes (TI-Chrono, disponible ici) qui centre automatiquement le nombre de secondes restantes (ici dans la fonction minuterie, je les ai mis à 10 000 pour que vous voyez bien l'effet produit) :

Image

Voilà pour cette astuce !

Crédit
:


Codes pour connaître le nombre de chiffres composant une variable trouvé ici : http://tibasicdev.wikidot.com/number-one-liners
Dernière édition par Eliastik le 25 Déc 2016, 20:58, édité 1 fois.
Avatar de l’utilisateur
EliastikProg.
Niveau 6: SM (Super Membre)
Niveau 6: SM (Super Membre)
Prochain niv.: 59.4%
 
Messages: 9
Inscription: 04 Déc 2015, 13:09
Genre: Homme
Calculatrice(s):

Re: [Astuce] Centrer horizontalement un texte en Ti-Basic

Message non lude Adriweb » 24 Déc 2016, 21:00

Note: pour CE avec OS 5.2 minimum, pour obtenir la longueur de quelque chose, il suffit de faire length(toString(quelquechose
Avatar de l’utilisateur
AdriwebAdmin.
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 37.9%
 
Messages: 11323
Images: 830
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
Classe: (ingénieur)
Twitter: adriweb
GitHub: adriweb


Retourner vers Tutoriaux

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités

-
Rechercher
-
Sujets à la une
"NumWorks++": Challenge de modification matérielle pour rajouter une puce de mémoire Flash !
Offre TI-Planet/Jarrety pour avoir la TI-83 Premium CE avec son chargeur pour 79,79€ port inclus !
Offre TI-Planet/Jarrety pour avoir la TI-Nspire CX CAS à seulement 130€ TTC port inclus!
Jailbreake ta TI-Nspire avec Ndless et profite des meilleurs jeux et applications !
Transforme ta TI-Nspire CX en console Game Boy Advance!
12345
-
Donations/Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
PayPal : paiement en ligne sécurisé - secure online payments
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety 
-
Stats.
579 utilisateurs:
>496 invités
>77 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)