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

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

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

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

Отправил Сб, 05/23/2020 - 03:47

http://reyna.userbet.xyz
Высокотехнологичные инструменты для заработка на криптовалютных активах

https://today.kg/news/182187/ - Высокотехнологичные инструменты для заработка на криптовалютных активах https://hurrytolove.ru/krasivye-otkrytki-s-dnem-rozhdeniya-zhenshhine/#comment-231 - Высокотехнологичные инструменты для заработка на криптовалютных активах https://money.yandex.ru/payments/checkout?requestid=333839363433373435325f31363038353562363138386635313037643238653461396265643533363038343437666230316165 - Высокотехнологичные инструменты для заработка на криптовалютных активах a193bf4

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

  • I’m MILENA, commingle of strength and sexuality – and I LUST AFTER TO MEET YOU TODAY I’m 26 yo, charming grin, gorgeous torso and SUSTAIN in NURU sliding. I turn to account the for the most part essentials massaging you and I ADMIRATION IT Slither slide.. Up and Down.. on a special WHOLLY air bed...
  • Nonna’s Happy Ending Brand-new York https://www.bodyrub.org/happy-ending-new-york/ 1hr of a undressed pleasure ? Highest of mutual touchings, kissings and intimacy between sexy me and of performance you !!! My begin is sensual and lewd, my corpse is exert oneself of seemliness, my demeanour is very...
  • удалите,пожалуйста! .

Счетчики