Бодрого дня, господа. Ни как не могу разобраться с проблемкой. Мне в программулине необходимо 4 разных меню: - в первых 2-х 2 пункта; - в 3-м 8; - и в 4-м 6. Разумеется пункты этих меню разные. Первоначально вызывается первое. После выбора нужного пункта что-то там делается. Затем вызывается второе... И т. д.
Я понимаю, что это должна быть функция или процедура. Но как, черт ее побери, это все сваять?
Федосеев Павел
9.05.2016 1:41
Нужно определится с типом списка пунктов. Потом с перечнем кнопок (стрелки, enter, esc).
Потом написать функцию, которая возвращает номер выбранного пункта меню. Возьму за образец ту, что дал volvo.
function Menu(const items : array of string) : integer; begin result := 0; - это номер выбранного пункта меню в цикле выполнять вывод построчно всех строк из списка пунктов с одним цветом для неактивных и другим - для выбранного опрос клавиш стрелка вверх: result:=result-1 активным становится предыдущий пункт стрелка вниз: result:=result+1 активным становится следующий пункт enter: прервать цикл перейти в начало цикла inc(result); Menu:=result - в современных компиляторах можно без этой строки. end;
Потом в программе обращаться
repeat case Menu(MenuItems1) of 1: case Menu(MenuItems2) of 1: ......... 2: ......... 3: ......... end; 2: case Menu(MenuItems3) of 1: ......... 2: ......... end; 3: case Menu(MenuItems4) of 1: ......... 2: ......... 3: ......... 4: ......... end; 4: break; end; until false;
Вроде всё просто.
camac
10.05.2016 16:05
Спасибо. Почти то, что надо. Остальное я уже сам подправлю.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.