Создание меню в графическом режиме - Pascal ABC
Формулировка задачи:
Я понимаю что у стрелок есть значения #80 #77 #75 #72
И у меня есть прога для админа. Вот для него меню:
мне нужно сделать его стрелочным...но еще ...нужно чтобы он отмечал стрелкой на каком выборе вы сейчас находитесь...Объясните пожалуйста как это можно сотворить..Буду очень признательна)
Решение задачи: «Создание меню в графическом режиме»
textual
Листинг программы
uses graphABC,Events; var k:byte; procedure menu(var k:byte); var i:integer; mas:array [1..7] of string; begin clearwindow; mas[1]:='Просмотр пользователей'; mas[2]:='Добавление пользователей'; mas[3]:='Удаление пользователей'; mas[4]:='Редактирование пользователей'; mas[5]:='Архив'; mas[6]:='История изменения'; mas[7]:='Завершение работы'; Textout(50,1,' '); for i:=1 to 7 do Textout(50,30*i,mas[i]); SetPenColor(clRed); SetBrushStyle(bsClear); rectangle(40,k*30-10,220,k*30+20) end; procedure KeyDown(key:integer); begin case key of VK_Up:begin dec(k); if k=0 then k:=7; menu(k); redraw; end; VK_Down:begin inc(k); if k=8 then k:=1; menu(k); redraw; end; VK_Return:begin unlockdrawing; clearwindow; textout(100,100,inttostr(k)) end; else exit; end; end; begin k:=1; menu(k); lockdrawing; onkeydown:=KeyDown; end.
Объяснение кода листинга программы
- В начале кода подключаются необходимые библиотеки graphABC и Events.
- Переменная k инициализируется значением 1.
- Создается процедура menu, которая принимает переменную k в качестве параметра и выполняет определенные действия.
- Внутри процедуры menu создается переменная i, которая используется для цикла.
- Создается массив mas, который содержит строки, представляющие различные пункты меню.
- Выполняется цикл для каждого элемента массива mas.
- Выводится текст каждого пункта меню на экран.
- Устанавливается цвет кисти на красный.
- Устанавливается стиль кисти на прозрачный.
- Вычисляется координаты верхнего левого угла окна, где будет находиться прямоугольник.
- Вычисляется высота окна, равная 30 единицам для каждого пункта меню.
- Прямоугольник рисуется на экране.
- Вызывается процедура KeyDown, которая обрабатывает нажатие клавиш на клавиатуре.
- В зависимости от нажатой клавиши выполняются различные действия.
- Если нажата клавиша VK_Up, то значение переменной k уменьшается на единицу, а если k равно 0, то устанавливается равным 7. Затем вызывается процедура menu с новым значением k.
- Если нажата клавиша VK_Down, то значение переменной k увеличивается на единицу, а если k равно 8, то устанавливается равным 1. Затем вызывается процедура menu с новым значением k.
- Если нажата клавиша VK_Return, то происходит разблокировка рисования, очистка окна и вывод на экран значения переменной k.
- Конец программы.