![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 21.02.2010
Сообщений: 27
|
![]()
Помогите, очень нужно! Как переходить по пунктам меню стрелками?
Последний раз редактировалось kloffelin; 21.02.2010 в 13:58. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 15.12.2009
Сообщений: 11
|
![]()
Тебе сам принцип интересен или код программы?
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 21.02.2010
Сообщений: 27
|
![]()
я хочу узнать как это работает, ну и на сам код глянуть)) если можно)
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 15.12.2009
Сообщений: 11
|
![]()
Постараюсь объяснить более менее толково, хотя врядли получится.
Изучаю щас паскаль,так что буду объяснять на его примере. 1) Создаешь массив, состоящий из стольких элементов, сколько будет пунктов в меню. 2)Размещаешь названия этих пунктов вертикально(друг под другом, для удобства), ну или как тебе вздумается. 3)первый пункт меню записываешь черными буквами на белом фоне(то есть этот пункт меню изначально выделен), остальные пункты - белыми буквами на черном фоне. 4)Для перехода к другим пунктам меню будем использовать клавиши Вверх и вниз. СH:= readkey; если это клавиша Enter, то проходим по выделеному пункту меню. Если это клавиша Вниз(вверх), то первый(выделенный) переписываем белыми буквами по черному фону, а пунк ниже выделяем(переписываем черными по белому). Щас код сюда скопирую, думаю понятнее станет. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 15.12.2009
Сообщений: 11
|
![]()
program Menu;
uses crt, dos; procedure Frame(x1,y1,x2,y2:integer); {Рамка для меню} Const A=#186; B=#187; C=#188; {Для черчения двойной линии} D=#200; E=#201; F=#205; { Для черчения одинарной A=#179; B=#191; C=#217; D=#192; E=#218; F=#196;} Var i,j :integer; begin GotoXY(x1,y1); write(e); for i:=(x1+1) to (x2-1) do write(f); write(b); for i:=(y1+1) to (y2-1) do begin GotoXY(x1,i); write(a); GotoXY(x2,i); write(a); end; GotoXY(x1,y2); write(D); for i:=(x1+1) to (x2-1) do write(f); write(c); End; Procedure CF (c,f: byte); {Процедeра для изменения цвета} {C-цвет выводимых символов F-фон} begin Textcolor(c); TextBackGround(f); end; Procedure Vmenu(k1, k2,kp:byte; ss1,ss2,ss3,ss4,ss5,ss6,ss7 :string; var result:byte); Const kr=7; var M :array[1..kr] of string[49]; i,t :byte; ch: char; fl: boolean; BEgIN fl:=true; m[1]:=ss1; m[2]:=ss2; m[3]:=ss3; m[4]:=ss4; m[5]:=ss5; m[6]:=ss6; m[7]:=ss7; t:=length(m[1]); for i:=2 to kp do if Length(m[i])>t then t:=Length(m[i]); frame(k1-1, k2, k1+T,K2+kp+1); for i:=1 to kp do begin if i=1 then CF(0,7) else CF(7,0); gotoxy(k1,k2+i); write(m[i]); end; CF(7,0); i:=1; while fl=true do begin Ch:=readkey; if ch=#13 then fl:=false; if (ch=#0) then begin ch:=readkey; case Ch of #80: begin gotoxy(k1,k2+I); CF(7,0); write(M[i]); I:=I+1; If I=(Kp+1) then begin i:=1; CF(7,0); GotoXY(k1,k2+1); CF(0,7); write(m[i]); CF(7,0); end; gotoxy(k1,k2+i); CF(0,7); write(m[i]); CF(7,0); end; #72: begin if i=1 then begin gotoxy(k1,k2+i);CF(7,0); write(m[i]); I:=5; end; gotoxy(k1,k2+i); cf(7,0); write(m[i]); i:=i-1; GoToXY(k1,k2+i); CF(0,7); write(m[i]); end; end; end; end; Result:=i; CF(7,0); end; procedure p1; begin write('1') end; {процедуры, показывают что будет} procedure p2; Begin write('2') end; {выполняться в пунктах меню} procedure p3; Begin write('3') end; procedure p4; Begin write('4') end; Begin clrscr; gotoxy(38,7); write('Menu'); Vmenu(16,9,5,'Просмотр списка', 'Корректировка списка', 'Список задач по конкретному проекту', 'Задачи, срок выполнения которых - ближайший месяц', 'Выход', '','',Regime); clrscr; case Regime of 1: p1; 2: p2; 3: p3; 4: p4; 5: Begin ClrScr; Halt; End; end; readkey end. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 21.02.2010
Сообщений: 27
|
![]()
спасибо большое! надо будет только это все реализовать в с++(сразу указать забыл), но думаю я справлюсь.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с меню и рисунками | Mag992 | Помощь студентам | 6 | 17.02.2010 08:57 |
И сново sendMessage =) Как нажать пункт верхнего меню и меню правой кнопки? | TwiX | Win Api | 9 | 15.10.2009 01:57 |
Меню с Items в виде набора Bitmap (как меню редактирования в Word'е) | chandrasecar | Мультимедиа в Delphi | 7 | 14.01.2009 09:20 |
Работа с меню в консоли | kanja | Общие вопросы C/C++ | 4 | 24.11.2008 22:37 |