Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчёт3.docx
Скачиваний:
2
Добавлен:
12.09.2019
Размер:
50.62 Кб
Скачать

X,y,w:integer;

Implementation

{$R *.dfm}

procedure Widt (w:integer);

begin

w:=10;

end;

function Point.GetX:integer;

begin

result:=x;

end;

function Point.GetY:integer;

begin

result:=y;

end;

constructor Point.Create(px,py:integer;c:TColor);

begin

x:=px; // инициализация поля x

y:=py; // инициализация поля у

col:=c;

end;

procedure TForm1.Button1Click(Sender: TObject);

Begin

b:=TBitmap.Create;

b.Height := form1.PaintBox1.Height; // задание размеров плоскости

b.Width := form1.PaintBox1.Width;

b.Canvas.Brush.Color := clSilver; // заполнение черным цветом

b.Canvas.Pen.Color := clred;

b.Canvas.Rectangle(10,10,b.Width,b.Height);

pt:=Point.Create(15,15,clRed); // создание объекта (красная точка с координатами 150,150)

// нарисовать точку в PaintBox1

pt.Draw(b.Canvas);

// копирование на основную плоскость рисования

PaintBox1.Canvas.Draw(0,0,b);

Timer1.Enabled:=true;

Button1.Enabled:=false;

Button2.Enabled:=true;

End;

procedure TForm1.Button2Click(Sender: TObject);

begin

pt.Free; // удаление объекта

Timer1.Enabled:=false;

Button1.Enabled:=true;

Button2.Enabled:=false;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

b.Canvas.Rectangle(0,0,b.Width,b.Height);

if (GetAsyncKeyState(VK_down) and $8000) = $8000

then pt.Move(pt.GetX,pt.GetY+1);

if (GetAsyncKeyState(VK_up) and $8000) = $8000

then pt.Move(pt.GetX,pt.GetY-1);

if (GetAsyncKeyState(VK_left) and $8000) = $8000

then pt.Move(pt.GetX-1,pt.GetY);

if (GetAsyncKeyState(VK_RIGHT) and $8000) = $8000

then pt.Move(pt.GetX+1,pt.GetY);

pt.Draw(b.Canvas);

PaintBox1.Canvas.Draw(0,0,b);

form1.label2.Caption:=inttostr(pt.y);

form1.label1.Caption:=inttostr(pt.x);

end;

procedure point.Move(px,py:integer);

begin

x:=px; // инициализация поля x

y:=py; // инициализация поля у

end;

procedure Point.Draw(canvas:TCanvas);

var

I, j:Integer;

begin

canvas.Pixels[x,y]:=col; // вывод красной точки

for i:=1 to 10 do

Canvas.Ellipse((X-10)+i,(Y-10)+i,(X+10)-i,(y+10)-i);

end;

procedure point.SetColor(c:TColor);

begin

c:=clRed;;

end;

Вывод: Изучил динамические структуры данных – классы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]