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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2017, 20:42   #1
Gamora132
Новичок
Джуниор
 
Регистрация: 14.11.2017
Сообщений: 1
По умолчанию переход между меню

Моя задача сделать кассу, у меня проект, делаю по модулям, возникла проблема то что не понимаю как сделать переход, если прочесть код то в конце увидите две строки,(Открыть кассу) (Закрыть кассу), Моя задача при открытии кассы, открывалось другое меню. Пмогите.

Код:
//usit kassa;
uses crt, graphABC;

type
    kassa=record;
end;


var fp:file of kassa;
    menu:array[1..6] of string;
    button:char;
    mesto,i:integer;

(*procedure buy;
var i,j,menu:integer;
  begin
       writeln('Посмотреть какой есть товар');
       writeln('Купить товар');
       
         assign(fp,sklad.l8);
         reset(fp);
         clearwindow;
         TextOut();
         TextOut();
         TextOut();
         TextOut();
         TextOut();
    end; *)



begin
    menu[1]:= 'Открыть кассу';
    menu[2]:= 'Закрыть кассу';
    mesto:=1;
    while true do
    begin
         clrscr;
         SetFontSize(12);

     for i:=1 to 2 do
     if mesto=i then
     begin
          SetFontColor(255);
          TextOut(200,50*i,'>>'+ menu[i]);
     end
     else
      begin
           SetFontColor(0);
           TextOut(200,50*i,'  '+ menu[i]);
      end;

      button:=readkey;

     if button=#72 then
     if mesto=1 then mesto:=2
     else
     mesto:=mesto-1;
     if button=#80 then
     if mesto=2 then mesto:=1
     else
     mesto:=mesto+1;


     if button=#13 then
     case mesto of
     
     1:begin end;
     2:closewindow;
     end;
     delay(50);

     end;

     menu[1]:='купить товар';
     menu[2]:='Вернуть товар';
     menu[3]:='Выручка';
     menu[4]:='Закрыть кассу';
     mesto:=1;
     
     while true do
     begin
       clrscr;
       SetFontSize(12);

     for i:=1 to 4 do
     if mesto=i then
     begin
          SetFontColor(255);
          TextOut(200,50*i,'>>'+ menu[i]);
     end
     else
      begin
          SetFontColor(0);
          TextOut(200,50*i,'  '+ menu[i]);
      end;

      button:=readkey;

     if button=#72 then
     if mesto=1 then mesto:=4
     else
     mesto:=mesto-1;
     if button=#80 then
     if mesto=4 then mesto:=1
     else
     mesto:=mesto+1;


     if button=#13 then
     case mesto of
     1:begin end;
     2:begin end;
     3:begin end;
     end;
     delay(50);

     end;
     //buy;
     //Return;


end.

Последний раз редактировалось Аватар; 14.11.2017 в 21:00.
Gamora132 вне форума Ответить с цитированием
Старый 17.11.2017, 20:28   #2
Alexan-Dwer
Форумчанин
 
Аватар для Alexan-Dwer
 
Регистрация: 20.04.2009
Сообщений: 136
По умолчанию

Gamora132, Вы создали бесконечный цикл, обработчик у Вас:
Цитата:
Код:
case mesto of
1: begin end;
2: closewindow;
end;
Из него Вам нужно или перейти во второй цикл, или оформить его как процедуру, соответственно, Вам либо
Код:
1: begin GoTo label_name end;
или
Код:
1: begin GoTo NextAction; end;
begin и end кстати можно убрать, так как только один оператор. Ну, еще можно в этот begin ... end засунуть Ваш второй цикл. Наверно, самое аккуратное решение - это вызов процедуры, потому-что кто-то сказал что GoTo - зло, хотя можно и его использовать, если ругать не будут.

А так, еще, почему:
Цитата:
Код:
type
kassa=record;
end;
а не:

Код:
type
kassa=record
end;
Хотя может в ABC так надо, в обычном была бы ошибка, по идее...
Alexan-Dwer вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переход между абзацами Рыжик чик чик Microsoft Office Word 1 04.03.2011 15:21
Переход между Input Des JavaScript, Ajax 3 22.11.2010 06:58
Переход между компонентами UnChanter Помощь студентам 2 11.01.2010 01:08
Переход между формами! Lemo Общие вопросы Delphi 5 05.02.2009 15:50
Переход между формами(( Lemo Общие вопросы Delphi 6 31.01.2009 22:06