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

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

Анимированная сборка колоннады - логотипа 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).

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

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

Из всех вариантов собачий корм роял канин самый лучший выбор для собак средних пород.

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

  • [url=http://u.to/AVQeCg][img]http://silane-guard.com/files/willson_silane_1/img/2.jpg[/img][/url] Извечные споры о полиролях и средствах защиты автомобиля от воздействия окружающей среды уже в прошлом - ровно с тех пор, как на российском рынке появился Willson Silane Guard. Сегодня мы расскажем об...
  • Просто и быстро можно приготовить очень многое, только без соблюдения тонкостей блюда будут пресными, то же обстоит и с этим на первый взгляд элементарным продуктом. «Тонкие блинчики верх изящества» имеют свои прелести в приготовлении и точное соблюдение этих уникальных моментов, делает блинчики...
  • boost breast milk supply herbs domperidone-tenze24.tumblr cibi da evitare per reflusso esofageo

Счетчики