IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Тема закрытаОткрыть новую тему
> меееееню, Шаблон меню в Turbo Pascal
Daniil
сообщение 7.6.2006, 8:48
Сообщение #1


Пользователь


Группа: Пользователи
Сообщений: 29
Регистрация: 4.5.2006
Из: Pоссия
Пользователь №: 10 336



долго изучал код в http://www.opeople.ru/topic5344.html но так и не понял как создавать начальное меню
допустим нам дано 3 возм. варианта (начать загрузить выход)
при выборе каждого своя процедура
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
PolPoll
сообщение 7.6.2006, 14:55
Сообщение #2


:)


Группа: Главные администраторы
Сообщений: 5 858
Регистрация: 24.11.2005
Из: Москва
Пользователь №: 5 327



Примерно так. надо проверить...
Код

uses crt;
type
    menuitems=array [1..3] of string;

const
    mainmenu:menuitems =
       ('   начать    ',
        '   загрузить ',
        '   Выход     ');

Procedure menu(var m:menuitems; kol: byte; var num: byte);

var i,y: byte; ch: char;

Begin
   window(25,8,65,20);
   textbackground(0);
   clrscr;
   textcolor(12);
       writeln('           +------+            ');  
       writeln('+----------! MENU !-----------+');
       writeln('!          +------+           !');
{     writeln('           ХННННННё            ');
       writeln('ЙННННННННННµ Њ…Ќћ ЖННННННННННН»');
       writeln('є          ФННННННѕ           є'); }
   for i:=1 to kol do
       writeln('!                             !');
{ for i:=1 to kol do
       writeln('є                             є');
}

   window(25,10+kol+1,65,10+kol+1);
         write('+-----------------------------+');
{       write('ИНННННННННННННННННННННННННННННј'); }

   window(26,10+2,54,10+kol);
   textcolor(3);
   for i:=2 to kol-1 do
     writeln(m[i]);
   textcolor(4);write(m[kol]);

   window(26,10+1,54,10+1);
   textcolor(15);
   textbackground(9);
   clrscr;
   write(m[1]);
   i:=1;
   y:=11;

   repeat
      ch:=readkey;
      case ch of
       #80: begin
              window(26,y,54,y);textcolor(3);textbackground(0);clrscr;
              write(m[i]);
              if i=kol then
                 begin
                   window(26,y,54,y);clrscr;textbackground(0);textcolor(4);write(m[kol]);
                   i:=1;y:=11;
                 end
              else begin inc(i);inc(y);end;
              window(26,y,54,y);textcolor(15);textbackground(9);clrscr;write(m[i]);
             end;
       #72: begin
              window(26,y,54,y);textcolor(3);textbackground(0);clrscr;write(m[i]);
              if i=1 then
                 begin
                   i:=kol;y:=10+kol;
                 end
              else begin i:=i-1;y:=y-1;
                         if i=kol-1 then begin
                           window(26,10+kol,54,10+kol);textcolor(4);clrscr;write(m[kol]); end;
                   end;
              window(26,y,54,y);textcolor(15);textbackground(9);clrscr;write(m[i]);
             end;
     end;
  until (ch=#13);
  num:=i;
end;


var r: byte;

begin
   textbackground(0);
   clrscr;

   repeat
     window(1,1,80,25); textbackground(0); clrscr;

     menu(mainmenu,3,r);

     window(1,1,80,25); textbackground(0); clrscr;

      Case r of

        1: вызвать процедуру начать;

        2: вызвать процедуру загрузить;

      end;

   until r=3;
end.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Daniil
сообщение 8.6.2006, 14:19
Сообщение #3


Пользователь


Группа: Пользователи
Сообщений: 29
Регистрация: 4.5.2006
Из: Pоссия
Пользователь №: 10 336



будем изучать.Спасибо.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Тема закрытаОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 22.5.2012, 9:21