Создание массива компонентов во время выполнения

Тема в разделе "Delphi", создана пользователем WinHack, 2 дек 2016.

  1. WinHack
    В этом примере используется TLabel в качестве примера, чтобы создать массив компонентов TLabel и присвоить им свойство Caption, а также установить другие свойства этих компонентов, таких как Top, Left, Width и других. С таким же успехом можно использовать любой компонент Delphi, чтобы создавать массивы компонентов во время выполнения приложения, написанного на Delphi.

    Код:
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
      // определяем массив компонентов
      Labels: array[1..8] of TLabel;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      x, y: integer;
    begin
      y:=0;
      // в цикле добавляем компоненты
      for x:= 0 to Length(Labels) - 1 do
      begin
        y:= y + 30;
        Labels[x]:= TLabel.Create(Self);
        Labels[x].Left:= 25;
        Labels[x].Top:= y;
        Labels[x].Width:= 60;
        Labels[x].Caption:= 'Label ' + IntToStr(x);
        Labels[x].Parent:= Self;
      end;
    end;