Написание программы на языке Borland C++, которая работает под ОС MS-DOS и ее краткая характеристика, страница 3

     { tree *list;list=p; // то выводим на табло о текущих действиях

           while(list->up!=null) list=list->up;

           DelUr(list);

           setfillstyle(3,7);

           bar(130,150,520,210);

           setcolor(13);

           outtextxy(249,170,"Выполняется пункт:");

           l2=strlen(p->up->text);

           if(p->up->up!=null){

                   outtextxy(170,190,p->up->up->text);

                   l1=strlen(p->up->up->text);

                   outtextxy(176+l1*7,190,"  :");

                   }

           else outtextxy(176+l1*8+l2*8,190," :");

           outtextxy(176+l1*10,190,p->up->text);

           outtextxy(176+l1*10+l2*10,190,p->text);

           getch();

           setfillstyle(10,fon);

           bar(130,150,520,210);

           return(1);

             }

     else return(0);

  }

Menu2.

#include "menu1.cpp"

//-----------Программа---------------------------------------

 void main()

 {   int gd, gm, error; // Инициализация графики

    detectgraph(&gd,&gm);initgraph(&gd, &gm, "d:\\borlandc\\bgi");

    error= graphresult();

    if (error!= grOk) {

      printf("Ошибка инициализации графики");

      getch(); }

  tree *p,*list;

  p=makemenu();

  Window();         // Создание меню

  list=p;p=p->next;

  while(p!=list)    // Вывод первого уровня меню

    { p->x=p->pred->x+s;p->y=p->pred->y;

      No(p);

      p=p->next;

    }

  No(p);

  int c,flag1=1,flag2=0;

 //------------  Обработка нажатия клавиши ----------------

  while (flag1)

  {   c=getch();

      switch (c) {

        case 80: if(flag2==1)   //Указатель вниз

                 { No(p);

                   if(p->up==null){p=p ->doun;BuildUr(p);}

                   else p=p->next;

                   Yes(p);} break;

        case 77: if(flag2==1)   // Указатель вправо

               { No(p);

                 if(p->up==null) p=p->next;

                 else { if(p->up->up==null)

                      { while(p->up!=null) p=p->up;

                        DelUr(p);p=p->next;

                        p=p->doun;

                        BuildUr(p);

                      }

                    }

                 Yes(p);} break;

        case 72:if(flag2==1)    // Указатель вверх

              { No(p);

               if(p->up!=null) p=p->pred;Yes(p);}

               break;

        case 75:if(flag2==1)    //Указатель влево

              { No(p);

                if(p->up==null) p=p->pred;

                else { if(p->up->up==null)

                    { while(p->up!=null) p=p->up;

                      DelUr(p);p=p->pred;

                      p=p->doun;

                      BuildUr(p);

                     }

                   }

              Yes(p);} break;

       case 13:if(flag2==1)     //Обработка клавиши Enter

              { No(p);

               if (Letter(p))p=list;

               else

               { p=p->doun; BuildUr(p);}

               Yes(p);}

          break;

       case 66: if(flag2==1)   // Обработка клавиши F8

                { while(p->up!=null) p=p->up;

                 DelUr(p);

                 Yes(p);

                 setfillstyle(2,8);

                bar(115,150,550,250);

                setcolor(15); //Вывод содержимого "Помощь"

                outtextxy(250,170," Опции меню:");

        outtextxy(120,185,"Указатели вверх,вниз,влево,вправо-перемещение");

        outtextxy(130,200," Enter - выполнить пункт или вызвать подменю");

        outtextxy(130,215,"   Esc - выход из данного подменю в главное");

                getch();

                setfillstyle(10,fon);

                bar(115,150,550,300);}

                break;

        case 27: if(flag2==1)          // Обработка клавиши Esc

               { if(p->up!=null)

                  { No(p);

                   p=p->up;

                    DelUr(p);Yes(p);}} break;

        case 67: flag1=0;break;        //Обработка клавиш F9

        case 68: flag2=1;Yes(p);break; //Обработка клавиши F10

            }

     }

  closegraph();

 }