Меню псевдографикой, задача с меню |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Меню псевдографикой, задача с меню |
murphy |
15.12.2004 0:20
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: 0 |
Помогите пожалуйста :p2:
Задача на работу с записями и еще меню надо (ну типа "чтение из файла" , "запись в файл", "Выход" с записями сам справлюсь а вот меню не успею :p2: пожалуйста :p2: -------------------- collect the infotrons and find Exit
|
volvo |
15.12.2004 14:38
Сообщение
#2
|
Гость |
murphy
Посмотри здесь |
murphy |
15.12.2004 20:26
Сообщение
#3
|
Пионер Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: 0 |
Смотрел.
я тут свою функцию написал Код function menu (s:Tstrmenu; n,vp:byte):byte; const bc = lightgray; tc = black; vbc= green; b = blue; ent = #13; esc = #27; up = #72; down = #80; left = #75; right= #77; var i, c, len: byte; ch: char; begin { textbackground(b); clrscr;} window(1,1,80,1); textcolor(tc); textbackground(bc); clrscr; len:=trunc(80/n); c:=vp; repeat for i:=1 to n do begin if i=c then textbackground(vbc) else textbackground(bc); window(i*len-len+1,1,i*len,1); clrscr; gotoxy(trunc(len/2)-(trunc(length(s[i])/2)),1);{vyvod po centru} write(s[i]); end; ch:=readkey; case ch of up : c:=1; down : c:=n; left : begin c:=c-1; if c=0 then c:=n; end; right: begin c:=c+1; if c=n+1 then c:=1; end; end; until (ch=ent) or (ch=esc) or (ch=#32); end; но почему-то для выбора пункта надо нажать enter два раза не пойму почему -------------------- collect the infotrons and find Exit
|
volvo |
15.12.2004 20:38
Сообщение
#4
|
Гость |
murphy
Ты некорректно обрабатываешь нажатия на управляющие клавиши - их код состоит из 2-х цифр (#0 а уж потом то, что ты определил в константах...) Я вообще не понимаю, как то, что ты написал, работает... |
murphy |
15.12.2004 20:58
Сообщение
#5
|
Пионер Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: 0 |
Мне так в Университете сказали (Препод)
-------------------- collect the infotrons and find Exit
|
murphy |
15.12.2004 21:05
Сообщение
#6
|
Пионер Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: 0 |
Упс :p2:
меня осинило: у меня там readln еще стоял извините за беспокойство :p2: как работает сам не пойму но работает Цитата их код состоит из 2-х цифр (#0 а уж потом то, что ты определил в константах...) это надо сначала считать код проверить равен ли он #0 а потом еще раз считать и далее анализировать... ? -------------------- collect the infotrons and find Exit
|
volvo |
15.12.2004 21:25
Сообщение
#7
|
Гость |
murphy
Что-то типа этого: Код ... ch:=readkey; case ch of { Если 0, то читаем вторую часть и обрабатываем ее } #0: case readkey of up: ...; down: ...; left: ...; right: ...; end; { Ниже обрабатываются "обычные клавиши" - без расширенного кода } #13: ...; end; Сообщение отредактировано: volvo - 15.12.2004 21:26 |
murphy |
16.12.2004 0:39
Сообщение
#8
|
Пионер Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: 0 |
ВЫ еще не подскажите какой код у пробела. :p2:
А то я всю лит-ру перерыл не нашел (так же как и enter но его я знаю) Я нашел 39 но он шестнадцатиричный и при переводе (57) не работает Сообщение отредактировано: murphy - 16.12.2004 0:40 -------------------- collect the infotrons and find Exit
|
volvo |
16.12.2004 0:48
Сообщение
#9
|
Гость |
Значения десятичные:
Ввод = #13 Пробел = #32 |
murphy |
16.12.2004 0:58
Сообщение
#10
|
Пионер Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: 0 |
volvo
Спасибо -------------------- collect the infotrons and find Exit
|
Текстовая версия | 29.04.2024 15:12 |