Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

TextMode (lm)




Begin

Var

Begin

End.

Else

Writeln (ord(c))

Repeat

Begin

End.

.....

While Keypressed do

Begin

Var

с; char;

c:== ReadKey;

При использовании процедуры ReadKey следует учесть, что в клавиатурный буфер помещаются так называемые расширенные коды нажатых клавиш. Если нажимается любая алфавитно-цифровая клавиша, расширенный код совпадает с ASCII -кодом соответствующего символа. Например, если нажимается клавиша с латинской буквой «а» (в нижнем регистре), функция ReadKey возвращает значение chr(97), а если – «а» (в верхнем регистре) – значение chr(65). При нажатии функциональных клавиш F1...F10 (клавиш управления курсором), клавиш Ins, Home, Del, End, PgUp, PgDn в буфер помещается двухбайтовая последовательность: сначала символ #0, а затем расширенный код клавиши. Таким образом, значение #0, возвращаемое функцией ReadKey, используется исключительно для того, чтобы указать программе на генерацию расширенного кода. Получив это значение, программа должна еще раз обратиться к функции, чтобы прочитать расширенный код клавиши.

Следующая простая программа позволит определить расширенный код любой клавиши. Для завершения работы программы нужно нажать клавишу esc.

Uses CRT;

Var с: char;

c:= ReadKey;

if c< >#0 then

writeln ('0', ord (ReadKey):8)

until c=#27 {27 – расширенный код клавиши esc}

Если вы воспользуетесь этой программой, то обнаружите, что нажатие на некоторые клавиши игнорируется функцией ReadKey. Это прежде всего так называемые сдвиговые клавиши – Shift, Ctrl, Alt. Сдвиговые клавиши в MS-DOS обычно используются для переключения регистров клавиатуры и нажимаются в сочетании с другими клавишами. Именно таким способом, например, различается ввод прописных и строчных букв. Кроме того, функция игнорирует переключающие клавиши Caps Lock, Num Lock, Scroll Lock.

в таблице приведены расширенные коды клавиш, возвращаемые функцией ord(ReadKey).


Расширенные коды клавиш

Таблица

Код Клавиша или комбинация клавиш Код Клавиша или комбинация клавиш
первый байт второй байт первый байт второй байт
Алфавитно-цифровые клавиши
  backspace (забой)   tab (табуляция)
  enter   пробел
  !   «
  #   $
  %   &
  "   (
  )   *
  +   ,
    .
  / 48...57 0...9
  :   ;
  <   =
  >   ?
  @ 65...90 A...Z
  [   /
  ]   ^
  _   "
97...122 a...z   {
  ??   }
  ~ 128...159 A...Я
160...175 а...п 224...239 р...я
Управляющие клавиши и их сочетания со сдвиговыми
    Ctrl–2     Shift – Tab
  16...25 Alt–Q...Alt–P (верхний ряд букв)   30...38 Alt–A...Alt–L (средний ряд букв)
  44...50 Alt–Z...Alt–M (нижний ряд букв)   59...68 F1...F10 курсор вверх
    Home     курсор влево
    PgUp     End
    курсор вправо     PgDn
    курсор вниз     Del
                         

 

 

окончание таблицы

код клавиша или комбинация клавиш код клавиша или комбинация клавиш
первый байт второй байт первый байт второй байт
    Ins   94...103 Ctrl–F1...Ctrl–F10
  84...93 Shift–F1... Shift–F10     Ctrl– PrtScr
  104...113 Alt–F1...Alt–F10     Ctrl – курсор вправо
    Ctrl – курсор влево     Ctrl – PgDn
    Ctrl – End   120...131 alt–1...alt– = (верхний ряд клавиш)
    Ctrl – Home
    Ctrl – PgUp

 

 

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 и ждать инициативы пользователя}

writeln (s), {вывести сообщение}

writeln ('нажать клавишу enter...');

readln {ждем нажатия клавиши enter}

end; {print}

lm: word, {начальный режим экрана}

lm:=LastMode; {запомнить начальный режим работы дисплея}

TextMode (со40);

print ('режим 40*25');

TextMode (co8o);

print ('режим 80*25');

TextMode (co40+font8*8);

print ('режим co40+font8*8');

TextMode (co80+font8*8);

print ('режим co80+font8*8'), {восстановить исходный режим работы:}




Поделиться с друзьями:


Дата добавления: 2014-12-17; Просмотров: 464; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.