Помощь - Поиск - Пользователи - Календарь
Полная версия: Создание меню
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
vi-rus
Люди, очень нужна ваша помощь.

Нужно сделать меню. Допустим выглядит так : 1. Факториал
2. Сумма чисел
3. Сумма ряда

Нужно сделать так : при нажатии клавиши вниз( вверх) выделяется нижний( верхний ) элемент меню. Затем при нажатии клавиши Enter запускается соответствующая программа, которая запускает нужный модуль, и затем выполняется сама программа.
Как сделать модуль, я разобрался. Подскажите, как сделать меню ?
Артемий
Графический режим? Пробовала что-нибудь делать?покажи..
vi-rus
А возможно ли это делать без графического режима ?
volvo
Или здесь: http://volvo71.narod.ru/menus.htm
vi-rus
Вот вроде бы сделал :

uses crt,modul;
const
menu :array[1..4] of string=(
' Посчитать факториал нечетных чисел от 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:=1 to 4 do writeln(menu[temp]);
repeat
gotoxy(1,curchoice); textcolor(15); textbackground(13); write(menu[curchoice]);
textbackground(0);
if keypressed then

case readkey of
#72: if curchoice>1 then begin
textcolor(11); textbackground(0); gotoxy(1,curchoice);
write(menu[curchoice]); dec(curchoice);
end;
#80: if curchoice<4 then begin
textcolor(11); textbackground(0); gotoxy(1,curchoice);
write(menu[curchoice]); inc(curchoice);
end;
#27: status:=4;
#13: begin
status:=curchoice;
if status = 1 then begin z1; povtor; end;
if status = 2 then begin z2; povtor; end;
if status = 3 then begin z3; povtor; end;
end
end;

until status=4;

end;



begin
povtor;
textcolor(13); textbackground(0);
end.



Подскажите, как сместить меню в центр экрана, что-то не получается. И можно ли убрать мигающий курсор ?
volvo
Цитата
можно ли убрать мигающий курсор ?

Курсор

Сдвинуть ближе к центру экрана можно так:
procedure povtor;
begin
clrscr;
curchoice:=1; status:=0;
textcolor(11); for temp:=1 to 4 do writeln('':15, menu[temp]);

только тогда может понадобиться изменять еще несколько значений... Иначе подсвечиваться будет некрасиво...

А теперь - вопрос... Я тебе что, просто так дал ссылку? Я же написал на сайте, как делать НЕ надо, и ты тут же делаешь именно так, от чего я предупреждал !!! Что, пока сам не нарвешься на проблему - никого слушать не хочешь? А потом придешь, и будешь удивляться: все правильно, а вылетает dry.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.