Модуль CRT Программирование на Free. Pascal. CRT —
moduly_crt.ppt
- Количество слайдов: 18
Модуль CRT Программирование на FreePascal
CRT - Cathode Ray Tube, электронно-лучевая трубка Модуль CRT содержит описания констант, процедур и функций, обеспечивающих управление текстовым режимом работы монитора и звуковым генератором. Подключение модуля CRT производится директивой USES CRT, которая указывается в разделе описаний.
При работе в текстовом режиме экран монитора разбивается на строки, строки — на позиции, в каждую из которых можно поместить один символ. Положение символа на экране задается двумя координатами —X и Y. X — это номер позиции в строке, а Y — номер строки. По умолчанию размер экрана 50 строк по 80 символов. Координата верхнего левого угла – (1,1).
Атрибут текста - textAttr:integer; Для полного описания экранной позиции кроме символа следует задать еще и атрибут, содержащий информацию о цвете символа и фона на экране. Основные цвета кодируются цифрами от 0 до 15, причем цвет текста может быть любым, а цвет фона - только от 0 до 7.
Работа с цветом TextBackGround(Color:Byte) - устанавливает цвет фона. TextColor(Color: Byte) - устанавливает цвет символов. HighVideo - устанавливает высокую интенсивность символов. LowVideo - включает низкую интенсивность символов. NormVideo - выбирает первоначальное значение атрибута текста.
Работа с экраном ClrScr - очищает экран или окно и помещает курсор в верхний левый угол (заливка цветом фона). ClrEol - очищает строку от курсора до конца строки. InsLine - добавление пустой строки на экране. DelLine - удаление текущей строки. GotoXY(X, Y: Byte) - перемещает курсор в позицию (X,Y) экрана. Window(X1, Y1, X2, Y2: Byte) - определяет текстовое окно на экране. X1, Y1 — координаты левого верхнего угла, X2, Y2 — правого нижнего угла окна. В окне –своя система координат. WhereX - текущая координата Х курсора. WhereY - текущая координата Y курсора.
Работа с клавиатурой KeyPressed: Boolean Анализирует нажатие клавиши. Результат TRUE, если на клавиатуре нажата клавиша (кроме Alt, Ctrl и т.п.), и FALSE в противном случае. Не задерживает исполнение программы. Использование функции позволяет организовать циклы, выполняющиеся до нажатия какой-либо клавиши. Repeat ... Until KeyPressed;
ReadKey: Char Читает символ с клавиатуры без эхоповтора на экране. Приостанавливает исполнение программы до нажатия на любую клавишу, кроме Alt, Ctrl и т.п. Эта функция возвращает однобайтовый код клавиши. Ряд клавиш и сочетаний клавиш имеют двухбайтовые коды, первый байт - # 0, поэтому необходим второй вызов функции.
Определение кода клавиши uses crt; var ch : char; begin clrscr; {Очистка экрана} repeat writeln('Нажмите клавишу:'); ch := readkey; {Ждем ввода символа} if ch = #0 then {Если нажата спец. клавиша} begin ch := readkey; {нужно прочитать код символа еще раз} writeln('Нажата специальная клавиша с кодом ', ord(ch)); end else {Иначе, если нажата обычная клавиша – сразу видим ее код} writeln('Нажата клавиша с ASCII-кодом', ' ',ord(ch)); until ch=#27; {код клавиши Escape - выход} end.
Прочие процедуры и функции Delay(D: Word) - приостанавливает работу программы на указанное число D миллисекунд. Sound (F:word) - включает встроенный динамик с частотой F герц, обеспечивая выдачу звукового сигнала. NoSound - выключает динамик. Обязательно используется после пары Sound и Delay.
Задание 1 «Бегущая строка»: По экрану «бежит» текстовая строка. Строка «бежит» справа налево. Выход из программы при нажатии ESC.
Пример программы «Бегущая строка» Пример
Задание 2 «Звездопад из символов» В разных точках экрана появляются символы различных цветов. Для задания координат, цвета и кода символов использовать датчик случайных чисел. Выход из программы при нажатии любой клавиши.
Пример программы «Звездопад из символов» Пример 1 Пример 3 Пример 2
Задание 3 «Шахматная доска» Нарисовать на экране доску размером 8*8 клеток, закрашенных в два цвета. Подписать поля доски.
Пример программы «Шахматная доска»
Домашнее задание Разработать программу для игры в «Крестики – нолики»