Построение колоннады

Построение колоннады

Анимированная сборка колоннады - логотипа Delphi.

Разместите на форме компонент Paintbox1: TPaintbox и компонент Timer1: TTimer с вкладки System, а также кнопку Button1: TButton с вкладки Standart. В инспекторе объектов (Object Inspector) выставьте начальные значения для компонентов.

Form1
  Width: 540
  Height: 520
 
Paintbox1
  Width: 510
  Height: 430
  Top: 10
  Left: 10
 
Button1
  Caption: OK
  Top: 450
  Left: 8
 
Timer1
  Interval: 5
  Enabled: False

Переключитесь клавишей F12 в редактор кода и создайте в разделе Private класса TForm1 две процедуры procedure column(x:Integer); procedure entablement(x:Integer);

type
  TForm1 = class(TForm)
    PaintBox1: TPaintBox;
    Button1: TButton;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
    procedure column(x:Integer);
    procedure entablement(x:Integer);
  public
    { Public declarations }
  end;

Нажмите CTRL+SHIFT+C, данная компбинация автоматически создаст заголовок процедур в разделе implementation. Впишите в них следующий код:

procedure TForm1.column(x: Integer);
Var i: Integer;
begin
with PaintBox1.Canvas do begin
    Brush.Color := RGB(100, 100, 100);
    Pen.Color := RGB(0,0,0);
    Rectangle(25+x, 175, 55+x, 400);
    acolomn := 0;
    for i := 1 to 5 do
    begin
      MoveTo(30+acolomn+x, 175);
      LineTo(30+acolomn+x, 400);
      acolomn := acolomn + 5;
    end;
    Rectangle(10+x, 175, 70+x, 185);
    Rectangle(10+x, 390, 70+x, 400);
    Ellipse(5+x, 175, 25+x, 195);
    Ellipse(55+x, 175, 75+x, 195);
    Ellipse(5+x, 380, 25+x, 400);
    Ellipse(55+x, 380, 75+x, 400);
    Brush.Color:=RGB(0,0,0);
    Pen.Color := RGB(0,0,0);
end;
 
end;
 
procedure TForm1.entablement(x: Integer);
begin
with PaintBox1.Canvas do begin
  Pen.Color := RGB(0,0,0);
  Brush.Color := RGB(100, 100, 100);
  Polygon([Point(50, 50+y),Point(50, 75+y), Point(450, 75+y),
           Point(450, 50+y), Point(250, 5+y)]);
  Brush.Color := RGB(150, 150, 150);
  Polygon([Point(80, 50+y), Point(420, 50+y), Point(250, 15+y)]);
  Brush.Color:=RGB(0,0,0);
  Pen.Color := RGB(0,0,0);
end;
end;

Программа будет использовать ряд глобальных перемен, которые необходимо объявить в разделе Var

var
  Form1: TForm1;
  x, acolomn, x1, x2, x3, y : Integer;

Теперь вернитесь на форму (Клавиша F12) и сделайте двойной щелчок на компоненте Timer1 - это создаст в редакторе кода процедуру procedure TForm1.Timer1Timer(Sender: TObject); в которую вписываем следующее:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
with PaintBox1.Canvas do begin
  Brush.Color:=RGB(0,0,0);
  Pen.Color := RGB(0,0,0);
  if x < 360 then begin  //условие перемещения первой колонны
   Rectangle(0+x,175,80+x,400);
   column(x);
   x:=x+3;
  end else
  if x1 < 260 then begin    //условие перемещения второй колонны
   Rectangle(0+x1,175,80+x1,400);
   column(x1);
   x1:=x1+3;
  end else
  if x2 < 160 then begin  //условие перемещения третьей колонны
   Rectangle(0+x2,175,80+x2,400);
   column(x2);
   x2:=x2+3;
  end else
  if x3 < 60 then begin  //условие перемещения четвертой колонны
   Rectangle(0+x3,175,80+x3,400);
   column(x3);
   x3:=x3+3;
  end else
  if y < 105 then begin  //условие перемещения антаблемента
   Rectangle(50,0+y,455,75+y);
   entablement(y);
   y:=y+5;
  end else
   Timer1.Enabled := False;   //остановка таймера
end;
end;

Точно также сделайте двойной щелчок на компоненте Button1 - это создаст в редакторе кода процедуру procedure TForm1.Button1Click(Sender: TObject); в которую вписываем следующее:

procedure TForm1.Button1Click(Sender: TObject);
begin
  x := 0; x1 := 0; x2 := 0; x3 := 0; y := 0;
  with PaintBox1.Canvas do begin
    Brush.Color:=RGB(0, 0, 0);
    Rectangle(0,0, PaintBox1.Width, PaintBox1.Height);   //очистка экрана
    Brush.Color:=RGB(50,50,50);
    Pen.Color := RGB(50,50,50);
    Rectangle(0,400, PaintBox1.Width, PaintBox1.Height);   //отрисовка земли
  end;
  Timer1.Enabled := True;  //запуск  таймера
end;

Запустите программу. Run (F9).

СКАЧАТЬ ПРОГРАММУРазмер
Урок построение колоннады (315)912.5 кб

Поддержка сайта

Последние комментарии

  • http://ziter.ru/index.php?productID=3751 http://eur-style.ru/product/713 http://samaram.ru/product/nemnogo-o-napolnyh-chasah http://salonturov.ru/index.php?productID=43345
  • What Do Installment Loans Present Themselves? In case if one feels need in ready money straight away, the best method to get it is to turn to installment loans that have historically been known as the most efficient and timely for enormous buyings. Installment loan constitutes a close-end loan,...
  • ОСТАЛОСЬ ВСЕГО 15 ДЕНЕЖНЫХ БОНУСОВ! ВЫПЛАЧЕНО БОЛЕЕ 4 000 000 РУБЛЕЙ ! ---http://link.futbol/8lko

Счетчики