Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!