TURBO PASCAL |
Новости |
1. 14. 2. Управление клавиатурой
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;
TextMode(3)
|
(с) Все права защищены. По всем интересующим вопросам прошу писать электронный адрес |