Доброе время суток! Подскажите пожалуйста, как сделать меню в графическом режиме так, чтобы каждому пункту соответствовал прямоугольник с надписью, и управление осуществлялось бы стрелками, причем при выделении прямоугольника он менял бы цвет? И после выполнения ряда действий, соответствующих пункту, пользователь возращался в меню?
Заранее большое спасибо!
volvo
6.12.2006 0:36
Ну, тема однозначно переезжает в Задачи, т.к. вопрос - именно по реализации ...
Уточни, что можно использовать в программе? Динамическая память? Объекты? Процедурные типы? Модули? Есть кое-что готовое, правда там с мышью, модулями и объектами, можно будет убрать все лишнее, если нужно...
Гость
6.12.2006 19:18
Ну объекты и модули точно использовать нельзя. Процедуры и динамическую память, думаю можно. Мышь тоже можно (даже нужно) если не очень сложно.
P.S.: как перекидывать тему в Задачи?
volvo
6.12.2006 21:01
Ну, вот первое приближение - мыши пока нет, только с клавиатуры ...
Katrinka
7.12.2006 1:05
Volvo, огромное спасибо! Это то, что нужно. Только хотелось бы кнопки друг над другом расположить (Как это сделать?) И еще в процессе написания возникла проблема: мой паскаль не печатает на русском, все раскладки перепробовала, не работает. Что делать? Последний ворос: можно ли загрузить в паскаль нестандартные цвета?
volvo
7.12.2006 1:17
Цитата
хотелось бы кнопки друг над другом расположить (Как это сделать?)
изменить процедуру 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;
Если тебе понадобится в графическом режиме выводить кириллицу (через outtext/outtextxy) - придется добавлять русифицированные шрифты, если надо - дам ссылку, где их можно взять...
Спасибо! Пробовала установить руссификаторы keyrus и др. , все равно русским не печатает. Может можно каким-нибудь другим методом установить?
Katrinka
7.12.2006 23:42
Можно ли сделать так, чтобы при нажатии определенной кнопки меню программа автоматически переходила в текстовый режим, там выполнялась бы определенная функция, и при нажатии пользователем какой-нибудь клавиши он возращался бы в меню? Если да, то как?
volvo
7.12.2006 23:50
Можно, только зачем? Что, нельзя все в графике сделать?
Если очень надо, конечно, тебе видней - используй RestoreCRTMode для кратковременного перехода в текстовый режим, а потом SetGraphMode(GetGraphMode) для возврата обратно в графический, только учти, что после возврата экран не сохранится, так что придется перерисовать меню...
Katrinka
8.12.2006 0:11
Посоветуй пожалуйста, как лучше сделать. Задача такая: при нажатии пользователем определенной кнопки программа запрашивает ввод данных, потом запускается функция с этими входными данными(вычисление интеграла) и выводит результат. Можно ли все это сделать в графическом режиме?
volvo
8.12.2006 0:39
Вот тут я выкладывал процедуру ввода строки в графическом режиме: Графика Переконвертировать в число ее можно через Val.
Как вывести результат ты знаешь, для этого существует процедура конвертации числа в строку Str и OutTextXY... Запускать функцию, которая что-то считает, можно как в текстовом, так и в графическом режиме - ей все равно... Вот и все... Что еще не хватает? Ввод есть, вывод тоже, и не надо мудрить с переходами графика/текст...
Katrinka
9.12.2006 1:50
Можно ли загрузить в Паскаль нестандартные шрифты(из Ворда), цвета (RGB) и можно ли вставить картинку? Если да то как?
volvo
9.12.2006 1:59
Из Word-а шрифты не пойдут... Можно попробовать поискать утилиту конвертации (хотя я не уверен, что таковая имеется, но все может быть) из файлов формата FON/FNT в формат CHR, которые распознаются Паскалем...
Для работы больше чем с 16 цветами нужен Svga256/Vesa256 (поищи по форуму, уже было про эти драйвера)... Насчет картинок - тебе сюда: Модули для вывода графики. (bmp, Pcx ...)
Katrinka
10.12.2006 21:38
Можно ли наряду с кнопками меню рядом нарисовать Window (из модуля CRT) и все процедуры ввода-вывода осуществлять там? Будет ли это работать?
Алена
10.12.2006 22:04
Нет, нельзя... Window - это процедура текстового режима, Кнопки рисуются в приведенной выше программе в графике. Тебе уже задавали вопрос: "Зачем?" Делай либо ВСЕ в графике, либо ВСЕ в текстовом режиме. Иначе будет такая каша ...
Гость
12.12.2006 22:13
А как в с++ сделать меню в текстовом режиме?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.