Вот клёвенький пример
Program Perevod; Uses Crt; Const P1='Перевод из '; { константы для начального меню } s:array [1..7] of string[50]=(p1+'десятеричного кода в двоичный.', p1+'двоичного кода в десятеричный.', p1+'десятеричного кода в шестнадцатиричный.', p1+'шестнадцатиричного кода в десятеричный.', p1+'двоичного кода в шестнадцатиричный.', p1+'шестнадцатиричного кода в двоичный.', ' ESC - ВЫХОД В DOS'); Var Promeg,Chast:Longint; Znach,j:Integer; Klav:Char; i,Stroka,Isx,Kon,y,Kol,Help:Byte; Keys: Set of '0'..'F'; a: Array [1..255] of Char; Otv,Pom: string; Procedure Zast; { процедура вывода меню } begin Window(1,1,80,24); { выделить окно 80х24 } ClrScr; { очистить окно } TextColor(15); { установить цвет - белый } FOR I:=1 TO 7 do begin { цикл по строкам } GoToXY (15,I*2); Write (s[i]); { формирование меню } end; end { zast }; { конец процедуры меню } Function Stepen (Chis,St: Byte): Longint; { функция возведения в степень } var c: Byte; Res: longint; begin Res:=1; For c:=1 to st do Res:=Res*chis; Stepen:=Res; { присвоение функции значения } End { Stepen }; { конец функции возведения в сепень }
Begin { НАЧАЛО ОСНОВНОЙ ПРОГРАММЫ } y:=1; { y - текущая строка в меню } Zast; { вывести меню } Repeat { цикл для перемещения в меню } TextColor(13); GoToXY (13,y*2); Write(Chr(16)); { вывести метку текущей строки меню } klav:=ReadKey; { считывание клавиши в klav } GoToXY (13,y*2); Write(' '); { стирание старой метки текущей строки } if Ord(Klav)=72 then if y > 1 then y:=y-1 else y:= 7; { если клавиша ВВЕРХ } if Ord(Klav)=80 then if y < 7 then y:=y+1 else y:= 1; { если клавиша ВНИЗ } if Ord(Klav)=27 then begin y:=7; klav:=Chr(13) end; { если клавиша ESC } if (Ord(Klav)=13) and (y<7) then begin { если клавиша ВВОД не на выходе } ClrScr; { очистить экран } TextCOLOR (13); GoToXY (20, 1); Write (s[y]); { вывести название перевода } TextCOLOR (10); GoToXY (31,24); Write ('ESC - ВЫХОД В МЕНЮ'); { вывести клавишу для выхода } TextColor(15); { поменять цвет - белый } Window(1,2,80,23); { установить окно со 2 по 23 строки } Stroka:=2; { текущая строка }
|