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

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

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

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


Гость






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

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

 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 6.12.2006 21:17
Сообщение #2


Гость






Цитата
хотелось бы кнопки друг над другом расположить (Как это сделать?)
изменить процедуру 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   Меню   5.12.2006 19:49
volvo   Ну, тема однозначно переезжает в Задачи, т.к. вопр...   5.12.2006 20:36
Гость   Ну объекты и модули точно использовать нельзя. Про...   6.12.2006 15:18
volvo   Ну, вот первое приближение - мыши пока нет, только...   6.12.2006 17:01
Katrinka   Volvo, огромное спасибо! Это то, что нужно. То...   6.12.2006 21:05
volvo   изменить процедуру show_menu на такую: procedure s...   6.12.2006 21:17
Katrinka   Спасибо! Кинь пожалуйста ссылку   6.12.2006 21:41
volvo   http://pascal.sources.ru/graph/bgirfont.htm   6.12.2006 21:52
Katrinka   Спасибо! Пробовала установить руссификаторы k...   6.12.2006 23:45
Katrinka   Можно ли сделать так, чтобы при нажатии определенн...   7.12.2006 19:42
volvo   Можно, только зачем? Что, нельзя все в графике сде...   7.12.2006 19:50
Katrinka   Посоветуй пожалуйста, как лучше сделать. Задача та...   7.12.2006 20:11
volvo   Вот тут я выкладывал процедуру ввода строки в граф...   7.12.2006 20:39
Katrinka   Можно ли загрузить в Паскаль нестандартные шрифты(...   8.12.2006 21:50
volvo   Из Word-а шрифты не пойдут... Можно попробовать по...   8.12.2006 21:59
Katrinka   Можно ли наряду с кнопками меню рядом нарисовать ...   10.12.2006 17:38
Алена   Нет, нельзя... Window - это процедура текстового р...   10.12.2006 18:04
Гость   А как в с++ сделать меню в текстовом режиме?   12.12.2006 18:13


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

 



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