Проблема с меню |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Проблема с меню |
mr. |
Сообщение
#1
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Реальное имя: Антон Репутация: 0 |
Делаю простенькое динамическое меню, с пунктами play,info,exit. ну так вот все работает почти как надо, но есть проблема с GotoXY, который упорно не работает по идее этого меню для того чтобы выделить активный элемент, заново выводится до этого бывший активным но с другой заливкой, а потом выводится активный. при этом gotoxy должен переводить курсор перед выводом на зарезервированные икс и игрек выводимого элемента. тогда меню стоит на месте, но gotoxy не работает и просто выводятся новые элементы все дальше и дальше с каждым нажатием вверз или вниз. Помогите пожалуйста. Основное внимание на процедуру ShowItem, она как раз и выводит)
вот файл модуля меню и файл проги. п.с. задание само под пунктом меню Play, оно графическое просто с каждым нажатием enter выводит рандомный квадрат Прикрепленные файлы MENU.PAS ( 3.94 килобайт ) Кол-во скачиваний: 293 GRAPHIC.PAS ( 1.08 килобайт ) Кол-во скачиваний: 294 |
volvo |
Сообщение
#2
|
Гость |
Цитата есть проблема с GotoXY, который упорно не работает Как ты хочешь, чтобы работал GotoXY, если координаты, которые ты ему передаешь, больше чем размеры экрана? Ты не забыл, что максимум для ТЕКСТОВОГО режима (а GotoXY - текстовая процедура) - 25/50 строк на 80 столбцов? |
mr. |
Сообщение
#3
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Реальное имя: Антон Репутация: 0 |
я не забыл это, но просто не понимаю что передавать то тогда. там же передаются коорты элементов, а элементы привязаны к коортам меню, а меню в пределах экрана
|
volvo |
Сообщение
#4
|
Гость |
А меню-то графическое...
А графический экран - это 640 х 480 !!! Вот и рассчитывай, сколько пикселей соответствуют одной текстовой позиции по вертикали и горизонтали, и передавай в GotoXY текстовые координаты, соответствующие нужным тебе графическим... |
mr. |
Сообщение
#5
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Реальное имя: Антон Репутация: 0 |
Код procedure ShowItem(var PShow:PItem;P:PMenu); begin if Pshow^.Active=true then begin TextBackGround(P^.col2); TextColor(P^.col1); end else begin TextColor(15); TextBackGround(0); end; GotoXY(Pshow^.x,Pshow^.y); write(Pshow^.key); end; меню текстовое. под заливкой я имел ввиду textbackground. хахахах я все сделал! ты был прав, но я передавал не больше а меньше чем надо то есть коорты меню должны были быть 1,1. а были 0,0 =))) спасибо) |
Текстовая версия | 13.10.2024 21:31 |