Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2009, 07:56   #1
Real7
 
Регистрация: 17.12.2009
Сообщений: 5
По умолчанию Создание меню в Pascal

Нужно 5 программ объединить в единую программу с меню. Каждый пункт меню - вызов одной из 5-ти задач. После работы очередной задачи должен быть возврат в меню.Как это можно сделать?
Real7 вне форума Ответить с цитированием
Старый 20.12.2009, 14:00   #2
Seil_29
Пользователь
 
Аватар для Seil_29
 
Регистрация: 18.12.2009
Сообщений: 17
По умолчанию

Uses CRT;
begin
clrscr;
writeln(' '); // тут список
readln(k); // номер выбранной проги
clrscr;
if k=1 then //и так далее

end.
Seil_29 вне форума Ответить с цитированием
Старый 20.12.2009, 14:07   #3
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Я вот так делал:
Код:
Program q;
Uses Crt;
Var
  n: Byte;

procedure proc1;
begin
end;

procedure proc2;
begin
end;

procedure proc3;
begin
end;

procedure proc4;
begin
end;

procedure proc5;
begin
end;

begin
  repeat
  ClrScr;
  WriteLn('Program 1 - 1');
  WriteLn('Program 2 - 2');
  WriteLn('Program 3 - 3');
  WriteLn('Program 4 - 4');
  WriteLn('Program 5 - 5');
  WriteLn('Exit - 0');
  Write('Select program: ');
  ReadLn(n);
  Case n of
    1: proc1;
    2: proc2;
    3: proc3;
    4: proc4;
    5: proc5;
  end;
  until n <> 0;
end.
psycho-coder вне форума Ответить с цитированием
Старый 20.12.2009, 16:28   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну тогда ещё один вариант.
рекомендую.
Код:
{ Пример создания и использования меню }
program menu2;
uses Crt;
const
     NORM=$17; { цвет невыделеного пункта }
     SEL=$70;  { цвет выделенного пункта }
     N=3;
var
     menu:array[1..N] of string[12];{ названия пунктов меню }
     punkt:integer;  { номер выделенного пункта }
     ch:char;        { введенный символ }
     x,y:integer;    { координаты первой строки меню }

Procedure punkt1;
begin
     ClrScr;
     writeln('Процедура 1.Нажмите <Enter> для продолжения.');
     readln;
end;

Procedure punkt2;
begin
     ClrScr;
     writeln('Процедура 2.Нажмите <Enter> для продолжения.');
     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]:=' Действие 1 ';
     menu[2]:=' Действие 2 ';
     menu[3]:=' Выход ';
     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):{ стрелка вниз }
                         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):{ стрелка вверх }
                         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 { нажата клавиша <Enter> }
                    case punkt of
                         1:punkt1;
                         2:punkt2;
                         3:ch:=chr(27);{ выход }
                    end;
                    MenuToScr;
               end;
     until ch=chr(27);{ 27 - код <Esc> }
end.
p.s. а вообще в TurboProfessional (c) TurboPower была отличная реализация меню! (меню получается такое же, как в самой IDE TP7)
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание меню Elfix Microsoft Office Excel 8 20.10.2009 18:26
Создание меню для сайтов iukash Софт 1 30.06.2009 02:57
Создание пользовательских меню Наталья Ивановна Microsoft Office Excel 2 26.05.2009 19:27
Создание меню StudentPolitech Общие вопросы C/C++ 8 12.12.2008 10:33
Создание меню на С KsandR Общие вопросы C/C++ 5 13.12.2007 21:34