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

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

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

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

Отправил Сб, 07/15/2017 - 19:36

We sell the sale of iPhones 7 directly from Apple warehouses unofficially for 30% of the market value. Always available and in large quantities:
1. New Apple iPhone 7 Plus 256 GB (Jet Black) (FACTORY UNLOCKED) International Version no warrants - $ 303
2. New Apple iPhone 7 Plus 256GB Factory Unlocked CDMA / GSM Smartphone - Black (Certified Refurbished) - $ 307
3. New Apple iPhone 7 PLUS (5.5-inch) A1661 128GB Unlocked Smartphone for GSM + CDMA Carriers - Rose Gold - $ 303
We work all over the world and only on an advance payment, we accept only bitcoin. Attention!!! We do not work with Russia and the CIS countries. When ordering from 10 pcs. The price is 20% of the market value. We have a priority in wholesale customers. If you do not trust us, or you do not like something, you pass by, we will not respond to stupid reports. To receive the details for payment, please write to the e-mail: apple@apple-cheap-iphone.xyz

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

  • Tacwolf chaturbate threesome videos with lexi and jordin Alexi and lexi lapetina African albino breasts pussy pics Erection rub in formulas for penis Leukocyte test strip results Fat people falling down stairs Naked middle aged woman Espiando a mis suegros cuando cojen casero Amateur romantic sex...
  • Exotic escorts erotic escorts southbend indiana Tanya cyntheria playing with cum Free german wives girlfriends sex videos Dick content golf micjigan Free teen panties links What are sex beads Treatment to quit smoking Indian teen wet pussy Average size of male dick Cleft chin women naked Husbands...
  • Homemade teen tubes free Gay spas los angeles Japanese whore giving blowjob to big dicked customer Inspirational sex and the city quotes Embed creaming japanese teens Naked mardi gras men Fat sissy boy fucked by raw bbc Bare bottom over the knee spanking story Casssidy the hustler vs cassidy the...

Счетчики