Реализовать навигацию по пунктам меню - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

довольно таки стандартное действие, но не могу разобраться как нужно его реализовать: 1. Когда я нажимаю на одну из кнопок меню (а именно первую "играть") то должно появляться меню с другими кнопками, и если я в ново созданном меню нажму на кнопку "Назад" то она выполнит также дейсвтие для прошлого меню, по скольку там была кнопка "выход", я понимаю что проблема в том что оно проходит просто все if но не понимаю как правильно сделать. 2. И второй вопрос как реализовать в graphabc что бы после нажатия (в моем случае на кнопку "Правила") по верх моего окна, открывался txt файл, сообственно с самими правилами) Код ниже, но работать у вас не будет из-за отсутствия тех файлов (картинок) которые сообственно используються в программе. Создайте просто файлы с таким и же названиям)
Листинг программы
  1. uses
  2. graphabc, events, ABCObjects;
  3. procedure MouseDown(x, y, mb: integer);
  4. label 1, 2;
  5. var
  6. n: picture;
  7. t: text;
  8. a: string;
  9. begin
  10. 1: n := Picture.Create('Bomberman.bmp');
  11. n.Load('Bomberman.jpg');
  12. n.Draw(0, 0);
  13. SetWindowTitle('Bomberman');
  14. SetWindowWidth(1279);
  15. SetWindowHeight(720);
  16. CenterWindow;
  17. rectangle(560, 400, 770, 480 );
  18. rectangle(560, 500, 770, 580 );
  19. rectangle(560, 600, 770, 680 );
  20. SetFontSize(35);
  21. Setfontstyle(fsBoldItalic);
  22. floodfill(561, 401, clGray);
  23. floodfill(561, 501, clGray);
  24. floodfill(561, 601, clGray);
  25. setbrushcolor(clGray);
  26. textout(575, 417, 'Играть');
  27. textout(565, 517, 'Правила');
  28. textout(588, 617, 'Выход');
  29. if mb = 1 then if x > 560 then if x < 770 then if y > 400 then if y < 480 then begin
  30. ClearWindow;
  31. n := Picture.Create('Bomberman.bmp');
  32. n.Load('Bomberman.jpg');
  33. n.Draw(0, 0);
  34. rectangle(560, 400, 770, 480 );
  35. rectangle(560, 500, 770, 580 );
  36. rectangle(560, 600, 770, 680 );
  37. SetFontSize(35);
  38. Setfontstyle(fsBoldItalic);
  39. floodfill(561, 401, clGray);
  40. floodfill(561, 501, clGray);
  41. floodfill(561, 601, clGray);
  42. setbrushcolor(clGray);
  43. textout(588, 617, 'Назад');
  44. if mb = 1 then if x > 560 then if x < 770 then if y > 400 then if y < 480 then begin end;
  45. if mb = 1 then if x > 560 then if x < 770 then if y > 500 then if y < 580 then begin end;
  46. if mb = 1 then if x > 560 then if x < 770 then if y > 600 then if y < 680 then begin goto 1 end;
  47. end;
  48. if mb = 1 then if x > 560 then if x < 770 then if y > 500 then if y < 580 then begin
  49. { assign(t, 'правила.txt');
  50. reset(t);
  51. textout(1, 1, t);
  52. close(t); }
  53. end;
  54. if mb = 1 then if x > 660 then if x < 770 then if y > 600 then if y < 680 then begin
  55. Window.Close;
  56. end;
  57. end;
  58.  
  59. var
  60. n: picture;
  61.  
  62. begin
  63. OnMouseDown := MouseDown;
  64. n := Picture.Create('Bomberman.bmp');
  65. n.Load('Bomberman.jpg');
  66. n.Draw(0, 0);
  67. SetWindowTitle('Bomberman');
  68. SetWindowWidth(1279);
  69. SetWindowHeight(720);
  70. CenterWindow;
  71. rectangle(560, 400, 770, 480 );
  72. rectangle(560, 500, 770, 580 );
  73. rectangle(560, 600, 770, 680 );
  74. SetFontSize(35);
  75. Setfontstyle(fsBoldItalic);
  76. floodfill(561, 401, clGray);
  77. floodfill(561, 501, clGray);
  78. floodfill(561, 601, clGray);
  79. setbrushcolor(clGray);
  80. textout(575, 417, 'Играть');
  81. textout(565, 517, 'Правила');
  82. textout(588, 617, 'Выход');
  83.  
  84. end.

Решение задачи: «Реализовать навигацию по пунктам меню»

textual
Листинг программы
  1. Execute('Ваш путь');

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

7   голосов , оценка 4.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы