IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Меню, меню в графическом режиме
Katrinka
сообщение 5.12.2006 19:49
Сообщение #1


Гость






Доброе время суток!
Подскажите пожалуйста, как сделать меню в графическом режиме так, чтобы каждому пункту соответствовал прямоугольник с надписью, и управление осуществлялось бы стрелками, причем при выделении прямоугольника он менял бы цвет? И после выполнения ряда действий, соответствующих пункту, пользователь возращался в меню?

Заранее большое спасибо!

 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 17)
volvo
сообщение 5.12.2006 20:36
Сообщение #2


Гость






Ну, тема однозначно переезжает в Задачи, т.к. вопрос - именно по реализации ...

Уточни, что можно использовать в программе? Динамическая память? Объекты? Процедурные типы? Модули?
Есть кое-что готовое, правда там с мышью, модулями и объектами, можно будет убрать все лишнее, если нужно...
 К началу страницы 
+ Ответить 
Гость
сообщение 6.12.2006 15:18
Сообщение #3


Гость






Ну объекты и модули точно использовать нельзя. Процедуры и динамическую память, думаю можно. Мышь тоже можно (даже нужно) если не очень сложно.

P.S.: как перекидывать тему в Задачи?
 К началу страницы 
+ Ответить 
volvo
сообщение 6.12.2006 17:01
Сообщение #4


Гость






Ну, вот первое приближение - мыши пока нет, только с клавиатуры ...


Прикрепленные файлы
Прикрепленный файл  MENU.PAS ( 2.12 килобайт ) Кол-во скачиваний: 287
 К началу страницы 
+ Ответить 
Katrinka
сообщение 6.12.2006 21:05
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Женский
Реальное имя: Катя

Репутация: -  0  +


Volvo, огромное спасибо! Это то, что нужно. Только хотелось бы кнопки друг над другом расположить (Как это сделать?)
И еще в процессе написания возникла проблема: мой паскаль не печатает на русском, все раскладки перепробовала, не работает. Что делать?
Последний ворос: можно ли загрузить в паскаль нестандартные цвета?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 6.12.2006 21:17
Сообщение #6


Гость






Цитата
хотелось бы кнопки друг над другом расположить (Как это сделать?)
изменить процедуру show_menu на такую:
procedure show_menu(current: integer;
const menu_str: array of string;
const size: integer);
var
i, py, color, max_width: integer;
begin
py := dist;
setcolor(white);
settextjustify(centertext, centertext);

max_width := 0;
for i := 0 to pred(size) do
if textwidth(menu_str[i]) > max_width then
max_width := textwidth(menu_str[i]);

for i := 0 to pred(size) do begin

if (current - 1) = i then color := lightgreen
else color := green;

setfillstyle(solidfill, color);
bar(dist, py,
dist + max_width + 2 * dist,
py + textheight(menu_str[i]) + 2 * dist);
rectangle(dist, py,
dist + max_width + 2 * dist,
py + textheight(menu_str[i]) + 2 * dist);

outtextxy(dist + (max_width + 2 * dist) div 2,
py + (textheight(menu_str[i]) + 2 * dist) div 2,
menu_str[i]);
inc(py, textheight(menu_str[i]) + 3 * dist)

end;
end;
и обрабатывать не кнопки "влево/вправо", а "вверх (#72)/вниз (#80)"...

Цитата
мой паскаль не печатает на русском
Читай вот это:
Turbo Pascal на Xp.

Если тебе понадобится в графическом режиме выводить кириллицу (через outtext/outtextxy) - придется добавлять русифицированные шрифты, если надо - дам ссылку, где их можно взять...
 К началу страницы 
+ Ответить 
Katrinka
сообщение 6.12.2006 21:41
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Женский
Реальное имя: Катя

Репутация: -  0  +


Спасибо! Кинь пожалуйста ссылку
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 6.12.2006 21:52
Сообщение #8


Гость






http://pascal.sources.ru/graph/bgirfont.htm
 К началу страницы 
+ Ответить 
Katrinka
сообщение 6.12.2006 23:45
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Женский
Реальное имя: Катя

Репутация: -  0  +


Спасибо!
Пробовала установить руссификаторы keyrus и др. , все равно русским не печатает. Может можно каким-нибудь другим методом установить?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Katrinka
сообщение 7.12.2006 19:42
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Женский
Реальное имя: Катя

Репутация: -  0  +


Можно ли сделать так, чтобы при нажатии определенной кнопки меню программа автоматически переходила в текстовый режим, там выполнялась бы определенная функция, и при нажатии пользователем какой-нибудь клавиши он возращался бы в меню? Если да, то как?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.12.2006 19:50
Сообщение #11


Гость






Можно, только зачем? Что, нельзя все в графике сделать?

Если очень надо, конечно, тебе видней - используй RestoreCRTMode для кратковременного перехода в текстовый режим, а потом SetGraphMode(GetGraphMode) для возврата обратно в графический, только учти, что после возврата экран не сохранится, так что придется перерисовать меню...
 К началу страницы 
+ Ответить 
Katrinka
сообщение 7.12.2006 20:11
Сообщение #12


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Женский
Реальное имя: Катя

Репутация: -  0  +


Посоветуй пожалуйста, как лучше сделать. Задача такая: при нажатии пользователем определенной кнопки программа запрашивает ввод данных, потом запускается функция с этими входными данными(вычисление интеграла) и выводит результат. Можно ли все это сделать в графическом режиме?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.12.2006 20:39
Сообщение #13


Гость






Вот тут я выкладывал процедуру ввода строки в графическом режиме:
Графика
Переконвертировать в число ее можно через Val.

Как вывести результат ты знаешь, для этого существует процедура конвертации числа в строку Str и OutTextXY... Запускать функцию, которая что-то считает, можно как в текстовом, так и в графическом режиме - ей все равно... Вот и все... Что еще не хватает? Ввод есть, вывод тоже, и не надо мудрить с переходами графика/текст... smile.gif
 К началу страницы 
+ Ответить 
Katrinka
сообщение 8.12.2006 21:50
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Женский
Реальное имя: Катя

Репутация: -  0  +


Можно ли загрузить в Паскаль нестандартные шрифты(из Ворда), цвета (RGB) и можно ли вставить картинку? Если да то как?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 8.12.2006 21:59
Сообщение #15


Гость






Из Word-а шрифты не пойдут... Можно попробовать поискать утилиту конвертации (хотя я не уверен, что таковая имеется, но все может быть) из файлов формата FON/FNT в формат CHR, которые распознаются Паскалем...

Для работы больше чем с 16 цветами нужен Svga256/Vesa256 (поищи по форуму, уже было про эти драйвера)... Насчет картинок - тебе сюда: Модули для вывода графики. (bmp, Pcx ...)
 К началу страницы 
+ Ответить 
Katrinka
сообщение 10.12.2006 17:38
Сообщение #16


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Женский
Реальное имя: Катя

Репутация: -  0  +


Можно ли наряду с кнопками меню рядом нарисовать Window (из модуля CRT) и все процедуры ввода-вывода осуществлять там? Будет ли это работать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Алена
сообщение 10.12.2006 18:04
Сообщение #17


Гость






Нет, нельзя... Window - это процедура текстового режима, Кнопки рисуются в приведенной выше программе в графике. Тебе уже задавали вопрос: "Зачем?" Делай либо ВСЕ в графике, либо ВСЕ в текстовом режиме. Иначе будет такая каша ... wacko.gif
 К началу страницы 
+ Ответить 
Гость
сообщение 12.12.2006 18:13
Сообщение #18


Гость






А как в с++ сделать меню в текстовом режиме?
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 13:59
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"