Constantes predefinidas
Modo de pantalla
Colores
Variables predefinidas
CheckBreak
DirectVideo
LastMode
TextAttr
WindMin
WindMax
Procedimientos predefinidos
ClrEol
ClrScr
Delay
DelLine
GotoXY
HighVideo
InsLine
LowVideo
NormVideo
NoSound
Sound
TextBackground
TextColor
TextMode
Window
Funciones predefinidas
KeyPressed
ReadKey
WhereX
WhereY

Modo de Pantalla

Las constantes definidas de Turbo Pascal para indicar el modo de pantalla que se utilizará son:

Constante Valor Modo de video
BW40 0 40x25 Blanco y negro en tarjeta de color
CO40 1 40x25 Color
BW80 2 80x25 Blanco y negro en tarjeta de color
CO80 3 80x25 Color
Mono 7 80x25 Monocromático

Colores

Las constantes definidas para los colores son:

Colores para primer plano y fondo:
Constante Valor Color
Black 0 Negro
Blue 1 Azul
Green 2 Verde
Cyan 3 Cyan
Red 4 Rojo
Magenta 5 Magenta
Brown 6 Marrón
Light Gray 7 Gris claro
Colores para primer plano:
Constante Valor Color
Dark gray 8 Gris oscuro
Light Blue 9 Azul claro
Light Green 10 Verde claro
Light Cyan 11 Cyan claro
Light Red 12 Rojo claro
Light Magenta 13 Magenta claro
Yellow 14 Amarillo
White 15 Blanco
Parpadeo
Blink 128

La unidad CRT provee un conjunto de variables utilizadas para modificar aspectos referentes a entradas de teclado, modo de la pantalla, etc. A continuación se listan las principales con su función específica.

CheckBreak

Tipo : boolean.

Cuando el contenido de esta variable es True se encuentra activada la terminación de un programa por medio de las teclas Crtl-Break. Si se cambia su valor a False se desactiva esta opción.

Su valor por defecto es True.

DirectVideo

Tipo : boolean.

Cuando existen problemas de entrada/salida de texto se debe desactivar esta variable (guardar en ella el valor false) que inhibe la escritura directa de caracteres a la memoria de video.

LastMode

Tipo : Word

La variable LastMode contiene el valor del modo de texto actual. Se inicializa al momento de iniciar el programa y se utiliza comunmente para restaurar el modo original al momento de terminar el programa.

TextAttr

Tipo : Byte

Usualmente se utiliza para cambiar los atributos de colores en la pantalla, es más rápido que los procedimientos TextColor y TextBackground que tienen la misma función.

WindMin

Tipo : Word; Esta variable contiene las coordenadas de la esquina superior izquierda de la ventana de texto activa definida por el procedimiento Window.

WindMax

Esta variable contiene las coordenadas de la esquina inferior derecha de la ventana de texto activa definida por el procedimiento Window.

A continuación se listan algunos de los procedimientos que incluye esta unidad con una breve descripción de cada uno.

ClrEol

Sintaxis:

ClrEol;

Este procedimiento borra todos los caracteres de la linea actual desde la posición del cursor hasta el final de la linea. Ejemplo:

PROGRAM Proc_ClrEol;
USES Crt;
VAR x,y : Integer;

BEGIN
FOR x := 1 TO 24 DO
FOR y := 1 TO 80 DO
Write('#');
GotoXY(15,15);
ClrEol;
END.

ClrScr

Sintaxis:

ClrScr;

Se utiliza para borrar la pantalla completa o la ventana actual y situa el cursor en la esquina superior izquierda. Ejemplo:

PROGRAM LimpiarPantalla;
USES Crt;
VAR x,y : Integer;
Prb : String;

BEGIN
FOR x := 1 TO 24 DO
FOR y := 1 TO 80 DO
Write('#');
WriteLn('Presione [ENTER] para borrar la pantalla');
ReadLn(Prb);
ClrScr;
WriteLn('Se borró la pantalla');
END.

Delay

Sintaxis:

Delay(Tmp : Word);

Detiene la ejecución del programa durante un tiempo especificado en Tmp en milisegundos. El intervalo válido es desde 0 hasta 65535, la precisión del retardo depende de la precisión del reloj interno de la computadora. Ejemplo:

PROGRAM Retardo;
USES Crt;

BEGIN
WriteLn('Inicia retardo de aproximadamente 5 segundos');
Delay(5000);
WriteLn('Fin del retardo');
END.

DelLine

Sintaxis:

DelLine; Borra la linea donde se encuentra el cursor y las lineas inferiores suben una posición. Ejemplo

PROGRAM BorrarLinea;
USES Crt;
VAR x : Integer;
prb : String;
BEGIN
ClrScr;
For x := 1 to 20 DO
WriteLn('Linea número: ', x);
WriteLn('Presione [ENTER] para borrar la linea 6');
GotoXY(0,6);
DelLine;
WriteLn('Linea 6 eliminada');
END.

GotoXY

Sintaxis:

GotoXY(x, y : Byte);

Posiciona el cursor en las coordenadas especificadas por x y y.
El byte x representa la columna partiendo de izquierda a derecha y el byte y representa la fila partiendo de arriba hacia abajo. Ejemplo:

PROGRAM Posición;
USES Crt;
BEGIN
GotoXY(10,10);
Write('*');
GotoXY(20,20);
Write('*');
END.

HighVideo

Sintaxis:

HighVideo;

Activa la pantalla de video de alta intensidad.

InsLine

Sintaxis:

InsLine

Inserta una linea en blanco en la posición actual del cursor.

LowVideo

Sintaxis:

LowVideo

Activa la pantalla de video de baja intensidad.

NormVideo

Sintaxis:

NormVideo;

Restaura los atributos de primer plano y fondo a los colores originales establecidos cuando arrancó el programa.

NoSound

Sintaxis:

NoSound;

Desactiva el sonido iniciado con el procedimiento Sound.

Sound

Sintaxis:

Sound (Frecuencia : Word);

Genera un sonido en la bocina de la computadora a una frecuencia determinada por el valor de Frecuencia. Para detener el sonido es necesario ejecutar el procedimiento NoSound.

TextBackground

Sintaxis:

TextBackGround (Color : byte);

Se utiliza para seleccionar el color del fondo de la pantalla. Los valores que puede utilizar son del 0 al 7, también es posible utilizar las constantes predefinidas para los colores.

TextColor

Sintaxis:

TextColor (Color : Byte);

El procedimiento TextColor se usa para seleccionar el color del texto en la pantalla.

TextMode

Sintaxis:

TextMode (Modo : Word);

Define el modo de video, ésto es, el número de filas y columnas que se podrán mostrar en pantalla, también si se mostrarán en blanco y negro o en color.

Los modos válidos de pantalla de texto son:

Constante Valor Modo de video
BW40

0

40x25 Blanco y negro en tarjeta de color
CO40

1

40x25 Color
BW80

2

80x25 Blanco y negro en tarjeta de color
CO80

3

80x25 Color
Mono

7

80x25 Monocromático

Window

Sintaxis:

Window (x1, y1, x2, y2 : Byte);

Define las coordenadas de la ventana de texto activa; x1 y y1 son las coordenadas de la esquina superior izquierda, x2 y y2 son las coordenadas de la esquina inferior derecha.

Las siguientes son las funciones de la unidad CRT:

KeyPressed

Tipo: Boolean

La función KeyPressed devuelve el valor de True si se pulsó alguna tecla y false si no se ha presionado ninguna.

ReadKey

Tipo: Char

Esta función lee un caracter del teclado, se utiliza mucho para leer teclas de dirección, teclas de control y de funciones.

WhereX

Tipo: Byte

WhereX devuelve el número de la columna donde se encuentra el cursor.

WhereY

Tipo: Byte

La función WhereY devuelve el número de la fila donde se encuentra el cursor al momento de llamar a la funcioacute;n.