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

В этом уроке мы с вами познакомимся, как создавать динамически компоненты в программе Delphi.
Все мы знаем, чтобы на форме появилась к примеру кнопка, мы из «Палитры инструментов» перетаскиваем компонент Button на форму.
Но вот если нам требуется, чтобы во время исполнения программы, создавался какой либо компонент. Этим мы сейчас и займемся.

Стандартная конструкция создания динамически компонента:
var
Component: TComponent;
begin
Component:=TComponent.Create(Owner);
Component.Parent:=Parent;
end;

И так, именно по этой конструкции можно создать любой компонент динамически.
Что же, перейдем к практике.

Нашей задачей будет являться:
Чтобы при нажатии кнопки (Button1), создавался компонент Memo1, с конкретными позициями на форме.

Для начала в Delphi создадим новый проект, кинем на форму Button1, кликнем на него два раза, создавая этим событие OnClick, и объявим некую переменную Memo1 типа TMemo.
var
Memo1: TMemo;

Объявив переменную, теперь нам нужно создать сам компонент Memo1 при нажатии на кнопку.
Memo1:=TMemo.Create;

Если мы запустим нашу программу, то она не запустится, т.к мы не указали важный параметр — где будет появлятся Memo1. Правильный код:
Memo1:=TMemo.Create(Form2);

Место Form2 вы пишите имя своей формы!
Если мы сейчас запустим программу и нажмем на кнопку, ничего не произойдет.
Что бы появился компонент Memo1 нам стоит дописать:
Memo1.Parent:=Form2;

Место Form2 вы пишите имя своей формы!
Теперь если при запуске нажать на кнопку, появится Memo1. Поздравляю.
Теперь вы можете добавить свойства Memo1. К примеру:
Memo1.Left:=25;
Memo1.Top:=50;
Memo1.Width:=250;
Memo1.Height:=110;

Можете добавить свои значения
Полный код программы:
procedure TForm2.Button1Click(Sender: TObject);
var
Memo1: TMemo;
begin
Memo1:=TMemo.Create(Form2);
Memo1.Parent:=Form2;
Memo1.Left:=25;
Memo1.Top:=50;
Memo1.Width:=250;
Memo1.Height:=110;
end;
Добавлено: 05 Сентября 2013 12:52:25 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...