Writeln ('0', ord (ReadKey):8)
until c=#27 {27 – расширенный код клавиши esc} End. Если вы воспользуетесь этой программой, то обнаружите, что нажатие на некоторые клавиши игнорируется функцией ReadKey. Это прежде всего так называемые сдвиговые клавиши – Shift, Ctrl, Alt. Сдвиговые клавиши в MS-DOS обычно используются для переключения регистров клавиатуры и нажимаются в сочетании с другими клавишами. Именно таким способом, например, различается ввод прописных и строчных букв. Кроме того, функция игнорирует переключающие клавиши Caps Lock, N um Lock, Scroll Lock. в таблице приведены расширенные коды клавиш, возвращаемые функцией o rd (ReadKey). Расширенные коды клавиш Таблица Код |
Клавиша или комбинация клавиш |
Код |
Клавиша или комбинация клавиш | ||||||||||||||||||
первый байт |
Второй байт | первый байт |
Второй байт | ||||||||||||||||||
Алфавитно-цифровые клавиши | |||||||||||||||||||||
8 | – | backspace (забой) | 9 | – | tab (табуляция) | ||||||||||||||||
13 | – | enter | 32 | – | пробел | ||||||||||||||||
33 | – | ! | 34 | – | « | ||||||||||||||||
35 | – | # | 36 | – | $ | ||||||||||||||||
37 | – | % | 38 | – | & | ||||||||||||||||
39 | – | " | 40 | – | ( | ||||||||||||||||
41 | – | ) | 42 | – | * | ||||||||||||||||
43 | – | + | 44 | – | , | ||||||||||||||||
45 | – | – | 46 | – | . | ||||||||||||||||
47 | – | / | 48...57 | – | 0...9 | ||||||||||||||||
58 | – | : | 59 | – | ; | ||||||||||||||||
60 | – | < | 61 | – | = | ||||||||||||||||
52 | – | > | 63 | – | ? | ||||||||||||||||
64 | – | @ | 65...90 | – | A...Z | ||||||||||||||||
91 | – | [ | 92 | – | / | ||||||||||||||||
93 | – | ] | 94 | – | ^ | ||||||||||||||||
95 | – | _ | 96 | – | " | ||||||||||||||||
97...122 | – | a...z | 123 | – | { | ||||||||||||||||
124 | – | ?? | 125 | – | } | ||||||||||||||||
126 | – | ~ | 128...159 | – | A...Я | ||||||||||||||||
160...175 | – | а...п | 224...239 | – | р...я | ||||||||||||||||
Управляющие клавиши и их сочетания со сдвиговыми | |||||||||||||||||||||
0 | 3 | Ctrl–2 | 0 | 15 | Shift – Tab | ||||||||||||||||
0 | 16...25 | Alt–Q...Alt–P (верхний ряд букв) | 0 | 30...38 | Alt–A...Alt–L (средний ряд букв) | ||||||||||||||||
0 | 44...50 | Alt–Z...Alt–M (нижний ряд букв) | 0 | 59...68 72 | F1...F10 курсор вверх | ||||||||||||||||
0 | 71 | Home | 0 | 75 | курсор влево | ||||||||||||||||
0 | 73 | PgUp | 0 | 79 | End | ||||||||||||||||
0 | 77 | курсор вправо | 0 | 81 | PgDn | ||||||||||||||||
0 | 80 | курсор вниз | 0 | 83 | Del | ||||||||||||||||
Окончание таблицы
Код
Клавиша или комбинация клавиш
Код
Клавиша или комбинация клавиш
0
120...131
alt–1...alt– = (верхний ряд клавиш)
11.2. Текстовый вывод на экран
Библиотека Turbo Vision способна удовлетворить самым высоким требованиям, и мы настоятельно рекомендуем обращаться к ней при программировании сложных текстовых изображений (меню, окон и т.п.). Тем не менее, вполне возможно, что некоторые из читателей захотят использовать значительно более простые, но достаточно эффективные средства модуля CRT, описываемые в этом разделе.
Процедура TextMode используется для задания одного из возможных текстовых режимов работы адаптера монитора. Заголовок процедуры:
Procedure TextMode ( mode : word );
Здесь mode – код текстового режима. в качестве значения этого выражения могут использоваться следующие константы, определенные в модуле CRT:
const
bw40=0; {черно-белый режим 40*25}
co40=l; {цветной режим 40*25}
bw80=2, {черно-белый режим 80*25}
co80=3; {цветной режим 80*25}
mono=7; {используется с mda}
Font8*8=256; {используется для загружаемого шрифта в режиме 80*43 или 80*50 с адаптерами EGA или VGA}
Код режима, установленного с помощью вызова процедуры TextMode, запоминается в глобальной переменной LastMode модуля CRT и может использоваться для восстановления начального состояния экрана.
следующая программа иллюстрирует использование этой процедуры в различных режимах. заметим, что при вызове TextMode сбрасываются все ранее сделанные установки цвета и окон, экран очищается и курсор переводится в его левый верхний угол.
user CRT;
procedure print (s: string), {вывести сообщение s и ждать инициативы пользователя}
Begin
write l n (s), {вывести сообщение}
write l n ('нажать клавишу enter...');
read l n {ждем нажатия клавиши enter}
end; {print}
Var
lm: word, {начальный режим экрана}
Begin
lm:=LastMode; {запомнить начальный режим работы дисплея}
TextMode ( со 40);
print (' режим 40*25');
TextMode (co8o);
print (' режим 80*25');
TextMode (co40+font8*8);
print (' режим co40+font8*8');
TextMode ( co 80+ font 8*8);
print ('режим co80+font8*8'), {восстановить исходный режим работы:}
TextMode ( lm )
End .
Процедура TextColor определяет цвет выводимых символов. заголовок процедуры:
Procedure TextColor ( color : byte );
Процедура TextBackGround определяет цвет фона. заголовок процедуры:
Procedure TextBackGround ( color : byte );
Единственным параметром обращения к этим процедурам должно быть выражение типа byte, задающее код нужного цвета. Этот код удобно определять с помощью следующих мнемонических констант, объявленных в модуле CRT:
Const
black =0; {черный}
blue=l; {темно-синий}
green=2; {темно-зеленый}
суаn=3; { бирюзовый}
red=4; {красный}
magenta=8; {фиолетовый}
brown=6; {коричневый}
lightgray=7; {светло-серый}
darkgray=8; {темно-серый}
light blue =9; {синий}
lightgreen =10; {светло-зеленый}
lightcyan =11; {светло-бирюзовый}
lightred =12; {розовый}
lightmagenta =13; {малиновый}
yellow =14; {желтый}
white =15; {белый}
blink=128; {мерцание символа}
Следующая программа иллюстрирует цветовые возможности Турбо-Паскаля.
uses CRT,
const
col: array [1..15] of string [16] =
('темно-синий', 'темно-зеленый', 'бирюзовый', 'красный', 'фиолетовый', 'коричневый', 'светло-серый', 'темно-серый', 'синий', 'зеленый', 'светло-бирюзовый', 'розовый', 'малиновый', 'желтый', 'белый');
Var
K: byte,
Begin
for k:=l to 15 do
Begin {выводим 15 сообщений различными цветами}
Textcolor (k),
writeln (" цвет ", k, "-", col [k] )
End;
textcolor (white+blink); { белые мигающие символы }
writeln ("мерцание символов");
{восстанавливаем стандартный цвет}
Textcolor ( lightgray ),
Writeln
End .
Обратите внимание на последний оператор write ln. Если его убрать, режим мерцания символов сохранится после завершения программы, несмотря на то, что перед ним стоит оператор
TextColor (lightgray);
Дело в том, что все цветовые определения предварительно заносятся в специальную переменную TextAttr модуля CRT и используются для настройки адаптера только при обращении к процедурам write/writ eln.
Процедура ClrScr очищает экран или окно (см. ниже процедуру window). после обращения к ней экран (окно) заполняется цветом фона и курсор устанавливается в его левый верхний угол. например:
Uses CRT;
Var
С : char
Begin
Textbackground (red);
clrscr; { заполняем экран красным цветом }
writeln (" нажмите любую клавишу ...");
с := ReadKey, { ждем нажатия любой клавиши }
2020-02-04 | 178 | Обсуждений (0) |
5.00
из
|
Обсуждение в статье: Writeln ('0', ord (ReadKey):8) |
Обсуждений еще не было, будьте первым... ↓↓↓ |
Почему 1285321 студент выбрали МегаОбучалку...
Система поиска информации
Мобильная версия сайта
Удобная навигация
Нет шокирующей рекламы