Написать систему ниспадающего меню, которая в зависимости от выбора пользователя выводит на экран: красит экран в белый (программа Паскаль)

Вопрос посетителя

Написать систему ниспадающего меню, которая в зависимости от выбора пользователя выводит на экран: красит экран в белый и черный цвет; термометр, у которого ртутный столбик  поднимается; термометр, у которого ртутный  столбик опускается

Ответ эксперта

USES Graph, Crt;
VAR
  Dr, Md, M, X, Y, I : INTEGER;  Ch:CHAR;
BEGIN
  Dr:=Detect;
  InitGraph(Dr,Md,’c:tp7bgi’);  IF GraphResult<>0 then HALT(1);
  REPEAT
     SetBkColor(1); SetColor(6); SetTextStyle(0,0,2);
     ClearDevice;
    { Вывод меню }
    OutTextXY(50,140,’Пробел — Красим экран’);
    OutTextXY(50,170,’Стрелка вверх — Столбик поднимается’);
    OutTextXY(50,200,’Стрелка вниз — Столбик опускается’);
    OutTextXY(50,230,’ESC — Выход’);
    REPEAT
       Ch:=ReadKey; {разветвление программы по нажатию клавиши}
            CASE Ch OF
         #32:Begin { Красим экран }
                  ClearDevice;
                  SetBkColor(0); SetFillStyle(1,15);
                  Bar(0,0,GetMaxX div 2,GetMaxY);
                  SetFillStyle(1,0);
                  Bar(GetMaxX div 2,0,GetMaxX,GetMaxY);
                  OutTextXY(70,GetMaxY-25,’Нажмите DEL’);
               End;
        #72:Begin { Ртутный столбик поднимается }
                 ClearDevice;  SetLineStyle(0,0,1); SetBkColor(1); SetColor(4);
                 X:=GetMaxX div 2; Y:=GetMaxY div 2;
                 Rectangle(X,Y,X+40,GetMaxY-20);
                 FOR I:=1 TO120 DO Begin
                    SetColor(4); SetLineStyle(0,0,3);
                    Line(X,GetMaxY-20-I,X+40,GetMaxY-20-i);
                    Delay(250);
                 End;
                 OutTextXY(70,GetMaxY-25,’Нажмите DEL’);
              End;
       #80:Begin { Ртутный столбик опускается }
                ClearDevice; SetLineStyle(0,0,1); SetBkColor(1); SetColor(4);
                X:=GetMaxX div 2; Y:=GetMaxY div 2;
                Rectangle(x,y,x+40,GetMaxY-20);
                SetFillStyle(1,4);
                Bar(x,GetMaxY-140,x+40,GetMaxY-20);
                FOR I:=1 TO 117 DO Begin
                   SetColor(1);  SetLineStyle(0,0,3);
                   Line(x+1,GetMaxY-140+i,x+39,GetMaxY-140+i);
                   Delay(250);
                End;
                SetColor(4); OutTextXY(70,GetMaxY-25,’Нажмите DEL’);
             End;
  End;
  UNTIL (Ch=#83) or (Ch=#27);
  UNTIL (Ch=#27);
  CloseGraph;
END.

image_pdfСкачать ответimage_printРаспечатать решение

Добавить комментарий

Похожие вопросы от пользователей