Реализовать меню, запускающее три разных программы - Free Pascal
Формулировка задачи:
Помогите пожалуйста! Есть меню :
1. пункт 1
2. пункт 2
3. пункт 3, в каждый пункт нужно впихнуть три разные программы, так чтобы при работе с меню можно было запустить пункт 1 и переходило к моей программе и т.д.
Решение задачи: «Реализовать меню, запускающее три разных программы»
textual
Листинг программы
program menu2; uses Crt; const NORM=$17; SEL=$70; N=4; var f1:text; menu:array[1..N] of string; punkt:integer; ch:char; x,y:integer; Procedure punkt1; begin ClrScr; writeln('Please ENTER for continue'); readln; end; Procedure punkt2; begin ClrScr; writeln('Please ENTER for continue'); readln; end; Procedure punkt3; begin ClrScr; writeln('Please ENTER for continue'); readln; end; Procedure MenuToScr; var i:integer; begin ClrScr; for i:=1 to N do begin GoToXY(x,y+i-1); write(menu[i]); end; TextAttr:=SEL; GoToXY(x,y+punkt-1); write(menu[punkt]); TextAttr:=NORM; end; begin menu[1]:=' Sortirovka Piramida '; menu[2]:=' Sortirovka Shella '; menu[3]:=' Zadacha 8 ferzei '; menu[4]:=' Exit '; punkt:=1; x:=5; y:=5; TextAttr:=NORM; MenuToScr; repeat ch:=ReadKey; if ch=char(0) then begin ch:=ReadKey; case ch of chr(80): {strelka vniz} if punkt<N then begin GoToXY(x,y+punkt-1); write(menu[punkt]); punkt:=punkt+1; TextAttr:=SEl; GoToXY(x,y+punkt-1); write(menu[punkt]); TextAttr:=NORM; end; chr(72):{ strelka vverx} if punkt>1 then begin GoToXY(x,y+punkt-1); write(menu[punkt]); punkt:=punkt-1; TextAttr:=SEl; GoToXY(x,y+punkt-1); write(menu[punkt]); TextAttr:=NORM; end; end; end else if ch=chr(13) then begin { najat <Enter> } case punkt of 1:punkt1; 2:punkt2; 3:punkt3; 4:ch:=chr(27);{ Exit } end; MenuToScr; end; until ch=chr(27); { <Esc> } end.
Объяснение кода листинга программы
- Программа
Sortirovka Piramida
. - Программа
Sortirovka Shella
. - Программа
Zadacha 8 ferzei
. - Программа
Exit
. - Переменная NORM отвечает за атрибут текста по умолчанию.
- Переменная SEL отвечает за выделение текста при наведении на элемент меню.
- Переменная N отвечает за количество элементов в меню.
- Переменная f1 содержит текстовый файл с описанием меню.
- Переменная menu является массивом строк, содержащих названия пунктов меню.
- Переменная punkt отслеживает выбранный пункт меню.
- Переменная ch используется для чтения нажатий клавиш.
- Переменные x и y используются для позиционирования курсора на экране.
- Функция GoToXY используется для перемещения курсора на заданную позицию на экране.
- Функция write используется для вывода текста на экран.
- Функция readln используется для чтения ввода пользователя.
- Функция ReadKey используется для чтения нажатий клавиш.
- Ключ char(0) используется для обработки нажатия клавиши
стрелка вниз
. - Ключ char(72) используется для обработки нажатия клавиши
стрелка вверх
. - Ключ char(13) используется для обработки нажатия клавиши
Enter
. - Ключ char(27) используется для обработки нажатия клавиши
Escape
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д