RUBRICA “MSX BASIC” a cura di Orazio Cacciola (parte 5)
Le Funzioni TAB, LOCATE, POS e CRSLIN
Oggi parlerò delle funzioni che servono per aiutarci a posizionare le nostre stampe sullo schermo non grafico e sapere anche le posizioni del cursore. Visto che non sono molto complesse, le spiegherò tutte e quattro.
TAB è la una funzione che ci aiuta a posizionare in un punto sulla riga dello schermo dove si trova in quel momento il cursore. Viene usata sempre assieme al PRINT, cioè dopo:
PRINT TAB(10). L’argomento dopo la funzione deve essere un numero o una variabile numerica e non può essere omesso. Se l’argomento supera la lunghezza della linea, verrà
stampata in quella successiva. Questa esegue un posizionamento orizzontale crescente, questo vuol dire che non può tornare indietro. Per fare capire meglio faccio un esempio
con un piccolo programma:
10 PRINT "NOME"; TAB(20); "CITTA'"; TAB(30); "ETA'" 20 E=50:PRINT "FRANCO"; TAB(20); "MILANO"; TAB(30); E Il risultato sarà: NOME CITTA' ETA' FRANCO MILANO 50
Ricordiamoci che le variabili numeriche verranno spostate di un carattere. Se ammettiamo, avrei messo TAB(30); “MILANO” e poi TAB(20);E, quest’ultima non potendo tornare indietro sarebbe stata stampata subito dopo la parola MILANO: MILANO 50
Può essere usata anche per la stampa su carta, non cambia nulla di quello che ho detto
prima: LPRINT TAB(10)
La funzione LOCATE rispetto alla precedente, stampa in qualsiasi punto sullo schermo senza problemi. LOCATE Coordinata orizzontale, Coordinata verticale, cursore (acceso o
spento). Dove, coordinata orizzontale (X) è il numero della riga dove si vuole stampare, mentre verticale(Y) è il numero della colonna. Cursore se è posto a 0 non verrà visualizzato
se è maggiore di 0, si. Il nostro schermo in modo testo è composto da 40 caratteri orizzontali (da 0 a 39, per default sono 37; da 0 a 36) e 24 verticali (0 a 23),
considerando che sia disattivata la linea di visualizzazione dei tasti funzione (spiegherò più avanti questo argomento). Apro una parentesi per dire che sto parlando solo
dello schermo di default cioè lo SCREEN 0, anche questo verrà spiegato in seguito.
Vogliamo stampare la nostra frase sulla riga 10 della colonna 5, visto che l’MSX parte da zero, scriveremo:
LOCATE 9,4: PRINT “CIAO”
L’MSX non segnalerà errore se 1 dei 2 o tutte e 2 parametri della funzione LOCATE supera i valori impostati dello schermo, ma i risultati saranno sfalsati. Se viene omesso il terzo
parametro, lo considererà come 0 (per default), perciò il cursore sarà spento.
POS(1) e LPOS(1) restituiscono rispettivamente la coordinata orizzontale(X) del cursore, su schermo o su carta. L’argomento della funzione è fittizio, perciò non ha importanza
il suo valore.
X=POS(0)
CRSLIN restituisce la coordinata verticale(Y) del cursore sullo schermo, non è applicabile su carta.
Y=CRSLIN
Queste ultime 2 funzioni sono molto utili in quei programmi di testo che usano le finestre.
Per fare un esempio, un programma che ha l’help in linea e che si attiva premendo un tasto funzione o qualsiasi altro, è molto utile sapere in che posizione dovrà tornare il cursore
dopo aver visualizzato l’aiuto.
E con questo è tutto, grazie e alla prossima



0 commenti