1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
function menu(TA : byte; const items : array of string) : integer; var i : integer; ch : char; begin TextAttr := TA; clrscr; for i := 0 to Length(items) - 1 do begin gotoxy(11, 4 + i); write(items[ i ]); end; gotoxy(12, 2); write(' Your choice : ');
repeat ch := readkey; until Ord(ch) - Ord('0') in [1 .. Length(items)]; menu := Ord(ch) - Ord('0'); end;
var Old_Color : byte; begin Old_Color:=Textattr; repeat Window(1, 1, 80, 25); TextAttr := Black shl 4 + Cyan; ClrScr; GotoXY(5, 1); Write(' JIa6apaTopHa9I #3'); Window(20, 8, 60, 18);
case menu(Black shl 4 + Cyan, mainMenu) of 1 : case menu(Black shl 4 + Cyan, submenu_1) of 1 : begin end; 2 : begin end; end;
2 : case menu(Black shl 4 + Yellow, submenu_2) of 1 : begin end; 2 : begin end; 3 : begin end; end;
3 : case menu(Black shl 4 + Red, submenu_3) of 1 : begin end; 2 : begin end; end;
(не надо никаких двумерных массивов: в одном подменю может быть 9 пунктов, в другом - 2, что, их все под одну гребенку, и всем место под 9 элементов выделять? "Это не наш метод" (С))