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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2010, 09:21   #1
SVadiks
Пользователь
 
Регистрация: 21.10.2009
Сообщений: 20
Сообщение Графика в Pascale

Ребят подкиньте идею как можно реализовать след. прогу?
Дан Список из n- пунктов. С помощью клавиш на клавиатуре вверх и вниз ходить по этому списку причем активную строчку списка подсветить как нибудь.
SVadiks вне форума Ответить с цитированием
Старый 04.03.2010, 09:39   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

попробуй такое:
http://www.programmersforum.ru/showt...t=%CC%E5%ED%FE
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.03.2010, 09:50   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

SVadiks, это именно в графическом режиме нужно?

Как абсолютно правильно предложил Stilet, такие вещи в старой доброй DOS консоли делались в текстовом режиме!

ну, до кучи ещё и мой вариант текстового меню на Pascal (p.s. по сути это то же самое, что предложил Виталий, просто записанное по другому, и, возможно, чуть-чуть попроще..)

Код:
{ Пример создания и использования меню }
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.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.03.2010, 09:51   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Оффтоп: Да... В графике паскалевской такое меню кропануть - это круто!
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.03.2010, 09:58   #5
Stepler
Форумчанин
 
Аватар для Stepler
 
Регистрация: 03.02.2008
Сообщений: 213
По умолчанию

Например так
Код:
TextColor(Green+Blink)
задаем зелёный цвет с миганием.
Или так
Код:
TextBackground(Red)
устанавливаем красный цвет фона.
Пишу программы на заказ, контакты под аватаром!
Отзывы тут
Stepler вне форума Ответить с цитированием
Старый 04.03.2010, 10:04   #6
SVadiks
Пользователь
 
Регистрация: 21.10.2009
Сообщений: 20
По умолчанию

Большое спасибо ВСЕМ сейчас буду пробовать.

p/s можно и graph прикрутить, но это необязательно требование
SVadiks вне форума Ответить с цитированием
Старый 04.03.2010, 10:33   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

оффтоп
Цитата:
Сообщение от Stilet
Да... В графике паскалевской такое меню кропануть - это круто!
ну, на самом деле, не так уж и сложно. Зарисовывать выделенный пункт меню через залитый прямоугольник.
Текст выводить через OutTextXY
Ещё и шрифт можно задать.
Это всё достаточно просто.
вопрос - насколько это нужно?!! (имхо, минусов больше, чем плюсов)
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с файлами в Pascale velgelmina Помощь студентам 3 26.03.2010 23:14
Обработка графов на Pascale Jises Помощь студентам 0 14.02.2010 23:58
Pascale mela Помощь студентам 1 31.05.2009 14:33
работа в pascale golerka Помощь студентам 1 30.05.2009 09:39