Создать бегущую строку с изменением положения на экране верх - низ по нажатию клавиши F8 - Turbo Pascal
Формулировка задачи:
Помогите создать программу бегущую строку с добавлением обработки клавишей F8, по нажатию которой строка будет менять положение на экране (верх - низ).
Решение задачи: «Создать бегущую строку с изменением положения на экране верх - низ по нажатию клавиши F8»
textual
Листинг программы
uses crt;
const a:array[boolean] of integer=(-5,5);
var s,s1:string;
i,k,y:byte;
c:char;
f:boolean;
begin
clrscr;
s:='Это бегущая строка Это бегущая строка Это бегущая строка ';
s:=' '+s;
k:=80-length(s);
clrscr;
y:=15;
f:=false;
writeln('Строка F8 выход Esc');
for i:=1 to k-1 do
s:=s+' ';
repeat
delete(s,1,1);
gotoxy(1,y);
delay(50);
delline;
write(s);
gotoXY(25,1);
s1:=copy(s,1,1);
s:=s+s1;
if keypressed then
begin
c:=readkey;
if c=#0 then c:=readkey;
case c of
#66:begin
y:=y+a[f];
gotoXY(1,y-a[f]);
delline;
f:=not f;
end;
#27:exit;
end;
end;
until c=#27;
end.
Объяснение кода листинга программы
- Создается переменная
a, которая представляет собой массив целых чисел. - Создаются переменные
sиs1, которые представляют собой строки. - Создаются переменные
i,kиy, которые представляют собой байты. - Создается переменная
c, которая представляет собой символ. - Создается переменная
f, которая представляет собой логическое значение. - Выполняется очистка экрана.
- Строка
sустанавливается в начальное состояние. - Строка
s1устанавливается в начальное состояние. - Устанавливается начальное положение курсора.
- Выводится сообщение в консоль.
- Запускается цикл, который повторяется до тех пор, пока не будет нажата клавиша
#27. - Внутри цикла выполняются следующие действия:
- Строка
sизменяется путем удаления одного символа. - Курсор перемещается к новому положению.
- Строка
s1копируется из строкиs. - Строка
sобновляется путем добавления строкиs1. - Проверяется, была ли нажата клавиша
#66. Если да, то:- Увеличивается значение переменной
yна значение из массиваa. - Устанавливается новое положение курсора.
- Строка
sочищается. - Переменная
fинвертируется.
- Увеличивается значение переменной
- Проверяется, была ли нажата клавиша
#27. Если да, то цикл завершается.
- Строка
- Конец программы.