Дружественный интерфейс и методы его создания. Возможности текстового режима. Простейшая графика.
Содержание
Любая программа, написанная на языке Pascal, может работать с экраном в двух режимах: в текстовом или в графическом. По умолчанию всегда используется текстовый режим.
Текстовый режим
В текстовом режиме единицей вывода информации служит символ. На экране каждый символ занимает одно знакоместо — прямоугольный участок размером 8х16 пикселей (зёрен экрана). Во весь экран помещается 80х25 знакомест.
Курсор (мигающий прямоугольник) помечает то место на экране, куда по умолчанию будет осуществлён вывод очередного символа, — текущую позицию. Для определения текущей позиции курсора предназначена сетка координат, мысленно накладываемая на экран. Левое верхнее знакоместо имеет координаты (1,1), правое верхнее — (1,80), левое нижнее — (25,1) и правое нижнее — соответственно (25,80).
Рассмотренные в лекции 6 процедуры Write() и WriteLn() работают именно с текстовым экраном: они выводят информацию посимвольно, начиная с текущей позиции курсора.
Если при выводе информации в текстовый файл любой символ записывается туда в виде своего изображения, то при выводе на экран существуют четыре исключения из этого правила:
- Вместо изображения символа #7 компьютер издаст звуковой сигнал.
- Вместо изображения символа #8 курсор на экране будет передвинут на одну позицию влево.
- Вместо изображения символа #10 курсор на экране будет передвинут на одну строку вниз.
- Вместо изображения символа #13 курсор на экране будет передвинут на начало текущей строки.
Остальные символы выводятся на экран в «правильном» виде.
Процедуры модуля Crt
В предыдущей лекции мы уже упоминали, что модуль Crt, входящий в состав стандартных библиотек языка Pascal, содержит средства для работы с экраном в текстовом режиме.
Для того, чтобы сделать работоспособными все описанные ниже процедуры и функции, ваша программа должна подключить стандартный модуль Crt:
uses Crt;
Активная область ввода / вывода
Процедура Window(x1, y1, x2, y2 : Byte) создаст на экране окно с координатами левого верхнего угла в точке (x1, y1) и координатами правого нижнего угла в точке (x2, y2). Теперь активная область экрана будет ограничена этим окном. Текущие координаты курсора будут отсчитываться не от левого верхнего угла экрана, а от левого верхнего угла этого окна.
Очистка
Процедура ClrScr очистит весь экран (или активное окно); курсор будет помещён в верхний левый его угол.
Процедура ClrEol очистит текущую строку, начиная с текущей позиции курсора и до правого края экрана (окна).
Процедура DelLine удалит строку, в которой находится курсор.
Процедура InsLine очистит текущую строку целиком. Курсор останется на прежней позиции.
Цвета
Процедура TextBackground(color : Byte) установит цвет фона.
Процедура TextColor(color : Byte) установит цвет выводимого текста.
Замечание: Вместо номера цвета возможно использовать соответствующую константу (см. табл. 14.1 или справочник).
Таблица 14.1. Стандартные цвета языка Pascal
Константа | Номер | Цвет | Константа | Номер | Цвет | ||
---|---|---|---|---|---|---|---|
Black | 0 | Чёрный | DarkGray | 8 | Тёмно–серый | ||
Blue | 1 | Синий | LightBlue | 9 | Ярко–синий | ||
Green | 2 | Зелёный | LightGreen | 10 | Ярко–зелёный | ||
Cyan | 3 | Голубой | LightCyan | 11 | Ярко–голубой | ||
Red | 4 | Красный | LightRed | 12 | Розовый | ||
Magenta | 5 | Фиолетовый | LightMagenta | 13 | Ярко–фиолетовый | ||
Brown | 6 | Коричневый | Yellow | 14 | Жёлтый | ||
LightGray | 7 | Светло–серый | White | 15 | Белый |
Помимо этого, можно использовать константу Blink = 128 (мерцание).
Звук
Процедура Sound(hz : Word) включит звуковой сигнал с частотой hz Герц.
Процедура NoSound выключит звуковой сигнал.
Позиционирование
Процедура GotoXY(x, y : Byte) переместит курсор в заданную позицию в пределах текущего окна (экрана).
Функция WhereX : Byte вычислит положение курсора в текущем окне (или на экране): его горизонтальную составляющую. Напомним, что координата X отсчитывается от левого края экрана (окна).
Функция WhereY : Byte вычислит положение курсора в текущем окне (или на экране): его вертикальную составляющую. Напомним, что координата Y отсчитывается от верхнего края экрана (окна).
Ожидание
Процедура Delay(ms : Word) приостановит исполнение программы на ms миллисекунд.
Функция KeyPressed : Boolean отслеживает нажатия клавиш (на клавиатуре).
Функция ReadKey : Char возвращает код символа, чья клавиша (или комбинация клавиш) была нажата.