Домашняя работа - начало работы с модулем CRT

Коды управляющих клавиш

Нам необходимо написать программу, которая бы определяла коды таких клавиш, как PageUp, PAgeDown, Ctrl, Alt, F1, F2 и т.д. Составить таблицу, которая помогала бы в работе. Подобные клавиши и комбинации называют управляющими. Их коды легко получить, используя программу Keypressed 2.0 (7 Kb), достаточно лишь нажать какую-то комбинацию и программа сгенерирует текстовый файл, в котором сохранится код данной комбинации (пример workres.txt). Если хотите сами заморачиваться, с программой, приведу кусок скрипта, проверяющий "двойной" код:

a:=Readkey;
If a=#0 then begin 
writeln('Writing to file...');
writeln(f1,'Code: #0',ord(Readkey):8);
end;
,где f1-файл для записи. На основе многочисленных экспериментов были выяснены следующие двойные комбинации (из ординарных следует выделить BackSpace(8), Escape(27) и Enter(13):
код
комбинация
код
комбинация
код
комбинация
3
Ctrl-Z
16...25
Alt-Q...Alt-P (верхний ряд клавиш)
15
Shift-Tab
30...38
Alt-A...Alt-L (средний ряд)
44...50
Alt-Z...Alt-M
59...68
F1...F10
71
Home
72
стрелка вверх
73
Page Up
75
Стредка влево
77
Стрелка вправо
79
End
80
Стрелка вниз
81
Page Down
82
Insert
83
Delete
84...93
Shift-F1...Shift-F10
94...103
Ctrl-F1...Ctrl-F10
104..113
Alt-F1...Alt-F10
115
Ctrl+стрелка влево
114
Ctrl+ Print Scrn
116
Ctrl+стрелка вправо
117
Ctrl+End
118
Ctrl+Page Down
119
Ctrl-Home
120...131
Alt-1...Alt-=
132
Ctrl+Page Up

Управление курсором.

Написать фрагмент программы, которая бы определяла нажатие клавиши "влево" и "вправо" и соответственно перемещала курсор. Использовать KeyPressed и ReadKey.
Особо хочу отметить, что стандартный экран VGA вмещает в себя 80 позиций по горизонтали и 25 - по вертикали. Через двойной цикл if моим способом проверки программу получить не получится, так как все будет "зависать" на проверке нажатия левой клавиши (левая клавиша будет срабатывать со второго нажатия, а правая вообще не будет работать. Поэтому пришлось использовать буленовскую переменную. Для разнообразия добавил движение вверх и вниз, при необходимости они убираются удалением 2 строчек. В моей версии программа начинает работу со случайного метса экрана и завершает при достижении курсором границ экрана. Исходник кода, exe-файл (5 Kb).

          Страница создана: BlackPaul, http://studentps.narod.ru

Hosted by uCoz