Guida Pascal
Capitolo 27° - Appendice 8 La grafica
Il linguaggio del Pascal mette a disposizione una serie di funzioni e procedure finalizzate al disegno di figure sullo schermo e alla modifica dei pixel che lo compongono. Per inizializzare la modalità grafica sono necessarie alcune righe di codice, queste:
(*...*) var gd,gm:integer; (*...*) gd:=detect; (*Rileva la scheda video*) InitGraph(gd,gm,); (*Inizializza la modalità grafica*) if graphresult<>grOK then (*Se si sono verificati errori...*) halt; (*...termina immediatamente il programma*) (*...*) CloseGraph; (*...*) La procedure InitGraph accetta 3 parametri: il primo è un valore numerico che la funzione detect assegna automaticamente alla variabile gd e rappresenta il tipo di scheda video; il secondo è un valore che rappresenta il driver sul quale dovrà girare la modalità grafica (vedi appendice 5, la funzione GetDir); il terzo è una stringa che rappresenta lindirizzo del file di estensione *.bgi il quale contiene i dati per inizializzare il driver alla modalità grafica (in questo caso la stringa è vuota perché si suppone che il file si trovi nella stessa directory del programma). Graphresult è una variabile che contiene, se se ne sono verificati, un valore indicante lerrore avvenuto: la costante grOK indica che non sono avvenuti errori e la modalità grafica è stata inizializzata con successo. Halt è una procedura, tra laltro usata abbastanza spesso, che termina allistante il programma. CloseGraph è una procedura che va posta alla fine del programma per chiudere la modalità grafica (se il programma inizia e finisce in modalità grafica, che chiameremo dora in poi mg, senza cambi di modalità, allora questa istruzione può anche essere tralasciata, poiché lend finale chiuderà automaticamente tutto). Se si vuole tornare alla modalità normale, si usa la procedura RestoreCrtMode: tutto ciò che è stato disegnato verrà cancellato. Prima di illustrare brevemente le procedure e le funzioni più usate, vorrei soffermarmi un attimo sulla scrittura di testi a schermo. Infatti, nella mg, la procedura write (e anche writeln e writebuf) non funziona e viene usata, quindi, listruzione OutText(s:string), assai svantaggiosa per 2 motivi: non supporta parametri multipli, ossia accetta uno e un solo parametro di tipo stringa, quindi non potrete scrivere a video, nella stessa istruzione, i valori delle variabili (per esempio, non scriverete OutText(Nino ha ,x, anni) ma var s:string; x:byte; OutText(Nino ha); str(x,s); (*converte l'intero x nella stringa s*) OutText(s); OutText( anni); Inoltre, secondo svantaggio, non è possibile scrivere numeri e caratteri speciali (come ,|,< ecc..): se ci provate troverete una macchia informe di pixel colorati. Una forma più complessa di OutText è OutTextXY(x,y:word;s:string), che sposta il cursore al pixel di coordinate (x;y) e scrive la stringa s. Un breve elenco delle procedure e funzioni + importanti (P=procedure, F=funzione):
C#, TypeScript, java, php, EcmaScript (JavaScript), Spring, Hibernate, React, SASS/LESS, jade, python, scikit, node.js, redux, postgres, keras, kubernetes, docker, hexo, etc...
|