Главная » Free Pascal » Разное CRT Free Pascal

0

Список остальных процедур и функций модуля Crt приведен в табл. 12.2

Таблица 12.2

Формат обращения

Выполняемое действие

Модификация содержимого окна вывода

ClrScr;

Очистка текущего окна вывода с переводом курсора в левый верхний угол (аббревиатура от Clear Screen)

ClrEol;

Очистка конца текущей строки, начиная с позиции курсора (аббревиатура от Clear to End Of Line)

DelLine;

Удаление текущей строки с подъемом строк, расположенных ниже (аббревиатура от Delete Line)

InsLine;

Вставка пустой строки с подъемом текущей строки и всех расположенных выше (аббревиатура от Insert Line)

Работа с клавиатурой

bv:=KeyPressed;

if KeyPressed then…

Анализ — была ли нажата какая-либо клавиша к моменту вызова функции KeyPressed. Если такое событие имело место, то функция возвращает значение True

cv:=ReadKey;

Чтение кода нажатой клавиши (тип cv — char)

Таблица 12.2 (окончание)

Формат обращения

Выполняемое действие

Аудиопроцедуры

Sound(f);

Выдача звукового сигнала

Delay(n);

Задержка на n миллисекунд

Nosound;

Отмена звукового сигнала

Переназначение вывода в файл

AssignCRT(vf);

vf — файловая переменная типа Text

Процедуры ClrEol, DelLine и InsLine могут использоваться для программиро- вания некоторых операций текстового редактора.

После старта приложения пользователь может нажимать клавиши, не дожида- ясь приглашения со стороны программы. Коды нажимаемых клавиш накапливают-

ся в буфере клавиатуры до тех пор, пока приложение не обратится к одной из под- программ ввода — read, readln или ReadKey. Если две первые процедуры завершают свою работу только после нажатия клавиши <Enter>, то функция Read- Key в таком нажатии не нуждается. Если буфер клавиатуры к моменту выполнения функции ReadKey не пуст, то из него извлекается код первого символа. Если этот код соответствует обычному отображаемому символу (т. е. его коду ASCII, отлич- ному от нуля), то он и возвращается в качестве значения функции. Если на выходе буфера клавиатуры находилась пара байтов, соответствующая специальной клави- ше, то первым будет извлечен нулевой байт, который также будет возвращен в ка- честве значения функции ReadKey. В этом случае надо повторно обратиться к функции ReadKey для считывания скан-кода специальной клавиши. Считываемый код из буфера клавиатуры удаляется. Если в момент вызова функции ReadKey бу- фер клавиатуры пуст, то действие программы приостанавливается до тех пор, пока не будет нажата какая-либо клавиша.

В отличие от описанной схемы ввода с возможным ожиданием нажатия клавиши функция KeyPressed завершает свою работу без такого ожидания. Она возвращает значение False, если в момент ее выполнения буфер клавиатуры пуст, и значение True в противном случае. Содержимое буфера клавиатуры при этом не изменяется.

Под управлением Windows функции запуска генератора звука (Sound) и его ос- тановки (NoSound) выполняются не так, как это происходило под управлением MS- DOS. Раньше генератор начинал издавать непрерывный звук частоты f (в герцах) и остановить его можно было спустя некоторое время, регулируемое с помощью за- держки (Delay). Под управлением Windows аргумент процедуры Sound игнориру- ется, и вместо звука определенной тональности раздается системный звук, по умолчанию напоминающий щелчок по барабану. Поэтому обращение к процедуре NoSound, по большому счету, лишено смысла.

Возможностью программного перенаправления выводимых данных в файл (процедура AssignCRT) пользуются достаточно редко, т. к. это же действие обеспе- чивается заданием соответствующего параметра в командной строке.

Источник: Кетков, Ю. Л., Свободное программное обеспечение. FREE PASCAL для студентов и школьников, Ю. Л. Кетков, А. Ю. Кетков. — СПб.: БХВ-Петербург, 2011. — 384 с.: ил. + CD-ROM — (ИиИКТ)

По теме:

  • Комментарии