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 элементов выделять? "Это не наш метод" (С))
(не надо никаких двумерных массивов: в одном подменю может быть 9 пунктов, в другом - 2, что, их все под одну гребенку, и всем место под 9 элементов выделять? "Это не наш метод" (С))
(не надо никаких двумерных массивов: в одном подменю может быть 9 пунктов, в другом - 2, что, их все под одну гребенку, и всем место под 9 элементов выделять? "Это не наш метод" (С))
Не знаю, у меня, FPC нормально компилирует этот код (причем в любом режиме). А вот Turbo Pascal - отказывается. Для совместимости с TP можно заменить Length на High:
function menu(TA : byte; const items : array of string) : integer; var i : integer; ch : char; begin TextAttr := TA; clrscr; for i := 0 to High(items) 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 .. High(items) + 1]; menu := Ord(ch) - Ord('0'); end;
Не знаю, у меня, FPC нормально компилирует этот код (причем в любом режиме). А вот Turbo Pascal - отказывается. Для совместимости с TP можно заменить Length на High:
function menu(TA : byte; const items : array of string) : integer; var i : integer; ch : char; begin TextAttr := TA; clrscr; for i := 0 to High(items) 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 .. High(items) + 1]; menu := Ord(ch) - Ord('0'); end;
а нет перепутал извините всё таки турбо запустил на free всё пошло))) ещё раз спасибо
Не знаю, у меня, FPC нормально компилирует этот код (причем в любом режиме). А вот Turbo Pascal - отказывается. Для совместимости с TP можно заменить Length на High:
function menu(TA : byte; const items : array of string) : integer; var i : integer; ch : char; begin TextAttr := TA; clrscr; for i := 0 to High(items) 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 .. High(items) + 1]; menu := Ord(ch) - Ord('0'); end;
почему то когда так сделал пропал пункт Exit,не скажете почему? всё не надо я сделал