double arrow

Управление клавиатурой

 
 


KeyPressed; - возвращает значение True (тип Boolean) - если была нажата любая

клавиша (кроме Ctrl, Alt, NumLock и т. п.), иначе - False.

ReadKey; - возвращает символ нажатой клавиши (тип Char).

Следующие операторы выводят на экран указанную надпись до нажатия клавиши:

Repeat Writeln('Нажмите скорее любую клавишу') until KeyPressed;

Следующие операторы ожидают нажатия клавиши с символом "А":

Repeat Writeln('Нажмите клавишу "А"'); c:=ReadKey until c='А';

В отличие от оператора Read оператор ReadKey не показывает на экране символ нажатой клавиши.

При нажатии на клавишу в буфер клавиатуры записывается соответствующий код, который считывается операторами Read/Readln либо функцией Readkey. При этом буфер клавиатуры очищается. При многократном нажатии на клавиши (без считывания программой символов) буфер клавиатуры переполняется и компьютер начинает "пищать". Для очистки буфера клавиатуры применяются операторы:

While KeyPressed Do c:=ReadKey;

Приведем пример программы, выводящей на экран в различных текстовых режимах надпись в виде ступеньки с заданным шагом "dx" по оси "х", в каждой строке "у", начиная с позиции (1, 1).

PROGRAM FAM;

Uses CRT;

var N: word; f, dx, x, y, i, j, xm, ym: byte;

BEGIN

for i:=0 to 9 do begin { режимы работы монитора }

if i<4 then N:=i else N:=256+i-4; if i=9 then N:=7;

textMode(N);

xm:=lo(WindMax)+1; ym:=hi(WindMax)+1;

write('xm=',xm, '_ym=',ym, '_N=',N, '_Нажмите Enter'); readln;

TextBackGround(1); clrscr; TextColor(14); x:=1;

f:=8; dx:=3; { f - длина фамилии + курсор, dx - приращение отступа}

for j:=1 to ym-1 do begin y:=j;

if (xm-x-f)<0 then x:=1; { контроль выхода надписи за экран }

gotoXY(x, y); write('ФАМИЛИЯ'); x:= x + dx; end;

Writeln; write('Нажмите Enter'); readln end;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: