Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2010, 21:57   #1
Kanris
Новичок
Джуниор
 
Регистрация: 25.03.2010
Сообщений: 2
По умолчанию Редактирование меню в Паскале

На вашем форуме нашел меню которое мне подошло, но возникла проблема с редактированием названий меню, если название (Например Умножение чисел) больше "границы", то слово обрываеться на половине (Например Умножение чи), помогите с етой проблемой, пожалуйсто.


{Код найденого меню}
Код:
{ Пример создания и использования меню }
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.
Kanris вне форума Ответить с цитированием
Старый 25.03.2010, 22:37   #2
TheZvir
 
Регистрация: 01.10.2009
Сообщений: 6
По умолчанию

Код:
 menu:array[1..N] of string[12];{ названия пунктов меню }
12 ето указатель символов в строке , увелич его

паскаль ето как английский , только зашыфрован ты делаеш масив от 1го до н символов и каждая строка равна 12ти знаков

Последний раз редактировалось TheZvir; 25.03.2010 в 22:41.
TheZvir вне форума Ответить с цитированием
Старый 25.03.2010, 22:41   #3
Kanris
Новичок
Джуниор
 
Регистрация: 25.03.2010
Сообщений: 2
По умолчанию

Цитата:
Сообщение от TheZvir Посмотреть сообщение
Код:
 menu:array[1..N] of string[12];{ названия пунктов меню }
12 это указатель символов в строке , увелич его

паскаль ето как английский , только зашыфрован ты делаеш маси от 1го до н символов и каждая строка равна 12ти знаков
Спасибо за помощь!
Kanris вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Меню в паскале.Как сделать выход? isJoga Паскаль, Turbo Pascal, PascalABC.NET 4 05.11.2009 18:37
как создать меню в паскале? Kati Помощь студентам 1 20.06.2009 11:35
Меню с Items в виде набора Bitmap (как меню редактирования в Word'е) chandrasecar Мультимедиа в Delphi 7 14.01.2009 09:20
меню пользователя в паскале GaJIbI4 Помощь студентам 2 16.11.2008 12:17