Перейти к содержанию
Fire Monkey от А до Я
  • 0

Динамическое создание компонентов


Anasazi

Вопрос

Доброго времени суток. Помогите пожалуйста разобраться с динамическим созданием компонентов.

Хочу создать на vertscrollbox несколько rectangle, На каждом из rectangle создать хочу попробовать создать tbutton и tlabel.

Пока смог только создать несколько TRectangle. Получился вот такой:

procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin

for i :=1 to 30 do

with TRectangle.Create(VertScrollBox1) do Parent:=VertScrollBox1

end;

procedure TForm1.FormResize(Sender: TObject);
var i: integer;
begin


for i :=0 to Box1.ComponentCount-1 do

  begin

       if box1.Components is TRectangle then

       with TRectangle(box1.Components) do
       begin


       Align := TAlignLayout.Top;

       Margins.Left:=10;
       Margins.Top:=15;
       Margins.Right:=15;

       end;

  end;

 

Подскажите пожалуйста как на каждом из созданных TRectangle создать Tbutton и Tlabel?

Изменено пользователем Andrey Efimov
Добавлен тег "Код"
Ссылка на комментарий

Рекомендуемые сообщения

  • 0
procedure TForm1.FormCreate(Sender: TObject);
var
  i: integer;
  aRectangle: TRectangle;
  aLabel: TLabel;
  aButton: TButton;
begin
  VertScrollBox1.BeginUpdate;
  try
    for i := 1 to 30 do
    begin
      aRectangle := TRectangle.Create(VertScrollBox1);
      aRectangle.Parent := VertScrollBox1;
      aRectangle.Align := TAlignLayout.Top;
      aRectangle.Height := 60;
      aRectangle.Margins.Left := 10;
      aRectangle.Margins.Top := 15;
      aRectangle.Margins.Right := 15;
      aRectangle.TagString := 'Rectangle' + i.ToString;

      aLabel := TLabel.Create(VertScrollBox1);
      aLabel.Parent := aRectangle;
      aLabel.Align := TAlignLayout.Client;
      aLabel.Text := 'Label' + i.ToString;
      aLabel.Margins.Left := 10;
      aLabel.TagString := 'Label' + i.ToString;

      aButton := TButton.Create(VertScrollBox1);
      aButton.Parent := aRectangle;
      aButton.Align := TAlignLayout.Right;
      aButton.Text := 'Button' + i.ToString;
      aButton.TagString := 'Button' + i.ToString;
      aButton.Margins.Top := 5;
      aButton.Margins.Bottom := 5;
      aButton.Margins.Right := 10;
    end;
  finally
    VertScrollBox1.EndUpdate;
  end;
end;

 

Ссылка на комментарий
  • 0
44 минуты назад, enatechno сказал:

procedure TForm1.FormCreate(Sender: TObject);
var
  i: integer;
  aRectangle: TRectangle;
  aLabel: TLabel;
  aButton: TButton;
begin
  VertScrollBox1.BeginUpdate;
  try
    for i := 1 to 30 do
    begin
      aRectangle := TRectangle.Create(VertScrollBox1);
      aRectangle.Parent := VertScrollBox1;
      aRectangle.Align := TAlignLayout.Top;
      aRectangle.Height := 60;
      aRectangle.Margins.Left := 10;
      aRectangle.Margins.Top := 15;
      aRectangle.Margins.Right := 15;
      aRectangle.TagString := 'Rectangle' + i.ToString;

      aLabel := TLabel.Create(VertScrollBox1);
      aLabel.Parent := aRectangle;
      aLabel.Align := TAlignLayout.Client;
      aLabel.Text := 'Label' + i.ToString;
      aLabel.Margins.Left := 10;
      aLabel.TagString := 'Label' + i.ToString;

      aButton := TButton.Create(VertScrollBox1);
      aButton.Parent := aRectangle;
      aButton.Align := TAlignLayout.Right;
      aButton.Text := 'Button' + i.ToString;
      aButton.TagString := 'Button' + i.ToString;
      aButton.Margins.Top := 5;
      aButton.Margins.Bottom := 5;
      aButton.Margins.Right := 10;
    end;
  finally
    VertScrollBox1.EndUpdate;
  end;
end;

 

Спасибо, большое. Разобрался на вашем примере с алгоритмом создания компонентов,

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...