Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
 
{ Пример создания и использования меню }
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.
 
 


Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 16:41 09-06-2010
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru