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

  • Автор темы Автор темы Sascha
  • Дата начала Дата начала

Sascha

Команда форума
Администратор
Ofline
В этом уроке мы с вами познакомимся, как создавать динамически компоненты в программе 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;
 
Назад
Сверху Снизу