La unit CRT
di Pascal classico per applicazioni console, offre
controllo del testo (colori, posizione cursore), input da
tastiera e funzioni base (es.clrscr).
Ideale per programmi semplici, meno compatibile con
sistemi moderni o non-Windows. In Lazarus, utilizzato
principalmente per legacy o progetti didattici.
La Unit CRT di
Lazarus
Pubblicato il: 8-2-2025
Ultima Modifica: 18-3-2025
L'unit crt in Pascal (Lazarus) fornisce funzioni e procedure per la gestione della console, come la modifica dei colori, il posizionamento del cursore, e la gestione dell'input/output.
Procedure e Funzioni
ClrScr
Descrizione: Pulisce lo schermo della console.
Sintassi:procedure ClrScr;
uses crt;
begin
ClrScr;
WriteLn('Schermo pulito!');
end.
GotoXY
Descrizione: Posiziona il cursore alla posizione specificata (X, Y) sullo schermo.
Sintassi:procedure GotoXY(X, Y: Byte);
uses crt;
begin
GotoXY(10, 5);
Write('Ciao!');
end.
TextColor
Descrizione: Imposta il colore del testo.
Sintassi:procedure TextColor(Color: Byte);
uses crt;
begin
TextColor(Red);
WriteLn('Testo rosso');
TextColor(White);
end.
TextBackground
Descrizione: Imposta il colore di sfondo del testo.
Descrizione: Restituisce True se un tasto è stato premuto, altrimenti False.
Sintassi:function KeyPressed: Boolean;
uses crt;
begin
WriteLn('Premi un tasto...');
repeat until KeyPressed;
WriteLn('Hai premuto un tasto!');
end.
ReadKey
Descrizione: Legge un carattere dalla tastiera senza visualizzarlo sullo schermo.
Sintassi:function ReadKey: Char;
uses crt;
var
c: Char;
begin
WriteLn('Premi un tasto...');
c := ReadKey;
WriteLn('Hai premuto: ', c);
end.
Delay
Descrizione: Mette in pausa l'esecuzione del programma per un numero specificato di millisecondi.
Sintassi:procedure Delay(Milliseconds: Word);
uses crt;
begin
WriteLn('Aspetta 2 secondi...');
Delay(2000);
WriteLn('Fatto!');
end.
Sound
Descrizione: Genera un suono alla frequenza specificata.
Sintassi:procedure Sound(Hz: Word);
uses crt;
begin
Sound(440); // La nota A4
Delay(1000);
NoSound;
end.
NoSound
Descrizione: Disabilita il suono generato da Sound.
Sintassi:procedure NoSound;
uses crt;
begin
Sound(440);
Delay(1000);
NoSound;
end.
WhereX
Descrizione: Restituisce la posizione orizzontale (colonna) del cursore.
Sintassi:function WhereX: Byte;
uses crt;
begin
GotoXY(10, 5);
WriteLn('Il cursore è alla colonna: ', WhereX);
end.
WhereY
Descrizione: Restituisce la posizione verticale (riga) del cursore.
Sintassi:function WhereY: Byte;
uses crt;
begin
GotoXY(10, 5);
WriteLn('Il cursore è alla riga: ', WhereY);
end.
Window
Descrizione: Definisce una finestra di testo sullo schermo con coordinate (X1, Y1) per l'angolo superiore sinistro e (X2, Y2) per l'angolo inferiore destro.
Sintassi:procedure Window(X1, Y1, X2, Y2: Byte);
uses crt;
begin
Window(10, 5, 30, 15);
WriteLn('Questa è una finestra di testo!');
end.
ClrEol
Descrizione: Cancella la riga dalla posizione corrente del cursore fino alla fine della riga.
Sintassi:procedure ClrEol;
uses crt;
begin
Write('Questa parte rimane.');
ClrEol; // Cancella il resto della riga
end.
InsLine
Descrizione: Inserisce una riga vuota alla posizione corrente del cursore, spostando il testo sottostante verso il basso.
Sintassi:procedure InsLine;
uses crt;
begin
WriteLn('Prima riga');
WriteLn('Terza riga');
GotoXY(1, 2);
InsLine; // Inserisce una riga vuota
WriteLn('Seconda riga');
end.
DelLine
Descrizione: Elimina la riga alla posizione corrente del cursore, spostando il testo sottostante verso l'alto.
Sintassi:procedure DelLine;
uses crt;
begin
WriteLn('Prima riga');
WriteLn('Seconda riga');
WriteLn('Terza riga');
GotoXY(1, 2);
DelLine; // Elimina la seconda riga
end.
HighVideo
Descrizione: Imposta il testo in alta intensità (più luminoso).
Sintassi:procedure HighVideo;
uses crt;
begin
HighVideo;
WriteLn('Testo ad alta intensità');
NormVideo;
end.
LowVideo
Descrizione: Imposta il testo in bassa intensità (meno luminoso).
Sintassi:procedure LowVideo;
uses crt;
begin
LowVideo;
WriteLn('Testo a bassa intensità');
NormVideo;
end.
NormVideo
Descrizione: Ripristina l'intensità del testo ai valori predefiniti.
Sintassi:procedure NormVideo;
uses crt;
begin
HighVideo;
WriteLn('Testo ad alta intensità');
NormVideo;
WriteLn('Testo normale');
end.
TextMode
Descrizione: Imposta la modalità testo del terminale. Può essere utilizzata per cambiare la risoluzione del testo.
Sintassi:procedure TextMode(Mode: Word);
uses crt;
begin
TextMode(CO80); // Imposta la modalità testo standard a 80 colonne
WriteLn('Modalità testo impostata a 80 colonne');
end.
ScreenSize
Descrizione: Restituisce le dimensioni dello schermo in colonne e righe.