Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



KeyPressed; - возвращает значение True (тип Boolean) - если была нажата любая клавиша (кроме Ctrl, Alt, NumLock и т. п.), иначе - False.

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

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

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

Для очистки буфера клавиатуры применяются операторы:

While KeyPressed Do c:=ReadKey;


Фрагмент 3.

Приведем пример программы, выводящей на экран в различных текстовых режимах надпись в виде ступеньки с заданным шагом "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.


Фрагмент 4. Пример операторов для создания окон.

При регулярном размещении нескольких рядов одинаковых окон на экране можно использовать двойной цикл для раздельного изменения номера строки и столбца:

textmode(258);xm:=lo(windmax);ym:=hi(windmax); {размеры экрана}

Nx:= 4; Ny:= 4; { Nx, Ny - число окон }

hx:= xm div Nx; hy:= ym div Ny; {hx, hy - размер окна по X и по Y}

for i:= 0 to Nx-1 do { чередование столбцов }

for j:= 0 to Ny-1 do begin { наращивание строк }

x1:= 1+hx*i; x2:=x1+hx-1;

y1:= 1+hy*j; y2:=y1+hy-1;

window(x1, y1, x2, y2); TextBackGroung(i+j); ClrScr;

End;


Работа с символьными переменными

Repeat c:=readKey; Write(c) until c=#13;

здесь "с" - переменная типа Char,

#13 - код клавиши Enter

#32 - SpaceBar

#27 - Esc

Для запоминания вводимых символов можно использовать операторы:

i:=0; repeat i:=i+1; ch[i]:=readKey; write(ch[i]) until ch[i]=#13;

Здесь ch[i] - элемент массива ch типа Char.

DelLine; InsLine;

Delay(M);

Фрагмент 5. Пример операторов, прокручивающих текст в окне.

Window(5,5,30,9);TextBackGround(1);Clrscr; TextColor(14);

Repeat delay(500); GotoXY(1, 5);

write('Всем большой привет!');

GotoXY(1, 1);

for k:=1 to 5 do begin { прокрутка вверх }

Delay(300); delLine end

Until keyPressed;

Для вывода на экран символа по номеру его кода можно использовать операторы:

C:= chr(N); write(C);

где N - номер кода символа (тип Byte),

chr - функция преобразования целого типа в символьный.

Фрагмент 6. Пример операторов, позволяющих курсорными клавишами перемещать по экрану курсор, либо выводить на экран символ нажатой клавиши.

x:= whereX; y:= whereY; { опрос текущих координат курсора }

Repeat

ch:= readkey; if ch = #0 then ch:= readkey;

Case ch of

#72: y:= y - 1; { курсор вверх }

#80: y:= y + 1; { курсор вниз }

#77: x:= x + 1; { курсор вправо }

#75: x:= x - 1; { курсор влево }

#73:begin x:=x+1; y:=y-1; end; { курсор вправо вверх Page Up }

#81: begin x:=x+1;y:=y+1;end; {курсор вправо вниз Page Down }

#71: begin x:=x-1;y:=y-1;end; { курсор влево вверх Home }

#79: begin x:=x-1;y:=y + 1; end; {курсор влево вниз End }

else write(ch) end; { вывод символа }

gotoXY(x, y) { перемещение курсора }

until ch= #27; { выход при нажатии клавиши Esc }





Дата публикования: 2015-11-01; Прочитано: 124 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...