![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
INZA |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
как сделать в пунктах подпункты?
Program L3;
Uses crt;
Var a1,b1,c1,d1,e1,f1,x :integer;
a,b,c:boolean;
pr:char;
i,Old_Color :byte;
ch :char;
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);
textattr:=black shl 4+cyan;
clrscr;
gotoxy(11,4);
write(' 1-zadanie 1');
gotoxy(11,5);
write(' 2-zadanie 2');
gotoxy(11,6);
write(' 3-o proge');
gotoxy(11,8);
write(' Esc-exit ');
textcolor(cyan); gotoxy(12,2);write(' Baw BbI6op? ');
ch:=readkey;
if ch<>#0 then
begin
window(5,3,75,18);
textattr:=black shl 4+Cyan;
clrscr;
case ch of
#49:Begin
TextAttr:=Black shl 4+Cyan;
ClrScr;
readln(pr);
if pr='1' then
begin
end;
if pr= '2' then
begin
end;
Readkey;
End;
#50:Begin
TextAttr:=black shl 4+Yellow;
Readkey;
End;
#51:Begin
Readkey;
End;
#27:exit;
End;
end;
until(ch=#27);
window(1,1,80,25);
textattr:=Old_Color;
clrscr;
END.
|
![]() ![]() |
Rian |
![]()
Сообщение
#2
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 394 Пол: Мужской Репутация: ![]() ![]() ![]() |
если проще думаю хватит объявить пункты двумерным массивом
pars:array [0..2, 0..5] of record cmd:integer; text:string end; и в цикле сначала вывести, а потом проверить cmd -------------------- Objective-C, Unity3d
|
INZA |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
|
Гость |
![]()
Сообщение
#4
|
Гость ![]() |
|
INZA |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
|
Rian |
![]()
Сообщение
#6
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 394 Пол: Мужской Репутация: ![]() ![]() ![]() |
ну тогда readkey записывае в cmd1, cmd2
и во вложеном case используй ее только для вывода на экран все равно будет лучше многомерный массив... ну мне так кажется и для проверок -------------------- Objective-C, Unity3d
|
INZA |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
|
IUnknown |
![]()
Сообщение
#8
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Пишется простейшая функция, которая, собственно, отображает менюшку, и делается так:
Меню любой степени вложенности (Показать/Скрыть)
|
Rian |
![]()
Сообщение
#9
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 394 Пол: Мужской Репутация: ![]() ![]() ![]() |
(не надо никаких двумерных массивов: в одном подменю может быть 9 пунктов, в другом - 2, что, их все под одну гребенку, и всем место под 9 элементов выделять? "Это не наш метод" (С)) очень привык к динамическим ![]() -------------------- Objective-C, Unity3d
|
INZA |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
Пишется простейшая функция, которая, собственно, отображает менюшку, и делается так: Меню любой степени вложенности (Показать/Скрыть)
спасибо |
INZA |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
|
IUnknown |
![]()
Сообщение
#12
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Какой компилятор?
|
INZA |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
|
IUnknown |
![]()
Сообщение
#14
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не знаю, у меня, 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;
Сообщение отредактировано: IUnknown - 26.11.2011 18:06 |
INZA |
![]()
Сообщение
#15
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
Не знаю, у меня, 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 всё пошло))) ещё раз спасибо Сообщение отредактировано: INZA - 26.11.2011 18:21 |
INZA |
![]()
Сообщение
#16
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
Не знаю, у меня, 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,не скажете почему? всё не надо я сделал Сообщение отредактировано: INZA - 11.12.2011 19:00 |
![]() ![]() |
![]() |
Текстовая версия | 29.07.2025 15:10 |