TURBO PASCAL

Новости       

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности 

Гостевая книга

Спонсор

От автора

 

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)  

END.

 

На первую страницу

Rambler's Top100 PROext: Top 1000
Rambler's Top100

(с) Все права защищены.

По всем интересующим вопросам прошу писать электронный адрес

Hosted by uCoz