Нужно сделать меню. Допустим выглядит так : 1. Факториал 2. Сумма чисел 3. Сумма ряда
Нужно сделать так : при нажатии клавиши вниз( вверх) выделяется нижний( верхний ) элемент меню. Затем при нажатии клавиши Enter запускается соответствующая программа, которая запускает нужный модуль, и затем выполняется сама программа. Как сделать модуль, я разобрался. Подскажите, как сделать меню ?
uses crt,modul;
const
menu :array[1..4] ofstring=(
' Посчитать факториал нечетных чисел от 1 до 9 ',
' Перевод из р-ичной системы счисления в десятичную ',
' Задача на множество из букв ',
' Выход ');
var
curchoice :byte;
status :byte;
temp :byte;
ch :char;
procedure z3;
begin
slova;
writeln('Нажмите Enter...');
end;
procedure z1;
begin
clrscr;
fak;
writeln('Ответ : ', fak);
writeln('Нажмите Enter...');
readln;
end;
procedure z2;
var n:string;
syst:longint;
begin
clrscr;
writeln('Выберите систему :');
readln(syst);
writeln('В ',syst,'-ичной системе можно использовать только цифры от 0 до ',syst-1,' !' );
writeln('В противном случае результат будет неверным!');
writeln('Число :');
readln(n);
todecr(n,syst);
textcolor(12);
writeln;
writeln('Ответ : ',todecr(n,syst));
textcolor(15);
writeln('Нажмите Enter...');
readln;
end;
procedure povtor;
begin
clrscr;
curchoice:=1; status:=0;
textcolor(11); for temp:=1to4do writeln(menu[temp]);
repeat
gotoxy(1,curchoice); textcolor(15); textbackground(13); write(menu[curchoice]);
textbackground(0);
if keypressed thencase readkey of#72: if curchoice>1thenbegin
textcolor(11); textbackground(0); gotoxy(1,curchoice);
write(menu[curchoice]); dec(curchoice);
end;
#80: if curchoice<4thenbegin
textcolor(11); textbackground(0); gotoxy(1,curchoice);
write(menu[curchoice]); inc(curchoice);
end;
#27: status:=4;
#13: begin
status:=curchoice;
if status = 1thenbegin z1; povtor; end;
if status = 2thenbegin z2; povtor; end;
if status = 3thenbegin z3; povtor; end;
endend;
until status=4;
end;
begin
povtor;
textcolor(13); textbackground(0);
end.
Подскажите, как сместить меню в центр экрана, что-то не получается. И можно ли убрать мигающий курсор ?
procedure povtor;
begin
clrscr;
curchoice:=1; status:=0;
textcolor(11); for temp:=1to4do writeln('':15, menu[temp]);
только тогда может понадобиться изменять еще несколько значений... Иначе подсвечиваться будет некрасиво...
А теперь - вопрос... Я тебе что, просто так дал ссылку? Я же написал на сайте, как делать НЕ надо, и ты тут же делаешь именно так, от чего я предупреждал !!! Что, пока сам не нарвешься на проблему - никого слушать не хочешь? А потом придешь, и будешь удивляться: все правильно, а вылетает
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.