Стандартный модуль CRT.
Помимо встроенных процедур и функций Turbo Pascal предоставляет программисту множество функций и процедур различного назначения, объединенных в группы – библиотеки. Каждая библиотека состоит из функций и процедур, предназначенных для решения определенного типа задач. Например, есть библиотека математических функций, библиотека управления экраном, библиотека функций и процедур ввода с клавиатуры, библиотека для работы с графическим экраном и т.д.
Начнем рассмотрение первой из таких библиотек – это модуль CRT. Библиотека содержит функции и процедуры, полезные при выводе на экран.
Некоторые процедуры стандартного модуля CRT:
Clrscr - экран очищается текущим фоновым цветом, при этом курсор устанавливается в левый верхний угол экрана;
TextColor (c) – устанавливает цвет символов, где с – название или номер цвета: 0-черный, 1 – синий, 2 – зеленый, 3 – голубой, 4 – красный, 5 – фиолетовый, 6 – оранжевый, 7 – серый, 8 – темно-серый, 9 – светло-синий, 10 – светло-зеленый, 11 – светло-голубой, 12 – светло-красный, 13 – светло-фиолетовый, 14 – желтый, 15 – белый.
|
|
TextBackGround (с) – устанавливает цвет фона, где с – название или номер цвета: 0-черный, 1 – синий, 2 – зеленый, 3 – голубой, 4 – красный, 5 – фиолетовый, 6 – оранжевый, 7 – серый.
GotoXY (x, y) – устанавливает курсор в позицию экрана с координатами х и у, где х – номер столбца позиции (1..80), у – номер строки позиции (1..25).
TextMode (r) – установка режима экрана, где r – это номер текстового режима, который может принимать следующие значения: 1 - 40´25; 3 - 80´25; 257 - 40´50; 259 - 80´50.
Delay (ms) - задержка выполнения программы (миллисекунды);
Sound (f) – включение динамика, где f - это частота сигнала (Гц);
NoSound – отключение динамика;
Значение частот:
Гамма:
Uses Crt;
Var i: Integer;
Const f: array[1..7] of word = (523, 587, 659, 698, 783, 880, 998);
Begin
For i:=1 to 7 do begin
Sound(f[i]); delay(100);
end;
NoSound;
End.
ClrEol - очищается строка от текущей позиции до конца строки без изменения позиции курсора;
DelLine - удаляется строка, на которой находится курсор, и все строки, расположенные ниже, смещаются на позицию вверх;
InsLine - вставляется пустая строка, начиная с позиции, где находится курсор;
WhereX – функция, определяющая координату х курсора, результат возвращается типа integer;
WhereY– функция, определяющая координату y курсора, результат возвращается типа integer;
Window (x1,y1,x2,y2) – задание текстового окна, после задания окна все координаты задаются относительно этого активного окна;
KeyPressed – функция проверки буфера клавиатуры, результат булевского типа: True – если в буфере клавиатуры есть символы и False – если буфер клавиатуры пуст;
Примеры использования функции KeyPressed:
Repeat
|
|
<Операторы>
Until KeyPressed;
или:
While Not KeyPressed
begin
<Операторы>
end;
ReadKey – чтение первого байта (символа) из буфера клавиатуры. Если буфер клавиатуры пуст, то ожидание нажатия клавиш символа из буфера клавиатуры, результат функции должен быть типа char;
Пример фрагмента программы для чтения расширенного кода:
Key:=ReadKey; {чтение первого байта (#0)}
If Key=#0 Then
Key:=ReadKey; {чтение второго байта}
Коды некоторых клавиш:
Enter - 13 - 0 75
Esc - 27 - 0 72
BackSpace- 8 ® - 0 77
Space - 32 ¯ - 0 80
Tab - 9 Home - 0 71
a - 97 End - 0 79
A - 65 Insert - 0 82
Пример фрагмента программы управления движением:
Repeat
Key:=ReadKey;
If Key=#0 Then Key:=ReadKey;
Case Key of
75: Left;
77: Right;
72: Up;
80: Down;
End;
Until Key=#27;
Highvideo – символы выводятся на экран с повышенной яркостью;
Lowvideo – символы выводятся на экран с пониженной яркостью.
Задание: Составить программу вывода на экран поздравления друга с Днем Рождения (использовать разумно разные цвета и местоположение текста на экране).