Язык программирования:
Pascal
Среда программирования:
Lazarus
unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; PaintBox1: TPaintBox; Timer1: TTimer; Timer2: TTimer; Timer3: TTimer; Timer4: TTimer; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure Timer3Timer(Sender: TObject); procedure Timer4Timer(Sender: TObject); private { private declarations } procedure box; public { public declarations } end; var Form1: TForm1; x, i : integer; implementation {$R *.lfm} { TForm1 } procedure TForm1.Button1Click(Sender: TObject); begin PaintBox1.Canvas.Brush.Color := clBlue; x:=0; TIMER1.Enabled:= TRUE; PaintBox1.Canvas.Brush.Color := clBlue; Timer1.Interval:=30; Timer3.Interval:=30; end; procedure TForm1.Timer1Timer(Sender: TObject); begin x:= x+1; box; if x>=15 then begin with Paintbox1.Canvas do begin Brush.Color := RGBToColor(200,160,0); //Добавление Желтого цвета end; timer1.enabled:=false; timer2.enabled :=true; end; end; procedure TForm1.Timer2Timer(Sender: TObject); //Таймер для секундной задержки begin timer3.enabled:=true; box; timer2.enabled:=false; end; procedure TForm1.Timer3Timer(Sender: TObject); begin x:=x-1; box; if x<=-20 then begin with Paintbox1.Canvas do begin Brush.Color := RGBToColor(0,160,200); //Добавление Синего цвета end; timer3.enabled:=false; timer4.enabled:=true; end; end; procedure TForm1.Timer4Timer(Sender: TObject); begin box; timer1.enabled:=true; timer4.enabled := false; end; procedure TForm1.box; var j : integer; begin with Paintbox1.Canvas do begin for j := 0 to 20 do begin //Цикл по Горизонтали for i := 0 to 20 do begin //Цикл по Вертикали PaintBox1.Canvas.Rectangle(100*j+ x+18-10,(-30)+i*100-40-100, 100*j+x+24-10,(-10)+i*100-40-100);//1 Линия Вертикальная PaintBox1.Canvas.Rectangle(100*j+ 33-10,x+(-45)+i*100-40-100, 100*j+53-10,x+(-39)+i*100-40-100);//2 Линия Горизонтальная PaintBox1.Canvas.Rectangle(100*j+ 63-x-10,(-30)+i*100-40-100, 100*j+69-x-10,(-10)+i*100-40-100);//3 Линия Вертикальная PaintBox1.Canvas.Rectangle(100*j+ 33-10, (-1)-x+i*100-40-100, 100*j+53-10, 5-x+i*100-40-100);//4 Линия Горизонтальная //Создание 1 квадрата end; end; for j := 0 to 3 do begin //Цикл по Горизонтали for i := 1 to 20 do begin //Цикл по Вертикали PaintBox1.Canvas.Rectangle(100*j+ x+18+50-10,(-30)+i*100-40+50-100, 100*j+x+24+50-10,(-10)+i*100-40+50-100);//5 Линия Вертикальная PaintBox1.Canvas.Rectangle(100*j+ 33+50-10,x+(-45)+i*100-40+50-100, 100*j+53+50-10,x+(-39)+i*100-40+50-100);//6 Линия Горизонтальная PaintBox1.Canvas.Rectangle(100*j+ 63-x+50-10,(-30)+i*100-40+50-100, 100*j+69-x+50-10,(-10)+i*100-40+50-100);//7 Линия Вертикальная PaintBox1.Canvas.Rectangle(100*j+ 33+50-10, (-1)-x+i*100-40+50-100, 100*j+53+50-10, 5-x+i*100-40+50-100);//8 Линия Горизонтальная //Создание 2 крадрата end; end; end; end; end.
Прикрепленный файл | Размер |
---|---|
Box.rar | 683.95 кб |