Горизонтальное меню с выпадающим меню - Free Pascal
Формулировка задачи:
помогите сделать горизонтальное меню с выпадающим меню. Нужно чтобы при выборе какого нибудь пункта в горизонтальном меню под тем пунктом меню которое выбрали появлялось выпадающее меню с различным выбором если можно для образца мне код с комментариями чтоб я по образцу смог своё написать пожауйста
Решение задачи: «Горизонтальное меню с выпадающим меню»
textual
Листинг программы
procedure SubMenyu(p:byte;var k:byte;kol1,kol2,w:byte);{создание и вывод на экран выпадающего меню}
//добавить параметр p:byte;
var kod: char;
i:byte;
begin
window(1,1,80,25);
textbackground(0);
clrscr;
for i:=1 to kol2 do{восстановим главное меню}
begin
gotoxy(12*(i-1)+1,1);
write(glav[i]);
end;
gotoxy(12*(p-1)+1,2);//изменить
k:=1; {выведен первый пункт меню}
repeat
for i:=1 to kol1 do
begin
if i=k then {выделенный пункт}
begin
textbackground(3);
textcolor(9);
end
else {остальные}
begin
textbackground(0);
textcolor(15)
end;
gotoxy(12*(p-1)+1,i+1);{ставим курсор}//изменить
case w of
1:write(vvod[i]);{выводим пункты}
2:write (sort[i]);
3:write(vyvod[i]);
end;
end;
repeat
kod:=readkey;
until Kod in [#13, #72, #80];
case kod of
#72: begin{стрелка вверх}
k:=k-1;
if k=0 then k:=kol1;{если выше верха, вниз}
end;
#80: begin {стрелка вниз}
k:=k+1;
if k>kol1 then k:=1;{если ниже низа, вверх}
end;
end;
until kod=#13;{нажат Enter, выходим из меню в выбранную процедуру}
end;
Объяснение кода листинга программы
- Создание и вывод на экран выпадающего меню.
- Восстановление главного меню.
- Вывод первого пункта меню.
- Проверка нажатой клавиши и изменение положения курсора.
- Вывод пунктов меню.
- Проверка нажатой клавиши и изменение выбранного пункта меню.
- Проверка нажатой клавиши и переход к следующему пункту меню.
- Проверка нажатой клавиши и возврат в главное меню.
- Ввод и обработка нажатой клавиши.
- Переход к предыдущему пункту меню.
- Переход к следующему пункту меню.
- Проверка нажатой клавиши и выход из меню в выбранную процедуру.