В код никакой отсебятины не добавлялось, полное копирование из задания.
- Код: Выделить всё
unit cloud;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, FileUtil, Buttons, ExtCtrls, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
PaintBox1: TPaintBox;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
private
{ private declarations }
//Координаты прорисовки объекта.Доступны всем процедурам класса TForm1
x1,y1:Integer;
public
{ public declarations }
//Процедура прорисовки облака
procedure Cloud(x,y:Integer; ColorCloud:TColor);
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
{ TForm1 }
procedure TForm1.Cloud(x,y:Integer; ColorCloud:TColor);
begin
//Прорисовка облака из двух эллипсов
with PaintBox1.Canvas do begin
Pen.Style:=psClear;
Brush.Color:=ColorCloud;
Ellipse(x,y,x+80,y+40);
Ellipse(x+30,y+10,x+100,y+50);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//установка начальных значений
x1:=0;
y1:=50;
Timer.Interval:=100;
//прорисовка картинки по которой двигается объект
PaintBox1.Canvas.Brush.Color:=clBlue;
PaintBox1.Canvas.Rectangle(0,0,PaintBox1.Width,PaintBox1.Height);
//Включение таймера-запуск анимации
Timer1.Enabled:=true;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
//закраска объекта цветом фона
Cloud(x1,y1,clBlue)
//изменение координат прорисовки
x1:=x1+1;
//прорисовка объекта в новом месте
Cloud(x1,y1,clWhite);
end;
end.
Очень надеюсь на вашу помощь)