Реализовать навигацию по пунктам меню - PascalABC.NET
Формулировка задачи:
довольно таки стандартное действие, но не могу разобраться как нужно его реализовать:
1. Когда я нажимаю на одну из кнопок меню (а именно первую "играть") то должно появляться меню с другими кнопками, и если я в ново созданном меню нажму на кнопку "Назад" то она выполнит также дейсвтие для прошлого меню, по скольку там была кнопка "выход", я понимаю что проблема в том что оно проходит просто все if но не понимаю как правильно сделать.
2. И второй вопрос как реализовать в graphabc что бы после нажатия (в моем случае на кнопку "Правила") по верх моего окна, открывался txt файл, сообственно с самими правилами)
Код ниже, но работать у вас не будет из-за отсутствия тех файлов (картинок) которые сообственно используються в программе. Создайте просто файлы с таким и же названиям)
Листинг программы
- uses
- graphabc, events, ABCObjects;
- procedure MouseDown(x, y, mb: integer);
- label 1, 2;
- var
- n: picture;
- t: text;
- a: string;
- begin
- 1: n := Picture.Create('Bomberman.bmp');
- n.Load('Bomberman.jpg');
- n.Draw(0, 0);
- SetWindowTitle('Bomberman');
- SetWindowWidth(1279);
- SetWindowHeight(720);
- CenterWindow;
- rectangle(560, 400, 770, 480 );
- rectangle(560, 500, 770, 580 );
- rectangle(560, 600, 770, 680 );
- SetFontSize(35);
- Setfontstyle(fsBoldItalic);
- floodfill(561, 401, clGray);
- floodfill(561, 501, clGray);
- floodfill(561, 601, clGray);
- setbrushcolor(clGray);
- textout(575, 417, 'Играть');
- textout(565, 517, 'Правила');
- textout(588, 617, 'Выход');
- if mb = 1 then if x > 560 then if x < 770 then if y > 400 then if y < 480 then begin
- ClearWindow;
- n := Picture.Create('Bomberman.bmp');
- n.Load('Bomberman.jpg');
- n.Draw(0, 0);
- rectangle(560, 400, 770, 480 );
- rectangle(560, 500, 770, 580 );
- rectangle(560, 600, 770, 680 );
- SetFontSize(35);
- Setfontstyle(fsBoldItalic);
- floodfill(561, 401, clGray);
- floodfill(561, 501, clGray);
- floodfill(561, 601, clGray);
- setbrushcolor(clGray);
- textout(588, 617, 'Назад');
- if mb = 1 then if x > 560 then if x < 770 then if y > 400 then if y < 480 then begin end;
- if mb = 1 then if x > 560 then if x < 770 then if y > 500 then if y < 580 then begin end;
- if mb = 1 then if x > 560 then if x < 770 then if y > 600 then if y < 680 then begin goto 1 end;
- end;
- if mb = 1 then if x > 560 then if x < 770 then if y > 500 then if y < 580 then begin
- { assign(t, 'правила.txt');
- reset(t);
- textout(1, 1, t);
- close(t); }
- end;
- if mb = 1 then if x > 660 then if x < 770 then if y > 600 then if y < 680 then begin
- Window.Close;
- end;
- end;
- var
- n: picture;
- begin
- OnMouseDown := MouseDown;
- n := Picture.Create('Bomberman.bmp');
- n.Load('Bomberman.jpg');
- n.Draw(0, 0);
- SetWindowTitle('Bomberman');
- SetWindowWidth(1279);
- SetWindowHeight(720);
- CenterWindow;
- rectangle(560, 400, 770, 480 );
- rectangle(560, 500, 770, 580 );
- rectangle(560, 600, 770, 680 );
- SetFontSize(35);
- Setfontstyle(fsBoldItalic);
- floodfill(561, 401, clGray);
- floodfill(561, 501, clGray);
- floodfill(561, 601, clGray);
- setbrushcolor(clGray);
- textout(575, 417, 'Играть');
- textout(565, 517, 'Правила');
- textout(588, 617, 'Выход');
- end.
Решение задачи: «Реализовать навигацию по пунктам меню»
textual
Листинг программы
- Execute('Ваш путь');
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д