Создание меню в графическом режиме - 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.

Объяснение кода листинга программы

  1. В начале кода подключаются необходимые библиотеки graphABC и Events.
  2. Переменная k инициализируется значением 1.
  3. Создается процедура menu, которая принимает переменную k в качестве параметра и выполняет определенные действия.
  4. Внутри процедуры menu создается переменная i, которая используется для цикла.
  5. Создается массив mas, который содержит строки, представляющие различные пункты меню.
  6. Выполняется цикл для каждого элемента массива mas.
  7. Выводится текст каждого пункта меню на экран.
  8. Устанавливается цвет кисти на красный.
  9. Устанавливается стиль кисти на прозрачный.
  10. Вычисляется координаты верхнего левого угла окна, где будет находиться прямоугольник.
  11. Вычисляется высота окна, равная 30 единицам для каждого пункта меню.
  12. Прямоугольник рисуется на экране.
  13. Вызывается процедура KeyDown, которая обрабатывает нажатие клавиш на клавиатуре.
  14. В зависимости от нажатой клавиши выполняются различные действия.
  15. Если нажата клавиша VK_Up, то значение переменной k уменьшается на единицу, а если k равно 0, то устанавливается равным 7. Затем вызывается процедура menu с новым значением k.
  16. Если нажата клавиша VK_Down, то значение переменной k увеличивается на единицу, а если k равно 8, то устанавливается равным 1. Затем вызывается процедура menu с новым значением k.
  17. Если нажата клавиша VK_Return, то происходит разблокировка рисования, очистка окна и вывод на экран значения переменной k.
  18. Конец программы.

Оцени полезность:

11   голосов , оценка 4.455 из 5
Похожие ответы