Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
sd_lab_1.doc
Скачиваний:
23
Добавлен:
17.11.2018
Размер:
3.44 Mб
Скачать

7. Управление консолью

Консоль оператора физически состоит из двух устройств: клавиатуры и монитора. Программы управления консолью содержатся в Unit Crt. Они позволяют считывать символы с клавиатуры без отображения на экране, устанавливать различные режимы отображения текста, определять “окна”, позиционировать курсор, определять положение курсора внутри окна, устанавливать цвет фона и символов, включать-выключать звуковой динамик IBM PC.

Для управления консолью используются следующие системные функции:

- KeyPressed

возвращает TRUE в случае когда на клавиатуре нажата клавиша, порождающая символ. На клавиши Alt, Ctrl, NumLock, ScrollLock, Shift, CapsLock функция не реагирует.

- ReadKey

возвращает символ, соответствующий нажатой клавише, или ждет нажатия. Введенный символ на экране не отображается.

- Window (X1, Y1, X2, Y2)

определяет окно (X1, Y1 – координаты левого верхнего угла, X2, Y2 – правого нижнего; тип координат – байт). Курсор устанавливается в позицию (1,1) окна, то есть в левый верхний угол. Применение процедур и функций из Unit Crt в дальнейшем будет оказывать влияние только на эту область экрана. При запуске Pascal – программы начальное окно совпадает со всем физическим экраном. На экране в каждый момент времени активно только одно (последнее) окно.

- GotoXY (X, Y)

перемещает курсор в позицию (X, Y) (координаты определяются в пределах окна)

- WhereX

определяет X – координату положения курсора относительно текущего окна.

- WhereY

определяет Y – координату положения курсора относительно текущего окна.

Для управления цветовым режимом вывода символов на экран удобнее всего пользоваться системной переменной TextAttr, определенной в секции Interface CRT.

Переменная TextAttr имеет следующую битовую структуру:

Номер бита

7

6 5 4

3 2 1 0

Что определяет

Мерцание

1-да, 0-нет

Цвет фона

(8 значений)

Цвет символов

(16 значений)

Цвет

Крас Зел Гол

Ярк Крас Зел Гол

Общая формула для значений типа Byte имеет вид:

Значение = B7*27 + B6*26 + B5*25 + B4*24 + B3*23 + B2*22 + B1*21 + B0*20

Множители B0, B1, … B7 – это значения соответствующих битов, равные 0 или 1, а числовые множители – это два в степени номера бита.

Выражение можно упростить:

Значение=24 *(B7*23 +B6*22 + B5*21 + B4*20)+(B3*23+B2*22+ B1*21+ B0*20)=

= 16* (< цвет фона >) + (< цвет символа>)

(константа, определяющая цвет фона, умножается на 16).

В Unit CRT введены следующие цветовые константы:

{константы для цвета букв и фона}

Black = 0; {0000 - черный}

Blue = 1; {0001 - голубой}

Green = 2; {0010 - зеленый}

Cyan = 3; {0011 - бирюзовый}

Red = 4; {0100 - красный}

Magenta = 5; {0101 - малиновый}

Brown = 6; {0110 - коричневый}

LightGray = 7; {0111 – свело-серый}

{константы для цвета букв}

DarkGray = 8; {1000 – темно-серый}

LightBlue=9; {1001 – светло-голубой}

LightGreen=10; {1010 – светло-зеленый}

LightCyan=11; {1011 - салатный}

LightRed=12; {1100 – светло-красный}

LightMagenta=13; {1101 - розовый}

Yellow = 14; {1110 - желтый}

White = 15; {1110 - белый}

Blink = 128; {мерцание букв}

Пример цветовых установок:

TextAttr:= 16*4 + 15=79; или TextAttr:=16*Red + White;

( на красном фоне белые символы )

Для работы с цветом используются также следующие процедуры:

  • ClrScr

очищает текущее окно, установленное процедурой Window или взятое по умолчанию (то есть весь экран). При этом окно как бы закрашивается установленным цветом фона.

  • TextColor (Color)

устанавливает цвет выводимых на экран символов (параметр может принимать значения от 0 до 31).

  • TextBackground (Color)

устанавливает цвет фона под символом.

  • HighVideo

устанавливает повышенную яркость выводимых символов.

  • LowVideo

устанавливает обычную яркость выводимых символов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]