Объектно-ориентированное программирование. Модуль CRT. Вывод на экран. Системные переменные модуля CRT, страница 7

bar(440,0,640,130);

setfillstyle(1,7);

bar(0,131,640,300);

bar(201,101,439,130);

setfillstyle(1,8);

bar(0,301,640,480);

setcolor(0);

line(200,131,200,300);

line(440,131,440,300);

line(200,258,440,258);

setfillstyle(1,6);

bar(270,270,290,300);

bar(350,270,370,300);

for y1:=0 to 2 do                             {Окна здания}

for x1:=1 to 20 do

begin

setfillstyle(1,14);

bar(x1*45,140+y1*40,10+x1*45,160+y1*40)

end;

setcolor(lightred);

outtextxy(290,93,'BOEHMEX');

end;

{Стирание машины прямоугольником цвета фона}

procedure delcar(y:integer);

begin

setfillstyle(1,8);

bar(0,y,640,y+80)

end;

{Построение на экране машины с прицепом}

procedure car(dx,x,y:integer);

var

p:array [1..7] of pointtype;

begin

setfillstyle(1,lightgreen);                   {Корпус}

setcolor(green);

p[1].x:=x-dx;

p[1].y:=y+65;

p[2].x:=x-dx;

p[2].y:=y+45;

p[3].x:=x+56-dx;

p[3].y:=y+25;

p[4].x:=x+70-dx;

p[4].y:=y;

p[5].x:=x+160-dx;

p[5].y:=y;

p[6].x:=x+160-dx;

p[6].y:=y+65;

p[7]:=p[1];

fillpoly(7,p);

setcolor(black);                             {Колёса машины}

setfillstyle(7,red);

fillellipse(x+35-dx,y+65,14,14);

fillellipse(x+125-dx,y+65,14,14);

setfillstyle(1,11);                          {Окна}

setcolor(8);

p[1].x:=x+61-dx;

p[1].y:=y+25;

p[2].x:=x+73-dx;

p[2].y:=y+5;

p[3].x:=x+88-dx;

p[3].y:=y+5;

p[4].x:=x+88-dx;

p[4].y:=y+25;

p[5]:=p[1];

fillpoly(5,p);

bar(x+95-dx,y+5,x+125-dx,y+25);

rectangle(x+95-dx,y+5,x+125-dx,y+25);

setfillstyle(1,6);                           {Запаска}

fillellipse(x+172-dx,y+35,12,20);

setlinestyle(0,0,3);                         {Сцепка}

setcolor(0);

line(x+160-dx,y+64,x+200-dx,y+64);

line(x+190-dx,y+58,x+190-dx,y+69);

line(x+188-dx,y+58,x+192-dx,y+58);

setlinestyle(0,0,1);                         {Прицеп}

setfillstyle(1,1);

bar(x+201-dx,y+58,x+360-dx,y+65);

setcolor(black);                             {Колёса прицепа}

setfillstyle(7,red);

fillellipse(x+231-dx,y+65,14,14);

fillellipse(x+330-dx,y+65,14,14);

setfillstyle(1,white);                       {Щит с надписью}

bar(x+216-dx,y+57,x+345-dx,y);

setcolor(13);

outtextxy(x+221-dx,y+5,'КУРСОВАЯ РАБОТА');

outtextxy(x+225-dx,y+23,'СВИРИН ДМИТРИЙ');

outtextxy(x+222-dx,y+41,'*****И-451*****');

end;

begin

gd:=VGA;                        {graph driver}

gm:=VGAHi;                      {graph mode}

x:=700;

y:=350;

dx:=0;

initgraph(gd,gm,'');          {Инициализация графического режима}

background;

while not keypressed do

begin

delcar(y);

car(dx,x,y);

if dx<600 then

dx:=dx+1;

delay(2000);

end;

readkey;

closegraph;                   {Закрытие графического режима}

end;

{********************Создание меню**********************}

procedure menu(kurs:integer);

var

y,i:integer;

begin

clrscr;

textcolor(green);

gotoXY(23,5);

write('ВЫБЕРИТЕ НУЖНЫЙ ПУНКТ МЕНЮ');

textcolor(lightblue);

gotoXY(24,9);

writeln('╔════════════════════════╗');

for i:=1 to l do

begin

gotoXY(24,9+i);

writeln('║                        ║');

end;

gotoXY(24,15);

writeln('╚════════════════════════╝');

writeln;

textcolor(yellow);

men[1]:='   РАБОТА С МАССИВОМ    ';

men[2]:='   РАБОТА С МАТРИЦЕЙ    ';

men[3]:='   РАБОТА СО СПИСКОМ    ';

men[4]:='  ГРАФИЧЕСКАЯ 3АСТАВКА  ';

men[5]:='         ВЫХОД          ';

y:=10;

for i:=1 to l do

begin

gotoXY(25,y);

y:=y+1;

if i=kurs then

textbackground(red)

else

textbackground(black);

write(men[i]);

textbackground(black)

end;

textcolor(white)

end;

{***********Движение курсора в меню***********}

procedure kursor;

begin

key:=readkey;

if key =#0 then

key:=readkey;

case key of

{Нажатие стрелки ВНИЗ}

#80: if kurs<l then

kurs:=kurs+1

else

kurs:=1;

{Нажатие стрелки ВВЕРХ}

#72: if kurs>1 then

kurs:=kurs-1

else

kurs:=l;

{Нажатие клавиши ENTER}

#13: begin

case kurs of

1: begin

p:=new(ptrobjmas,Init(m));       {Ввод массива}

clrscr;

write('Исходный массив:');

p^.OutData;                      {Вывод исходного массива}

p^.Job;                          {Обработка массива}

writeln;